LED control by TCP

Dependencies:   WIZnetInterface mbed

Fork of TCPEchoServer-WIZwiki-W7500 by WIZnet

Revision:
12:aee11a1d7f14
Parent:
11:0da8667a9201
--- a/main.cpp	Mon Jun 29 09:46:12 2015 +0000
+++ b/main.cpp	Mon Jul 20 07:54:18 2015 +0000
@@ -3,10 +3,17 @@
 
 #define ECHO_SERVER_PORT   7
 
+DigitalOut myled(LED1);
+
+int compare_strings(char [], char []); 
+
 int main (void) 
 {
+    myled = 1; // LED OFF in WIZwiki-W7500
+    int flag=1;
+
     printf("Wait a second...\r\n");
-    uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02}; 
+    uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x55, 0x51, 0x52}; 
     EthernetInterface eth;
     eth.init(mac_addr); //Use DHCP
     eth.connect();
@@ -32,6 +39,39 @@
             // print received message to terminal
             buffer[n] = '\0';
             printf("Received message from Client :'%s'\r\n",buffer);
+
+          
+            // LED control if received message matches pre-defined command
+            /*
+            if ((buffer[0] == 'L') & (buffer[1] == '\0'))
+              myled = 0; // LED ON in WIZwiki-W7500
+            else
+              myled = 1;
+            */
+            
+            // LED control if received message matches pre-defined command
+            char command_buf[256] = {'L', 'E', 'D', '_', 'O', 'N', '\0'};
+
+            char string[256];
+            strcpy (string, command_buf);
+            printf("Received command : %s\n", string);
+
+            flag = compare_strings(buffer, command_buf);
+            
+            if (flag == 0) {
+              myled = 0; // LED ON in WIZwiki-W7500
+              printf("LED is turned on!\r\n");
+            }
+            else {
+              myled = 1;
+              printf("LED is turned off!\r\n");
+            }
+
+
+            // LED blink one time                        
+            //myled = 0; // LED ON in WIZwiki-W7500
+            //wait(1.0);
+            //myled = 1; // LED OFF in WIZwiki-W7500
             
             // reverse the message
             char temp;
@@ -54,3 +94,18 @@
     
 }
 
+int compare_strings(char a[], char b[])
+{
+   int c = 0;
+ 
+   while (a[c] == b[c]) {
+      if (a[c] == '\0' || b[c] == '\0')
+         break;
+      c++;
+   }
+ 
+   if (a[c] == '\0' && b[c] == '\0')
+      return 0;
+   else
+      return -1;
+}