test
Dependencies: EthernetInterface MODSERIAL mbed-rtos mbed
Fork of UDPEchoServer by
UDP.txt
- Committer:
- vibe
- Date:
- 2018-09-07
- Revision:
- 8:115dc06a8764
- Parent:
- 7:42bc53611fc7
File content as of revision 8:115dc06a8764:
void Init_Ethernet() { printf("# Init Ethernet\r\n"); eth.init(); //Use DHCP eth.connect(); printf("# Server IP Address is %s\r\n", eth.getIPAddress()); server.bind(SERVER_PORT); server.set_blocking(false,10); printf("# UDP Server listening at Port: %d\r\n",SERVER_PORT);wait_ms(10); } //############################################################################# // UDP-Server //############################################################################# void Call_UDP_Server(void) { int n = server.receiveFrom(client, UDP_CharBuf, sizeof(UDP_CharBuf)); if (n>0) { printf("# UDP %s from %s:%d\r\n", UDP_CharBuf,client.get_address(),client.get_port()); wait_ms(10); if (UDP_CharBuf[0]=='%' && UDP_CharBuf[1]=='A') { sprintf(UDP_CharBuf,"# Analog IN: %1.2f %1.2f %1.1f %1.1f %1.1f \r\n",U_Analog1,U_Analog2,U_Analog3,U_Analog4,U_Analog5); printf("# Data to UDP Client %s:%d\r\n", client.get_address(),client.get_port()); server.sendTo(client, UDP_CharBuf, strlen(UDP_CharBuf)); // variable Länge memset (UDP_CharBuf,'\0',sizeof(UDP_CharBuf)); wait_ms(10); } if (UDP_CharBuf[0]=='%' && UDP_CharBuf[1]=='P') { int value=0; UDP_CharBuf[0]='0';UDP_CharBuf[1]='0'; sscanf (UDP_CharBuf,"%d",&value); DigOUT01 = value & 0xFF; WR_IO(); sprintf(UDP_CharBuf,"# Dig.OUT: %d\r\n",DigOUT01); USB.printf("# Data to UDP Client %s:%d\r\n", client.get_address(),client.get_port()); server.sendTo(client, UDP_CharBuf, strlen(UDP_CharBuf)); // variable Länge memset (UDP_CharBuf,'\0',sizeof(UDP_CharBuf)); wait_ms(10); //USB.printf("# Dig.OUT: %d\r\n",DigOUT01);wait_ms(10); } if (UDP_CharBuf[0]=='%' && UDP_CharBuf[1]=='D') { USB.printf("# Send Data to %s:%d\r\n", client.get_address(),client.get_port()); for (int i=0;i<DataCnt;i++) { sprintf(UDP_CharBuf,"$%d %1.2f %1.2f\r\n",i,Data1[i],Data2[i]); server.sendTo(client, UDP_CharBuf, strlen(UDP_CharBuf)); // variable Länge memset (UDP_CharBuf,'\0',sizeof(UDP_CharBuf)); } wait_ms(10); } if (UDP_CharBuf[0]=='%' && UDP_CharBuf[1]=='S') { USB.printf("# Starte Messung\r\n"); DataCnt=0; DataOutCnt=1; AnalogDataTimer.attach_us(&GetAnalogData, AD_uSek); MessRunning=true; wait_ms(10); } } } if (EthernetConnection && client.get_port()>0) { sprintf(UDP_CharBuf,"# Dig.IN: %d\r\n", DigIN01); wait_ms(10); USB.printf("# Data to UDP Client %s:%d\r\n", client.get_address(),client.get_port()); server.sendTo(client, UDP_CharBuf, strlen(UDP_CharBuf)); // variable Länge memset (UDP_CharBuf,'\0',sizeof(UDP_CharBuf)); wait_ms(10); }