petfeeder st ver

Dependencies:   SDFileSystem WIZnetInterface petfeeder_st_ver mbed

Fork of Nucleo_F103RB_W5500HelloWorld by WIZnet

Revision:
2:84c4d61780d7
Parent:
1:9a6af61c5eb4
--- a/main.cpp	Sun May 17 11:12:56 2015 +0000
+++ b/main.cpp	Fri Jun 09 04:44:22 2017 +0000
@@ -1,86 +1,54 @@
 #include "mbed.h"
-#include "WIZnetInterface.h"
-
-#define USE_DHCP    1
-
-#define LOOPBACKPORT    5000
+#include "EthernetInterface.h"
+#include "FsHandler.h"
+#include "HTTPServer.h"
+#include "SDFileSystem.h"
 
-const char * IP_Addr    = "192.168.11.194";
-const char * IP_Subnet  = "255.255.255.0";
-const char * IP_Gateway = "192.168.11.1";
-unsigned char MAC_Addr[6] = {0x00,0x08,0xDC,0x12,0x34,0x56};
-
-DigitalOut myled1(LED1);
 Serial pc(USBTX, USBRX);
 
-#ifdef TARGET_LPC11U68
-    SPI spi(P0_9,P0_8,P1_29);
-    WIZnetInterface ethernet(&spi,P0_2,P1_13);
-#elif defined(TARGET_NUCLEO_F103RB)
-    SPI spi(PA_7, PA_6, PA_5); // mosi, miso, sclk
-    WIZnetInterface ethernet(&spi, PB_6, PA_9);//scs(PB_6), nRESET(PA_9); // reset pin is dummy, don't affect any pin of WIZ550io
-#endif
+SPI spi(PA_7, PA_6, PA_5); // mosi, miso, sclk
+EthernetInterface eth(&spi, PB_6, PA_9);//scs(PB_6), nRESET(PA_9); // reset pin is dummy, don't affect any pin of WIZ550io
+SDFileSystem local(PA_7, PA_6, PA_5, PB_5, "local");//PB_3, PB_2, PB_1, PB_0
+
+HTTPServer  svr;
+
+char ip_addr[] = "192.168.0.111";
+char subnet_mask[] = "255.255.255.0";
+char gateway_addr[] = "192.168.0.1";
+uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0xff, 0xff, 0x10};
 
-int main() {
-    
-    mbed_mac_address((char *)MAC_Addr); //Use mbed mac addres
-    
-    //Set serial port baudrate speed: 115200
-    pc.baud(115200);
-    wait(10);
-    pc.printf("W5500 Application Started \r\n");
+double duty;
 
-    char buffer[256];
-    
-    while(1)
+int main()
+{
+    HTTPFsRequestHandler::mount_eth(&eth);
+    HTTPFsRequestHandler::mount("/local/", "/");
+    svr.addHandler<HTTPFsRequestHandler>("/");
+
+    eth.init(mac_addr, ip_addr, subnet_mask, gateway_addr); //Not Use DHCP
+
+    printf("Check Ethernet Link\r\n");
+    while(1) //Wait link up
     {
-        #if USE_DHCP
-        int ret = ethernet.init(MAC_Addr);
-        #else
-        int ret = ethernet.init(MAC_Addr,IP_Addr,IP_Subnet,IP_Gateway);
-        #endif
-        
-        
-        printf("SPI Initialized \r\n");
-        wait(1); // 1 second for stable state
-        
-        printf("W5500 Networking Started \r\n");
-        wait(1); // 1 second for stable state
-        
-        
-        if (!ret) {
-            pc.printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress());
-            ret = ethernet.connect();
-            if (!ret) {
-                pc.printf("IP: %s, MASK: %s, GW: %s\r\n",
-                          ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway());
-            } else {
-                pc.printf("Error ethernet.connect() - ret = %d\r\n", ret);
-                exit(0);
-            }
-        } else {
-            pc.printf("Error ethernet.init() - ret = %d\r\n", ret);
-            exit(0);
-        }
-        
-        TCPSocketServer server;
-        server.bind(LOOPBACKPORT);
-        server.listen();
-        
-        while (1) {
-            pc.printf("\nWait for new connection...\r\n");
-            TCPSocketConnection client;
-            server.accept(client);
-            client.set_blocking(false, 0); // Timeout=0.
-            pc.printf("Connection from: %s\r\n", client.get_address());
-            while (client.is_connected() == true) {
-                int n = client.receive(buffer, sizeof(buffer));
-                if(n > 0)
-                    client.send_all(buffer, n);
-                if(client.is_fin_received())
-                    client.close();
-            }
-            pc.printf("Disconnected.\r\n");
-        }
+        printf(".");
+        if(eth.link() == true) 
+            break;
+    }
+    printf("Link up\r\n");
+
+    wait(3);
+    
+    eth.connect();
+    
+    printf("Server IP Address is %s\r\n", eth.getIPAddress());
+
+    if (!svr.start(80, &eth)) {
+
+        error("Server not starting !");
+        exit(0);
+    }
+
+    while(1) {
+        svr.poll();
     }
 }