Upper Version Add PUT method Delete POST method

Dependencies:   Adafruit_GFX MbedJSONValue_v102 WIZnetInterface mbed

Fork of WIZwiki-REST-io_v102 by Lawrence Lee

Revision:
1:728e5b5c8dae
Parent:
0:5886f525a4ad
Child:
2:ca36ecca24c2
--- a/main.cpp	Wed Mar 02 03:28:08 2016 +0000
+++ b/main.cpp	Tue Apr 05 11:40:33 2016 +0000
@@ -20,27 +20,236 @@
 DigitalOut LED_1(PA_1);
 DigitalOut LED_2(PA_2);
 
-DigitalInOut P05(P5);
-DigitalInOut P06(P6);
+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 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);
+    printf("\r\n");
+}    
 void WIZwiki_REST_init();
 
 int main(void)
 {
+    
     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
-    P05.output();
-    P05.write(1);
-    P06.input();
-    
+    GP05.output();
+    GP05.write(0);
+    GP06.input();
+
     //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));
+    debug_info();
 
     WIZwiki_REST_init();
-                
+
+    debug_info();
+                    
     // Serialize it into a JSON string
     printf("\r\n");
     printf("-------------------------WIZwikiREST--------------------------- \r\n");
@@ -83,71 +292,117 @@
 void WIZwiki_REST_init(void)
 {
     //Fill the object
-    WIZwikiREST["Name"] = "WIZwiki-REST-01";
+    WIZwikiREST["Name"] = "WIZwiki-RESTful-01";
+    WIZwikiREST["Name"].accessible = false;
+    debug_info();
+    
     //Network
+
     WIZwikiREST["Network"]["MAC"] = mac_str;
+    debug_info();
     WIZwikiREST["Network"]["IP"] = ip_addr; 
+    WIZwikiREST["Network"]["IP"].accessible = true; 
+    debug_info();
     WIZwikiREST["Network"]["SN"] = subnet_mask;  
+    WIZwikiREST["Network"]["SN"].accessible = true;  
+    debug_info();
     WIZwikiREST["Network"]["GW"] = gateway_addr;
+    WIZwikiREST["Network"]["GW"].accessible = true;
+    debug_info();
+
     //LEDs
-    WIZwikiREST["LEDs"]["LED_1"]["Value"] = (LED_1.read() ? "Off" : "On");
-    WIZwikiREST["LEDs"]["LED_2"]["Value"] = (LED_2.read() ? "Off" : "On");
-    
+    WIZwikiREST["LED1"] = (LED_1.read() ? "Off" : "On");
+    WIZwikiREST["LED1"].accessible = true;
+    debug_info();    
+    WIZwikiREST["LED2"] = (LED_2.read() ? "Off" : "On");
+    WIZwikiREST["LED2"].accessible = true;
+    debug_info();
     // GPIOs
-    WIZwikiREST["GPIOs"]["P05"]["Mode"] = ((GPIOA->OUTENSET&GPIO_Pin_5) ? "Output" : "Input");
-    WIZwikiREST["GPIOs"]["P05"]["Value"] = (P05.read() ? "1" : "0");
-    WIZwikiREST["GPIOs"]["P06"]["Mode"] = ((GPIOA->OUTENSET&GPIO_Pin_6) ? "Output" : "Input");
-    WIZwikiREST["GPIOs"]["P06"]["Value"] = (P06.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P07"]["Mode"] = ((GPIOA->OUTENSET&GPIO_Pin_7) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P07"]["Value"] = (P07.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P08"]["Mode"] = ((GPIOA->OUTENSET&GPIO_Pin_8) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P08"]["Value"] = (P08.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P09"]["Mode"] = ((GPIOA->OUTENSET&GPIO_Pin_9) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P09"]["Value"] = (P09.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P10"]["Mode"] = ((GPIOA->OUTENSET&GPIO_Pin_10) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P10"]["Value"] = (P10.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P11"]["Mode"] = ((GPIOA->OUTENSET&GPIO_Pin_11) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P11"]["Value"] = (P11.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P12"]["Mode"] = ((GPIOA->OUTENSET&GPIO_Pin_12) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P12"]["Value"] = (P12.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P13"]["Mode"] = ((GPIOA->OUTENSET&GPIO_Pin_13) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P13"]["Value"] = (P13.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P14"]["Mode"] = ((GPIOA->OUTENSET&GPIO_Pin_14) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P14"]["Value"] = (P14.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P15"]["Mode"] = ((GPIOB->OUTENSET&GPIO_Pin_0) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P15"]["Value"] = (P15.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P16"]["Mode"] = ((GPIOB->OUTENSET&GPIO_Pin_1) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P16"]["Value"] = (P16.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P17"]["Mode"] = ((GPIOB->OUTENSET&GPIO_Pin_2) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P17"]["Value"] = (P17.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P18"]["Mode"] = ((GPIOB->OUTENSET&GPIO_Pin_3) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P18"]["Value"] = (P18.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P19"]["Mode"] = ((GPIOC->OUTENSET&GPIO_Pin_8) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P19"]["Value"] = (P19.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P20"]["Mode"] = ((GPIOC->OUTENSET&GPIO_Pin_4) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P20"]["Value"] = (P20.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P21"]["Mode"] = ((GPIOC->OUTENSET&GPIO_Pin_0) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P21"]["Value"] = (P21.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P22"]["Mode"] = ((GPIOC->OUTENSET&GPIO_Pin_1) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P22"]["Value"] = (P22.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P23"]["Mode"] = ((GPIOC->OUTENSET&GPIO_Pin_2) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P23"]["Value"] = (P23.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P24"]["Mode"] = ((GPIOC->OUTENSET&GPIO_Pin_3) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P24"]["Value"] = (P24.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P25"]["Mode"] = ((GPIOC->OUTENSET&GPIO_Pin_9) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P25"]["Value"] = (P25.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P26"]["Mode"] = ((GPIOC->OUTENSET&GPIO_Pin_5) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P26"]["Value"] = (P26.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P27"]["Mode"] = ((GPIOC->OUTENSET&GPIO_Pin_12) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P27"]["Value"] = (P27.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P28"]["Mode"] = ((GPIOC->OUTENSET&GPIO_Pin_13) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P28"]["Value"] = (P28.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P29"]["Mode"] = ((GPIOC->OUTENSET&GPIO_Pin_14) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P29"]["Value"] = (P29.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P30"]["Mode"] = ((GPIOC->OUTENSET&GPIO_Pin_15) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P30"]["Value"] = (P30.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P31"]["Mode"] = ((GPIOC->OUTENSET&GPIO_Pin_6) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P31"]["Value"] = (P31.read() ? "1" : "0");
-//  WIZwikiREST["GPIOs"]["P32"]["Mode"] = ((GPIOC->OUTENSET&GPIO_Pin_7) ? "Output" : "Input");
-//  WIZwikiREST["GPIOs"]["P32"]["Value"] = (P32.read() ? "1" : "0");
+    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;
+    WIZwikiREST["GPIOs"]["P30"] = GP30.read();
+    WIZwikiREST["GPIOs"]["P30"].accessible = true;
+    WIZwikiREST["GPIOs"]["P30"].cb_action = p30_set;
+    WIZwikiREST["GPIOs"]["P31"] = GP31.read();
+    WIZwikiREST["GPIOs"]["P31"].accessible = true;
+    WIZwikiREST["GPIOs"]["P31"].cb_action = p31_set;
+    WIZwikiREST["GPIOs"]["P32"] = GP32.read();
+    WIZwikiREST["GPIOs"]["P32"].accessible = true;
+    WIZwikiREST["GPIOs"]["P32"].cb_action = p32_set;
+
+    debug_info();
 }