Webserver only w/o any other functions, single thread. Running on STM32F013+W5500

Dependencies:   NTPClient W5500Interface Watchdog device_configuration eeprom_flash mbed-rpc-nucleo mbed-rtos mbed

Fork of F103-Serial-to-Ethernet by Chau Vo

Revision:
10:4cd965d79de0
Parent:
9:d2534ecf88c6
Child:
11:709f90a3b599
--- a/main.cpp	Fri Sep 26 20:07:34 2014 +0000
+++ b/main.cpp	Fri Sep 26 20:32:57 2014 +0000
@@ -61,7 +61,7 @@
 //#define TCP_CLIENT
 #define UDP_SERVER
 //#define UDP_CLIENT
-//#define NTP
+#define NTP
 
 #define DEFAULT_IP_ADDRESS      "192.168.0.249"
 #define DEFAULT_IP_SUBNET       "255.255.255.0"
@@ -342,22 +342,6 @@
 
     // Network processor
     while (true) {
-#ifdef NTP
-        printf("Trying to update time...\r\n");
-        if (ntp.setTime("0.pool.ntp.org") == 0)
-        {
-          printf("Set time successfully\r\n");
-          time_t ctTime;
-          ctTime = time(NULL);
-          printf("Time is set to (UTC): %s\r\n", ctime(&ctTime));
-        }
-        else
-        {
-          printf("Error\r\n");
-        }
-#endif
-
-        
 // FOR INTERFACING
 #ifdef TCP_SERVER
         // no tcp client connected
@@ -455,19 +439,45 @@
                 // discovery command
                 if (strstr(buffer, "NNIODS") != NULL) {
                     udp_server.sendTo(ep_udp_client, ip_addr, strlen(ip_addr));
-                }
+                } // NNIODS
                 // ask for TCP server port
                 else if (strstr(buffer, "NNIOTP") != NULL) {
                     char port[5];
                     sprintf(port, "%5d", tcp_server_port);
                     udp_server.sendTo(ep_udp_client, port, strlen(port));
-                }
+                } // NNIOTP
                 // ask for UDP server port
                 else if (strstr(buffer, "NNIOUP") != NULL) {
                     char port[5];
                     sprintf(port, "%5d", udp_server_port);
                     udp_server.sendTo(ep_udp_client, port, strlen(port));
-                }
+                } // NNIOUP
+                else if (strstr(buffer, "NNIOTM") != NULL) {
+#ifdef NTP
+                    char str_time[50];
+                    
+                    //printf("Trying to update time...\r\n");
+                    if (ntp.setTime("0.pool.ntp.org") == 0) {
+                        //printf("Set time successfully\r\n");
+                        time_t ctTime;
+                        ctTime = time(NULL);
+                        
+                        //printf("Time is set to (UTC): %s\r\n", ctime(&ctTime));
+                        sprintf(str_time, "%s", ctime(&ctTime));
+                        udp_server.sendTo(ep_udp_client, str_time, strlen(str_time));
+                    }
+                    else {
+                        //printf("Error\r\n");
+                        sprintf(str_time, "ERR");
+                        udp_server.sendTo(ep_udp_client, str_time, strlen(str_time));
+                    }
+#elif
+                    //printf("NTP disabled\r\n");
+                    sprintf(str_time, "DIS");
+                    udp_server.sendTo(ep_udp_client, str_time, strlen(str_time));
+#endif
+                } // NNIOTM
+
                 break;
             // length = 19, SET NETWORK CONFIGURATION
             // Format: 4E 4E 49 4F      C0 A8 00 78        FF FF FF 00            C0 A8 00 01      00 00 01