![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
udptest
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 00002 // MBED Headers 00003 #include "mbed.h" 00004 #include "EthernetInterface.h" 00005 00006 DigitalOut led1(LED1); // green 00007 DigitalOut led2(LED2); // blue 00008 DigitalOut led3(LED3); // red 00009 00010 Serial logger(SERIAL_TX, SERIAL_RX); 00011 00012 EthernetInterface gEth; 00013 #define UDP_PORT 3865 00014 #define UDP_BUFFER_SIZE 500 00015 00016 UDPSocket _socket; 00017 UDPSocket _socketSender; 00018 00019 char in_buffer[UDP_BUFFER_SIZE]; 00020 00021 00022 // ----------------------------------------------------------- 00023 // 00024 // ----------------------------------------------------------- 00025 void terminal_error_state( void ) 00026 { 00027 led1=0; 00028 led2=0; 00029 led3=0; 00030 logger.printf("\r\n\r\nJUST TO BE CLEAR - THIS IS BAD BAD NEWS !!! \r\n"); 00031 logger.printf("\r\n\r\n---- WAITING FOR THE WATCHDOG TO RESET US ---- \r\n"); 00032 while( 1 ) 00033 { 00034 led1 = !led1; 00035 led2 = !led2; 00036 led3 = !led3; 00037 wait(0.3); 00038 } 00039 } 00040 00041 00042 // ----------------------------------------------------------- 00043 // 00044 // ----------------------------------------------------------- 00045 static bool DeviceConnect() 00046 { 00047 int retries = 10; 00048 int rc = 0; 00049 00050 while (retries--) 00051 { 00052 rc = gEth.connect(); 00053 if (rc == 0) { 00054 return true; 00055 } 00056 else 00057 { 00058 logger.printf("Connecting... ERR %d\r\n", rc); 00059 } 00060 } 00061 00062 logger.printf("Connecting... FAILED\r\n"); 00063 return false; 00064 } 00065 00066 // ----------------------------------------------------------- 00067 // 00068 // ----------------------------------------------------------- 00069 static bool DeviceEthStartup() 00070 { 00071 int rc = 0; 00072 00073 // get ethernet up ! 00074 if( !DeviceConnect() ) terminal_error_state(); 00075 00076 // Output the network address 00077 const char *ip = gEth.get_ip_address(); 00078 const char *netmask = gEth.get_netmask(); 00079 const char *gateway = gEth.get_gateway(); 00080 logger.printf("IP address: %s\r\n", ip ? ip : "None"); 00081 logger.printf("Netmask: %s\r\n", netmask ? netmask : "None"); 00082 logger.printf("Gateway: %s\r\n", gateway ? gateway : "None"); 00083 00084 // setup a listener 00085 _socket.set_blocking(true); 00086 _socket.set_timeout(3000); 00087 00088 // open the socket 00089 rc = _socket.open((NetworkInterface*)&gEth); 00090 if( rc != 0) 00091 { 00092 logger.printf("UDPSocket RECEIVER OPEN ERROR (rc=%d)\r\n", rc); 00093 terminal_error_state(); 00094 } 00095 00096 // bind the port 00097 rc = _socket.bind(UDP_PORT); 00098 logger.printf("Binding port %d\r\n", UDP_PORT); 00099 if( rc != 0) 00100 { 00101 logger.printf("UDPSocket BIND ERROR (rc=%d)\r\n", rc); 00102 terminal_error_state(); 00103 } 00104 00105 // open the sender socket 00106 //rc = _socketSender.open((NetworkInterface*)&gEth); 00107 //if( rc != 0) 00108 // { 00109 // logger.printf("UDPSocket SENDER OPEN ERROR (rc=%d)\r\n", rc); 00110 // terminal_error_state(); 00111 // } 00112 00113 return true; 00114 } 00115 00116 // ----------------------------------------------------------- 00117 // 00118 // ----------------------------------------------------------- 00119 void SendUdPMessage(char *buffer) 00120 { 00121 // send the UDP data as broadcast 00122 int rc = _socketSender.sendto( "255.255.255.255", UDP_PORT, (const void *)buffer, strlen( buffer ) ); 00123 logger.printf("[SEND rc=%d] buffer[%d]\r\n%s\r\n", rc, strlen(buffer), buffer); 00124 } 00125 00126 // ----------------------------------------------------------- 00127 // main() runs in its own thread in the OS 00128 // ----------------------------------------------------------- 00129 int main() { 00130 00131 DeviceEthStartup(); 00132 00133 while (true) { 00134 led1 = !led1; 00135 wait(0.5); 00136 } 00137 } 00138
Generated on Tue Jul 12 2022 16:36:24 by
![doxygen](doxygen.png)