WIZ Proto Maker 3th Lab 3

Dependencies:   WIZnetInterface mbed

Files at this revision

API Documentation at this revision

Comitter:
Ricky_Kwon
Date:
Wed Feb 03 03:04:46 2016 +0000
Commit message:
WIZ Proto Makers 3th Lab 3

Changed in this revision

WIZnetInterface.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 722e7ff3a065 WIZnetInterface.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WIZnetInterface.lib	Wed Feb 03 03:04:46 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/embeddist/code/WIZnetInterface/#c91884bd2713
diff -r 000000000000 -r 722e7ff3a065 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Feb 03 03:04:46 2016 +0000
@@ -0,0 +1,140 @@
+#include "mbed.h"
+#include "EthernetInterface.h"
+
+#define WEB_SERVER_PORT   80
+char send_dat[1024]={0,};
+uint16_t calcu_len(void);
+
+DigitalOut myled(LED1);
+
+int main (void) 
+{
+    printf("Wait a second...\r\n");
+    uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0x02}; 
+    const char ip_addr[] = "192.168.0.222"; 
+    const char mask_addr[] = "255.255.255.0"; 
+    const char gateway_addr[] = "192.168.0.1";
+    
+    EthernetInterface eth;
+    //eth.init(mac_addr); //Use DHCP
+    eth.init(mac_addr, ip_addr, mask_addr, gateway_addr); //Use Static
+    eth.connect();
+    printf("Server IP Address is %s\r\n", eth.getIPAddress());
+    
+    TCPSocketServer server;
+    server.bind(WEB_SERVER_PORT);
+    server.listen();
+
+    while (true) 
+    {
+        printf("Wait for new connection...\r\n");
+        TCPSocketConnection client;
+        server.accept(client);
+        client.set_blocking(false, 15000); // Timeout after (1.5)s
+        
+        printf("Connection from: %s\r\n", client.get_address());
+        char buffer[256];
+        char dat[128];
+        char *dat_temp;
+        
+        memset(dat, 0, sizeof(dat));
+        memset(send_dat, 0, sizeof(send_dat));
+        memset(buffer, 0, sizeof(buffer));
+        
+        while (true) {
+            
+            wait(0.5);
+            int n = client.receive_all(buffer, sizeof(buffer));
+            if (n <= 0) break;
+            //buffer[n] = '\0';
+            
+            printf("rev_dat : %s\r\n", buffer);
+    
+                       
+            if((buffer[0]=='G')&&(buffer[1]=='E')&&(buffer[2]=='T')&&(buffer[3]==' '))// GET_Request
+            { 
+                if((buffer[13]=='?'))
+                {
+                    if((buffer[18]=='O')&&(buffer[19]=='F'))
+                    {
+                        printf("---LED OFF---\r\n");
+                        myled = 1;
+                        dat_temp = "HTTP/1.1 200 OK\r\n";                           strcat(dat, dat_temp);
+                        dat_temp = "Content-Type: text/html\r\n";                   strcat(dat, dat_temp);
+                        dat_temp = "Connection: close\r\n";                         strcat(dat, dat_temp);
+  
+                        sprintf(dat, "%sContent-Length: %d\r\n", dat, calcu_len());     strcat(dat, dat_temp);
+                    
+                        client.send(dat, strlen(dat));
+                        printf("send_dat : %s\r\n", dat);
+                    
+                        client.send(send_dat, sizeof(send_dat));   
+                        printf("send_dat : %s\r\n", send_dat);
+                        
+                        memset(dat, 0, sizeof(dat));
+                        memset(send_dat, 0, sizeof(send_dat));
+                        memset(buffer, 0, sizeof(buffer));
+                    }
+                    else
+                    {
+                        printf("---LED ON---\r\n");
+                        myled = 0;
+                        dat_temp = "HTTP/1.1 200 OK\r\n";                           strcat(dat, dat_temp);
+                        dat_temp = "Content-Type: text/html\r\n";                   strcat(dat, dat_temp);
+                        dat_temp = "Connection: close\r\n";                         strcat(dat, dat_temp);
+
+                        sprintf(dat, "%sContent-Length: %d\r\n", dat, calcu_len());     strcat(dat, dat_temp);
+                    
+                        client.send(dat, strlen(dat));
+                        printf("send_dat : %s\r\n", dat);
+                    
+                        client.send(send_dat, sizeof(send_dat));   
+                        printf("send_dat : %s\r\n", send_dat);
+                        
+                        memset(dat, 0, sizeof(dat));
+                        memset(send_dat, 0, sizeof(send_dat));
+                        memset(buffer, 0, sizeof(buffer));
+                    }                    
+                }
+
+                else
+                {
+                    dat_temp = "HTTP/1.1 200 OK\r\n";                           strcat(dat, dat_temp);
+                    dat_temp = "Content-Type: text/html\r\n";                   strcat(dat, dat_temp);
+                    dat_temp = "Connection: close\r\n";                         strcat(dat, dat_temp);
+                    //len = calcu_len();
+                    sprintf(dat, "%sContent-Length: %d\r\n", dat, calcu_len());     strcat(dat, dat_temp);
+                
+                    client.send(dat, strlen(dat));
+                    printf("send_dat : %s\r\n", dat);
+                
+                    client.send(send_dat, sizeof(send_dat));   
+                    printf("send_dat : %s\r\n", send_dat);
+                    
+                    memset(dat, 0, sizeof(dat));
+                    memset(send_dat, 0, sizeof(send_dat));
+                    memset(buffer, 0, sizeof(buffer));
+                }
+            }
+            
+        }
+        
+        client.close();
+    }
+    
+}
+uint16_t calcu_len(void)
+{
+    char * dat_temp;
+    
+    dat_temp = "<html>\r\n"\
+                "<body>\r\n"\
+                "<a href='led.html?LED=ON'>LED ON</a>\r\n"\
+                "<br>\r\n"\
+                "<a href='led.html?LED=OFF'>LED OFF</a>\r\n"\
+                "<body>\r\n"\                                                                           
+                "<html>\r\n";
+    strcat(send_dat, dat_temp);
+    return strlen(send_dat);
+}
+ 
\ No newline at end of file
diff -r 000000000000 -r 722e7ff3a065 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Feb 03 03:04:46 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/6f327212ef96
\ No newline at end of file