#include #include // version IDE 0022 #include #define debug 1 #define OLED1 2 #define OLED2 3 #define OLED3 4 #define OLED4 5 #define OLED5 6 #define OLED6 7 #define OLED7 8 byte myMac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x71, 0x12 }; //byte myIp[] = { // 192, 168, 1, 41 }; byte myIp[] = { 200, 100, 50, 7 }; int serverPort = 9000; byte destIp[] = {200, 100, 50, 2}; // TO SET ADDRESS IP COMPUTER int destPort = 9997; // TO SET SENDING PORT Z_OSCServer server; Z_OSCMessage *rcvMes; Z_OSCClient client; Z_OSCMessage message; void setup(){ pinMode(OLED1, OUTPUT); pinMode(OLED2, OUTPUT); pinMode(OLED3, OUTPUT); pinMode(OLED4, OUTPUT); pinMode(OLED5, OUTPUT); pinMode(OLED6, OUTPUT); pinMode(OLED7, OUTPUT); digitalWrite(OLED1,LOW); //disable device digitalWrite(OLED2,LOW); //disable device digitalWrite(OLED3,LOW); //disable device digitalWrite(OLED4,LOW); //disable device digitalWrite(OLED5,LOW); //disable device digitalWrite(OLED6,LOW); //disable device digitalWrite(OLED7,LOW); //disable device Serial.begin(115200); Ethernet.begin(myMac ,myIp); //Ethernet.begin(myMac); //DHCP server.sockOpen(serverPort); Serial.println("Welcome, OLED controller Ready!"); } void loop(){ if(server.available()){ rcvMes=server.getMessage(); //logMessage(); cmdProcess(); } } void cmdProcess() { uint32_t intValue; if( !strcmp( rcvMes->getZ_OSCAddress() , "/left" ) ) { intValue = rcvMes->getInteger32(0); Serial.print("OLED left: "); Serial.println(intValue); if(intValue) digitalWrite(OLED1, HIGH); else digitalWrite(OLED1, LOW); } else if( !strcmp( rcvMes->getZ_OSCAddress() , "/right" ) ) { intValue = rcvMes->getInteger32(0); Serial.print("OLED right: "); Serial.println(intValue); if(intValue) digitalWrite(OLED2, HIGH); else digitalWrite(OLED2, LOW); } else if( !strcmp( rcvMes->getZ_OSCAddress() , "/led1" ) ) { intValue = rcvMes->getInteger32(0); Serial.print("OLED 1: "); Serial.println(intValue); if(intValue) digitalWrite(OLED3, HIGH); else digitalWrite(OLED3, LOW); } else if( !strcmp( rcvMes->getZ_OSCAddress() , "/led2" ) ) { intValue = rcvMes->getInteger32(0); Serial.print("OLED 2: "); Serial.println(intValue); if(intValue) digitalWrite(OLED4, HIGH); else digitalWrite(OLED4, LOW); } else if( !strcmp( rcvMes->getZ_OSCAddress() , "/led3" ) ) { intValue = rcvMes->getInteger32(0); Serial.print("OLED 3: "); Serial.println(intValue); if(intValue) digitalWrite(OLED5, HIGH); else digitalWrite(OLED5, LOW); } else if( !strcmp( rcvMes->getZ_OSCAddress() , "/led4" ) ) { intValue = rcvMes->getInteger32(0); Serial.print("OLED 4: "); Serial.println(intValue); if(intValue) digitalWrite(OLED6, HIGH); else digitalWrite(OLED6, LOW); } } void logMessage(){ uint16_t i; byte *ip=rcvMes->getIpAddress(); long int intValue; float floatValue; char *stringValue; Serial.print(ip[0],DEC); Serial.print("."); Serial.print(ip[1],DEC); Serial.print("."); Serial.print(ip[2],DEC); Serial.print("."); Serial.print(ip[3],DEC); Serial.print(":"); Serial.print(rcvMes->getPortNumber()); Serial.print(" "); Serial.print(rcvMes->getZ_OSCAddress()); Serial.print(" "); Serial.print(rcvMes->getTypeTags()); Serial.print("--"); for(i=0 ; igetArgsNum(); i++){ switch( rcvMes->getTypeTag(i) ){ case 'i': intValue = rcvMes->getInteger32(i); Serial.print(intValue); Serial.print(" "); break; case 'f': floatValue = rcvMes->getFloat(i); Serial.print(floatValue); Serial.print(" "); break; case 's': stringValue = rcvMes->getString(i); Serial.print(stringValue); Serial.print(" "); break; } } Serial.println(""); }