project met UDP IP

Dependencies:   EthernetInterface LM75B mbed-rtos mbed

Fork of communication by Jelle Raes

Revision:
1:550192b4ae8e
Parent:
0:52e944ca21ea
Child:
2:067142778937
--- a/slave.cpp	Tue Mar 13 09:40:51 2018 +0000
+++ b/slave.cpp	Tue Mar 13 10:31:27 2018 +0000
@@ -39,7 +39,7 @@
         
         while (true){
             char slaveBuffer[512]={NULL};
-            slavepc.printf("\nWaiting for UDP packet...\n\r");
+            slavepc.printf("\n\rWaiting for UDP packet...\n\r");
             int n = server.receiveFrom(client, slaveBuffer, sizeof(slaveBuffer));
             slaveBuffer[n] = '\0';
             
@@ -47,29 +47,31 @@
             slavepc.printf("Packet contents : '%s'\n\r",slaveBuffer);
             
             slavepc.printf("Sending Packet back to Client\n\r");
-            server.sendTo(client, getResponse(slaveBuffer), 20);
+            server.sendTo(client, getResponse(slaveBuffer,eth.getIPAddress()), 512);
         }
 }    
-char *getResponse(const char *buffer){
+char *getResponse(const char *buffer,const char *ip){
     char *request = strtok((char*)buffer," ");//{buffer[0],buffer[1],buffer[2],'\0'};
     char *resource = strtok(NULL," ");
-    slavepc.printf("resource =%s",resource);
+    slavepc.printf("\n\rresource =%s\n\r",resource);
     if(strcmp(request,"GET")==0){
         if(strcmp(resource,"/TEMPERATURE")==0){
-            char *tempbuffer;
-            sprintf(tempbuffer,"okditisdom%9f",getTemp());
-            slavepc.printf("%s",tempbuffer);
+            char tempbuffer[512];
+            sprintf(tempbuffer,"ACK 2.05 %14s %9f", ip, getTemp());
+            slavepc.printf("%s\n\r",tempbuffer);
             return tempbuffer;
         }
         else if(strcmp(resource,"/POTENTIOMETER")==0){
-            char *tempbuffer;
+            char tempbuffer[512];
             slavepc.printf("%f",getPot());
-            sprintf(tempbuffer,"potwaarde%9f",getPot());
-            slavepc.printf("%s",tempbuffer);
+            sprintf(tempbuffer,"ACK 2.05 %14s %3d", ip,int(255* getPot()));
+            slavepc.printf("%s\n\r",tempbuffer);
             return tempbuffer;
         }
         else{
-            return "get request failed";
+            char tempbuffer[512];
+            sprintf(tempbuffer,"ACK 2.04 %14s",ip);
+            return tempbuffer;
         }
     }
     else if(strcmp(request,"PUT")==0){
@@ -79,22 +81,32 @@
             int first = atoi(eerste);
             int last = atoi(tweede);
             putBuzzer(first,last);
-            return "put buz request received";
+            char tempbuffer[512];
+            sprintf(tempbuffer,"ACK 2.04 %14s",ip);
+            return tempbuffer;
         }
         else if(strcmp(resource,"/LED")==0){
             putLED(strtok(NULL,'\0'));
-            return "put led request received";
+            char tempbuffer[512];
+            sprintf(tempbuffer,"ACK 2.04 %14s",ip);
+            return tempbuffer;
         }
         else if(strcmp(resource,"/LCD")==0){
             putLCD(strtok(NULL,'\0'));
-            return "put lcd request received";
+            char tempbuffer[512];
+            sprintf(tempbuffer,"ACK 2.04 %14s",ip);
+            return tempbuffer;
         }
         else{
-            return "put request failed";
+            char tempbuffer[512];
+            sprintf(tempbuffer,"ACK 4.00 %14s",ip);
+            return tempbuffer;
         }
     }
     else{
-        return "failed";
+        char tempbuffer[512];
+        sprintf(tempbuffer,"ACK 4.00 %14s",ip);
+        return tempbuffer;
     }
 }