1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #include <WiFiUdp.h>
- #include <OSCMessage.h>
- WiFiUDP UDP;
- IPAddress ipMulti(239, 0, 0, 56);
- unsigned int portMulti = 12345;
- template <typename TYPE> void sendOSC(const char * adress, TYPE parameter);
- template <typename TYPE> void sendOSC(const char * adress, TYPE parameter) {
- OSCMessage OSCmsg(adress);
- OSCmsg.add(parameter);
- UDP.beginPacketMulticast(ipMulti, portMulti,WiFi.localIP());
- OSCmsg.send(UDP);
- UDP.endPacket();
- OSCmsg.empty();
- }
- void printTest(OSCMessage &msg) {
-
- Serial.print("OSC type : ");
- Serial.println (msg.getType(0));
- sendOSC("/received", msg.getType(0));
-
- }
- void setup_OSC(){
-
- ipMulti.fromString(UDP_IP);
-
- String UDP_PORT_string = UDP_PORT;
- portMulti = UDP_PORT_string.toInt();
- Serial.print("connecting udp to ");
- Serial.print(ipMulti);
- Serial.print(":");
- Serial.println(portMulti);
-
- UDP.beginMulticast(WiFi.localIP(), ipMulti, portMulti);
- OSCMessage OSCmsg("/connected");
- for (int i=0 ; i<4 ; i++){
- OSCmsg.add(WiFi.localIP()[i]);
- }
- UDP.beginPacketMulticast(ipMulti, portMulti,WiFi.localIP());
- OSCmsg.send(UDP);
- UDP.endPacket();
- OSCmsg.empty();
- }
- void handle_OSC() {
- OSCMessage OSCin;
- int size;
- if ( (size = UDP.parsePacket()) > 0) {
- while (size--)
- OSCin.fill(UDP.read());
-
- if (!OSCin.hasError()) {
- OSCin.dispatch("/test", printTest);
- if (OSCin.match(ESP_NAME)){Serial.println("matched");}
-
-
- }
- }
- }
|