WIZwikiREST-io exercise code for WIZnet Academy
Dependencies: MbedJSONValue_v102 WIZnetInterface mbed
Fork of WIZwiki-REST-io_v103 by
main.cpp
- Committer:
- joon874
- Date:
- 2016-05-31
- Revision:
- 4:0b5a199e91f3
- Parent:
- 2:ca36ecca24c2
- Child:
- 5:473a66ae9596
File content as of revision 4:0b5a199e91f3:
#include "mbed.h" #include "HTTPServer.h" #include "RequestHandler.h" #include "EthernetInterface.h" #include "MbedJSONValue.h" #define SERVER_PORT 80 #define DHCP //#define DEBUG EthernetInterface eth; HTTPServer WIZwikiWebSvr; MbedJSONValue WIZwikiREST; // Enter a MAC address for your controller below. uint8_t mac_addr[6] = {0x00, 0x08, 0xDC, 0x00, 0x01, 0xFE}; char mac_str[20]; char ip_addr[] = "192.168.100.100"; char subnet_mask[] = "255.255.255.0"; char gateway_addr[] = "192.168.100.1"; GetRequestHandler myGetReq; PostRequestHandler myPostReq; DigitalOut LED_1(PA_1); DigitalOut LED_2(PA_2); DigitalInOut GP05(P5); DigitalInOut GP06(P6); DigitalInOut GP07(P7); DigitalInOut GP08(P8); DigitalInOut GP09(P9); DigitalInOut GP10(P10); DigitalInOut GP11(P11); DigitalInOut GP12(P12); DigitalInOut GP13(P13); DigitalInOut GP14(P14); DigitalInOut GP15(P15); DigitalInOut GP16(P16); DigitalInOut GP17(P17); DigitalInOut GP18(P18); DigitalInOut GP19(P19); DigitalInOut GP20(P20); DigitalInOut GP21(P21); DigitalInOut GP22(P22); DigitalInOut GP23(P23); DigitalInOut GP24(P24); DigitalInOut GP25(P25); DigitalInOut GP26(P26); DigitalInOut GP27(P27); DigitalInOut GP28(P28); DigitalInOut GP29(P29); DigitalInOut GP30(P30); DigitalInOut GP31(P31); DigitalInOut GP32(P32); bool gpio_all(void* param) { if(!param) return false; GP05.write(*(int*)param); GP06.write(*(int*)param); GP07.write(*(int*)param); GP08.write(*(int*)param); GP09.write(*(int*)param); GP10.write(*(int*)param); GP11.write(*(int*)param); GP12.write(*(int*)param); GP13.write(*(int*)param); GP14.write(*(int*)param); GP15.write(*(int*)param); GP16.write(*(int*)param); GP17.write(*(int*)param); GP18.write(*(int*)param); GP19.write(*(int*)param); GP20.write(*(int*)param); GP21.write(*(int*)param); GP22.write(*(int*)param); GP23.write(*(int*)param); GP24.write(*(int*)param); GP25.write(*(int*)param); GP26.write(*(int*)param); GP27.write(*(int*)param); GP28.write(*(int*)param); GP29.write(*(int*)param); return true; } bool p5_set(void* param) { if(!param) return false; GP05.write(*(int*)param); return true; } bool p6_set(void* param) { if(!param) return false; GP06.write(*(int*)param); return true; } bool p7_set(void* param) { if(!param) return false; GP07.write(*(int*)param); return true; } bool p8_set(void* param) { if(!param) return false; GP08.write(*(int*)param); return true; } bool p9_set(void* param) { if(!param) return false; GP09.write(*(int*)param); return true; } bool p10_set(void* param) { if(!param) return false; GP10.write(*(int*)param); return true; } bool p11_set(void* param) { if(!param) return false; GP11.write(*(int*)param); return true; } bool p12_set(void* param) { if(!param) return false; GP12.write(*(int*)param); return true; } bool p13_set(void* param) { if(!param) return false; GP13.write(*(int*)param); return true; } bool p14_set(void* param) { if(!param) return false; GP14.write(*(int*)param); return true; } bool p15_set(void* param) { if(!param) return false; GP15.write(*(int*)param); return true; } bool p16_set(void* param) { if(!param) return false; GP16.write(*(int*)param); return true; } bool p17_set(void* param) { if(!param) return false; GP17.write(*(int*)param); return true; } bool p18_set(void* param) { if(!param) return false; GP18.write(*(int*)param); return true; } bool p19_set(void* param) { if(!param) return false; GP19.write(*(int*)param); return true; } bool p20_set(void* param) { if(!param) return false; GP20.write(*(int*)param); return true; } bool p21_set(void* param) { if(!param) return false; GP21.write(*(int*)param); return true; } bool p22_set(void* param) { if(!param) return false; GP22.write(*(int*)param); return true; } bool p23_set(void* param) { if(!param) return false; GP23.write(*(int*)param); return true; } bool p24_set(void* param) { if(!param) return false; GP24.write(*(int*)param); return true; } bool p25_set(void* param) { if(!param) return false; GP25.write(*(int*)param); return true; } bool p26_set(void* param) { if(!param) return false; GP26.write(*(int*)param); return true; } bool p27_set(void* param) { if(!param) return false; GP27.write(*(int*)param); return true; } bool p28_set(void* param) { if(!param) return false; GP28.write(*(int*)param); return true; } bool p29_set(void* param) { if(!param) return false; GP29.write(*(int*)param); return true; } bool p30_set(void* param) { if(!param) return false; GP30.write(*(int*)param); return true; } bool p31_set(void* param) { if(!param) return false; GP31.write(*(int*)param); return true; } bool p32_set(void* param) { if(!param) return false; GP32.write(*(int*)param); return true; } void debug_info() { printf("SP:0x%X\r\n",__current_sp()); __heapstats((__heapprt)fprintf,stderr); #ifdef DEBUG __heapvalid((__heapprt)fprintf,stderr, 1); #endif printf("\r\n"); } void WIZwiki_REST_init(); int main(void) { #ifdef DEBUG debug_info(); #endif sprintf(mac_str, "%02X:%02X:%02X:%02X:%02X:%02X",mac_addr[0],mac_addr[1],mac_addr[2],mac_addr[3],mac_addr[4],mac_addr[5]); //GPIO Set GP05.output(); GP05.write(1); GP06.output(); GP06.write(1); GP07.output(); GP07.write(1); GP08.output(); GP08.write(1); GP09.output(); GP09.write(1); GP10.output(); GP10.write(1); GP11.output(); GP11.write(1); GP12.output(); GP12.write(1); GP13.output(); GP13.write(1); GP14.output(); GP14.write(1); GP15.output(); GP15.write(1); GP16.output(); GP16.write(1); GP17.output(); GP17.write(1); GP18.output(); GP18.write(1); GP19.output(); GP19.write(1); GP20.output(); GP20.write(1); GP21.output(); GP21.write(1); GP22.output(); GP22.write(1); GP23.output(); GP23.write(1); GP24.output(); GP24.write(1); GP25.output(); GP25.write(1); GP26.output(); GP26.write(1); GP27.output(); GP27.write(1); GP28.output(); GP28.write(1); GP29.output(); GP29.write(1); //LED Setbit //LED_1.write(0); // LED On //LED_2.write(1); // LED Off printf("START \r\n"); printf("sizeof(MbedJSONValue)=%d\r\n",sizeof(MbedJSONValue)); printf("sizeof(vector)=%d\r\n",sizeof(std::vector<string*>)); printf("sizeof(string)=%d\r\n",sizeof(std::string)); #ifdef DEBUG debug_info(); #endif WIZwiki_REST_init(); #ifdef DEBUG debug_info(); #endif // Serialize it into a JSON string printf("-------------------------WIZwikiREST--------------------------- \r\n"); printf("\r\n%s\r\n", WIZwikiREST.serialize().c_str()); printf("--------------------------------------------------------------- \r\n"); WIZwikiWebSvr.add_request_handler("GET", &myGetReq); WIZwikiWebSvr.add_request_handler("POST", &myPostReq); //WIZwikiWebSvr.add_request_handler("DELETE", new PostRequestHandler()); //WIZwikiWebSvr.add_request_handler("PUT", new PutRequestHandler()); #ifdef DHCP eth.init(mac_addr); //Use DHCP #else eth.init(mac_addr, ip_addr, subnet_mask, gateway_addr); //Not Use DHCP #endif printf("Check Ethernet Link\r\n"); do{ printf(" Link - Wait... \r\n"); wait(1); }while(!eth.ethernet_link()); printf("-- Ethetnet PHY Link - Done -- \r\n"); if (eth.connect() < 0 ) printf("-- EThernet Connect - Fail -- \r\n"); else { printf("-- Assigned Network Information -- \r\n"); printf(" IP : %s\r\n\r\n", eth.getIPAddress()); printf(" MASK : %s\r\n\r\n", eth.getNetworkMask()); printf(" GW : %s\r\n\r\n", eth.getGateway()); } printf("Link up\r\n"); printf("IP Address is %s\r\n", eth.getIPAddress()); #ifdef DEBUG debug_info(); #endif if(!WIZwikiWebSvr.init(SERVER_PORT)) { eth.disconnect(); return -1; } while(1) { WIZwikiWebSvr.run(); } } void WIZwiki_REST_init(void) { //Fill the object WIZwikiREST["Name"] = "WIZwiki-RESTful-01"; WIZwikiREST["Name"].accessible = false; #ifdef DEBUG debug_info(); #endif //Network WIZwikiREST["Network"]["MAC"] = mac_str; WIZwikiREST["Network"]["IP"] = ip_addr; WIZwikiREST["Network"]["IP"].accessible = true; WIZwikiREST["Network"]["SN"] = subnet_mask; WIZwikiREST["Network"]["SN"].accessible = true; WIZwikiREST["Network"]["GW"] = gateway_addr; WIZwikiREST["Network"]["GW"].accessible = true; //LEDs //WIZwikiREST["LED1"] = (LED_1.read() ? "Off" : "On"); //WIZwikiREST["LED1"].accessible = true; //WIZwikiREST["LED2"] = (LED_2.read() ? "Off" : "On"); //WIZwikiREST["LED2"].accessible = true; // GPIOs WIZwikiREST["GPIOs"]["all"].accessible = true; WIZwikiREST["GPIOs"]["all"].cb_action = gpio_all; WIZwikiREST["GPIOs"]["P05"] = GP05.read(); WIZwikiREST["GPIOs"]["P05"].accessible = true; WIZwikiREST["GPIOs"]["P05"].cb_action = p5_set; WIZwikiREST["GPIOs"]["P06"] = GP06.read(); WIZwikiREST["GPIOs"]["P06"].accessible = true; WIZwikiREST["GPIOs"]["P06"].cb_action = p6_set; WIZwikiREST["GPIOs"]["P07"] = GP07.read(); WIZwikiREST["GPIOs"]["P07"].accessible = true; WIZwikiREST["GPIOs"]["P07"].cb_action = p7_set; WIZwikiREST["GPIOs"]["P08"] = GP08.read(); WIZwikiREST["GPIOs"]["P08"].accessible = true; WIZwikiREST["GPIOs"]["P08"].cb_action = p8_set; WIZwikiREST["GPIOs"]["P09"] = GP09.read(); WIZwikiREST["GPIOs"]["P09"].accessible = true; WIZwikiREST["GPIOs"]["P09"].cb_action = p9_set; WIZwikiREST["GPIOs"]["P10"] = GP10.read(); WIZwikiREST["GPIOs"]["P10"].accessible = true; WIZwikiREST["GPIOs"]["P10"].cb_action = p10_set; WIZwikiREST["GPIOs"]["P11"] = GP11.read(); WIZwikiREST["GPIOs"]["P11"].accessible = true; WIZwikiREST["GPIOs"]["P11"].cb_action = p11_set; WIZwikiREST["GPIOs"]["P12"] = GP12.read(); WIZwikiREST["GPIOs"]["P12"].accessible = true; WIZwikiREST["GPIOs"]["P12"].cb_action = p12_set; WIZwikiREST["GPIOs"]["P13"] = GP13.read(); WIZwikiREST["GPIOs"]["P13"].accessible = true; WIZwikiREST["GPIOs"]["P13"].cb_action = p13_set; WIZwikiREST["GPIOs"]["P14"] = GP14.read(); WIZwikiREST["GPIOs"]["P14"].accessible = true; WIZwikiREST["GPIOs"]["P14"].cb_action = p14_set; WIZwikiREST["GPIOs"]["P15"] = GP15.read(); WIZwikiREST["GPIOs"]["P15"].accessible = true; WIZwikiREST["GPIOs"]["P15"].cb_action = p15_set; WIZwikiREST["GPIOs"]["P16"] = GP16.read(); WIZwikiREST["GPIOs"]["P16"].accessible = true; WIZwikiREST["GPIOs"]["P16"].cb_action = p16_set; WIZwikiREST["GPIOs"]["P17"] = GP17.read(); WIZwikiREST["GPIOs"]["P17"].accessible = true; WIZwikiREST["GPIOs"]["P17"].cb_action = p17_set; WIZwikiREST["GPIOs"]["P18"] = GP18.read(); WIZwikiREST["GPIOs"]["P18"].accessible = true; WIZwikiREST["GPIOs"]["P18"].cb_action = p18_set; WIZwikiREST["GPIOs"]["P19"] = GP19.read(); WIZwikiREST["GPIOs"]["P19"].accessible = true; WIZwikiREST["GPIOs"]["P19"].cb_action = p19_set; WIZwikiREST["GPIOs"]["P20"] = GP20.read(); WIZwikiREST["GPIOs"]["P20"].accessible = true; WIZwikiREST["GPIOs"]["P20"].cb_action = p20_set; WIZwikiREST["GPIOs"]["P21"] = GP21.read(); WIZwikiREST["GPIOs"]["P21"].accessible = true; WIZwikiREST["GPIOs"]["P21"].cb_action = p21_set; WIZwikiREST["GPIOs"]["P22"] = GP22.read(); WIZwikiREST["GPIOs"]["P22"].accessible = true; WIZwikiREST["GPIOs"]["P22"].cb_action = p22_set; WIZwikiREST["GPIOs"]["P23"] = GP23.read(); WIZwikiREST["GPIOs"]["P23"].accessible = true; WIZwikiREST["GPIOs"]["P23"].cb_action = p23_set; WIZwikiREST["GPIOs"]["P24"] = GP24.read(); WIZwikiREST["GPIOs"]["P24"].accessible = true; WIZwikiREST["GPIOs"]["P24"].cb_action = p24_set; WIZwikiREST["GPIOs"]["P25"] = GP25.read(); WIZwikiREST["GPIOs"]["P25"].accessible = true; WIZwikiREST["GPIOs"]["P25"].cb_action = p25_set; WIZwikiREST["GPIOs"]["P26"] = GP26.read(); WIZwikiREST["GPIOs"]["P26"].accessible = true; WIZwikiREST["GPIOs"]["P26"].cb_action = p26_set; WIZwikiREST["GPIOs"]["P27"] = GP27.read(); WIZwikiREST["GPIOs"]["P27"].accessible = true; WIZwikiREST["GPIOs"]["P27"].cb_action = p27_set; WIZwikiREST["GPIOs"]["P28"] = GP28.read(); WIZwikiREST["GPIOs"]["P28"].accessible = true; WIZwikiREST["GPIOs"]["P28"].cb_action = p28_set; WIZwikiREST["GPIOs"]["P29"] = GP29.read(); WIZwikiREST["GPIOs"]["P29"].accessible = true; WIZwikiREST["GPIOs"]["P29"].cb_action = p29_set; #ifdef DEBUG debug_info(); #endif }