OscWiFi.ino 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #include <ArduinoOSC.h>
  2. // WiFi stuff
  3. const char* ssid = "your-ssid";
  4. const char* pwd = "your-password";
  5. const IPAddress ip(192, 168, 1, 201);
  6. const IPAddress gateway(192, 168, 1, 1);
  7. const IPAddress subnet(255, 255, 255, 0);
  8. // for ArduinoOSC
  9. OscWiFi osc;
  10. const char* host = "192.168.1.200";
  11. const int recv_port = 10000;
  12. const int send_port = 12000;
  13. void onOscReceived(OscMessage& m)
  14. {
  15. Serial.print("callback : ");
  16. Serial.print(m.ip()); Serial.print(" ");
  17. Serial.print(m.port()); Serial.print(" ");
  18. Serial.print(m.size()); Serial.print(" ");
  19. Serial.print(m.address()); Serial.print(" ");
  20. Serial.print(m.arg<int>(0)); Serial.print(" ");
  21. Serial.print(m.arg<float>(1)); Serial.print(" ");
  22. Serial.print(m.arg<String>(2)); Serial.println();
  23. }
  24. void setup()
  25. {
  26. Serial.begin(115200);
  27. // WiFi stuff
  28. WiFi.begin(ssid, pwd);
  29. WiFi.config(ip, gateway, subnet);
  30. while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); }
  31. Serial.print("WiFi connected, IP = "); Serial.println(WiFi.localIP());
  32. // ArduinoOSC
  33. osc.begin(recv_port);
  34. // TODO: TBD
  35. // osc.subscribe("/int32", i);
  36. // osc.subscribe("/float", f);
  37. // osc.subscribe("/string", s);
  38. // osc.subscribe("/blob", b);
  39. osc.subscribe("/callback", onOscReceived); // old style (v0.1.x)
  40. osc.subscribe("/lambda", [](OscMessage& m)
  41. {
  42. Serial.print("lambda : ");
  43. Serial.print(m.ip()); Serial.print(" ");
  44. Serial.print(m.port()); Serial.print(" ");
  45. Serial.print(m.size()); Serial.print(" ");
  46. Serial.print(m.address()); Serial.print(" ");
  47. Serial.print(m.arg<int>(0)); Serial.print(" ");
  48. Serial.print(m.arg<float>(1)); Serial.print(" ");
  49. Serial.print(m.arg<String>(2)); Serial.println();
  50. });
  51. osc.subscribe("/wildcard/*/test", [](OscMessage& m)
  52. {
  53. Serial.print("wildcard : ");
  54. Serial.print(m.ip()); Serial.print(" ");
  55. Serial.print(m.port()); Serial.print(" ");
  56. Serial.print(m.size()); Serial.print(" ");
  57. Serial.print(m.address()); Serial.print(" ");
  58. Serial.print(m.arg<int>(0)); Serial.println();
  59. });
  60. osc.subscribe("/need/reply", [](OscMessage& m)
  61. {
  62. Serial.println("/need/reply");
  63. int i = 12;
  64. float f = 34.56F;
  65. double d = 78.987;
  66. String s = "hello";
  67. bool b = true;
  68. osc.send(host, send_port, "/send", i, f, d, s, b);
  69. });
  70. // TODO: TBD
  71. // osc.publish(host, send_port, "/value", value);
  72. // osc.publish(host, send_port, "/millis", &millis);
  73. }
  74. void loop()
  75. {
  76. osc.parse(); // should be called
  77. }