OscSerial.ino 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include <ArduinoOSC.h>
  2. OscSerial osc;
  3. void onOscReceived(OscMessage& m)
  4. {
  5. OscMessage msg;
  6. msg.init("/callback/reply");
  7. msg.push(m.getArgAsInt32(0)).push(m.getArgAsFloat(1)).push(m.getArgAsString(2));
  8. osc.send(msg);
  9. }
  10. void setup()
  11. {
  12. // ArduinoOSC
  13. Serial.begin(115200);
  14. osc.attach(Serial);
  15. // TODO: TBD
  16. // osc.subscribe("/int32", i);
  17. // osc.subscribe("/float", f);
  18. // osc.subscribe("/string", s);
  19. // osc.subscribe("/blob", b);
  20. osc.subscribe("/callback", onOscReceived); // old style (v0.1.x)
  21. osc.subscribe("/lambda", [](OscMessage& m)
  22. {
  23. OscMessage msg;
  24. msg.init("/lambda/reply");
  25. msg.push(m.getArgAsInt32(0)).push(m.getArgAsFloat(1)).push(m.getArgAsString(2));
  26. osc.send(msg);
  27. });
  28. osc.subscribe("/wildcard/*/test", [](OscMessage& m)
  29. {
  30. OscMessage msg;
  31. msg.init("/wildcard/reply").push(m.getArgAsInt32(0));
  32. osc.send(msg);
  33. });
  34. // TODO: TBD
  35. // osc.publish(host, send_port, "/value", value);
  36. // osc.publish(host, send_port, "/millis", &millis);
  37. }
  38. void loop()
  39. {
  40. osc.parse(); // should be called
  41. }