test

Dependencies:   EthernetInterface MODSERIAL mbed-rtos mbed

Fork of UDPEchoServer by Mbed

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); 
             }