project met UDP IP
Dependencies: EthernetInterface LM75B mbed-rtos mbed
Fork of communication by
Diff: slave.cpp
- 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; } }