This is WIZwiki-REST-io upper version. This version possible to handle PWM, I2C, GPIO.

Dependencies:   Adafruit_GFX MbedJSONValue_copy WIZnetInterface mbed

Fork of WIZwiki-REST-io by Lawrence Lee

Files at this revision

API Documentation at this revision

Comitter:
joon874
Date:
Mon Jul 04 00:14:31 2016 +0000
Parent:
4:0b5a199e91f3
Commit message:
This is WIZwiki-REST-io upper version. This platform possible to handle PWM, I2C, GPIO.

Changed in this revision

Adafruit_GFX.lib Show annotated file Show diff for this revision Revisions of this file
RequestHandler.cpp Show annotated file Show diff for this revision Revisions of this file
RequestHandler.h 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
diff -r 0b5a199e91f3 -r 473a66ae9596 Adafruit_GFX.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Adafruit_GFX.lib	Mon Jul 04 00:14:31 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/users/eunkyoungkim/code/Adafruit_GFX/#beff890cf659
diff -r 0b5a199e91f3 -r 473a66ae9596 RequestHandler.cpp
--- a/RequestHandler.cpp	Tue May 31 10:31:30 2016 +0000
+++ b/RequestHandler.cpp	Mon Jul 04 00:14:31 2016 +0000
@@ -183,6 +183,7 @@
             case MbedJSONValue::TypeString:
                 if(tmpJson->accessible){
                     *tmpJson = pDataJson->_value.asString;
+                    tmpJson->cb_action((void*)tmpJson->_value.asString->c_str()); 
                 }
                 else{
                     errnum = 403;
@@ -200,7 +201,11 @@
                         if((*tmpJson)[tok].accessible){
                             errnum = 200;
                             if((*pDataJson)[i].size() > 0){
-                                (*tmpJson)[tok] = (*pDataJson)[i]._value.asString;
+                                //(*tmpJson)[tok] = (*pDataJson)[i]._value.asString;
+                                (*tmpJson)[tok] = (*pDataJson)[i]._value.asString->c_str();
+                                
+                                //(*tmpJson)[tok].cb_action((void*)&((*pDataJson)[i]._value.asInt)); 
+                                (*tmpJson)[tok].cb_action((void*)((*pDataJson)[i]._value.asString->c_str())); 
 #ifdef DEBUG_HTTPREQ                                                            
                                 printf("String Updated: %s : %s\r\n", tok,(*tmpJson)[tok].get<std::string>().c_str());
 #endif                                
diff -r 0b5a199e91f3 -r 473a66ae9596 RequestHandler.h
--- a/RequestHandler.h	Tue May 31 10:31:30 2016 +0000
+++ b/RequestHandler.h	Mon Jul 04 00:14:31 2016 +0000
@@ -1,7 +1,7 @@
 #ifndef __REQUESTHANDLER_H_
 #define __REQUESTHANDLER_H_
 
-//#define DEBUG_HTTPREQ
+#define DEBUG_HTTPREQ
 
 extern void debug_info();
 
diff -r 0b5a199e91f3 -r 473a66ae9596 main.cpp
--- a/main.cpp	Tue May 31 10:31:30 2016 +0000
+++ b/main.cpp	Mon Jul 04 00:14:31 2016 +0000
@@ -3,13 +3,34 @@
 #include "RequestHandler.h"
 #include "EthernetInterface.h"
 #include "MbedJSONValue.h"
+// 20160630
+#include "Adafruit_SSD1306.h"
 
 #define SERVER_PORT 80
 
-#define DHCP
+//#define DHCP
 
 //#define DEBUG
 
+//-- I2C OLED --
+class I2CPreInit : public I2C
+{
+public:
+    I2CPreInit(PinName sda, PinName scl) : I2C(sda, scl)
+    {
+        frequency(100000);
+        start();
+    };
+};
+I2CPreInit gI2C(PA_10,PA_9);
+Adafruit_SSD1306_I2c gOled(gI2C,NC,0x78,64,128);
+
+//-- PWM DC --
+PwmOut DC(D6);
+
+//-- GPIO --
+DigitalInOut GP05(D5);
+
 EthernetInterface eth;
 HTTPServer WIZwikiWebSvr;
 MbedJSONValue WIZwikiREST;
@@ -24,239 +45,34 @@
 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)
+//-- I2C OLED --
+bool oled_set(void* param)
 {
+    printf("param : %c \r\n", param);
+    char * oled;
     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);
+    oled = (char*) param;
+    gOled.clearDisplay();
+    gOled.setTextCursor(0,0);
+    gOled.printf("%s",oled);
+    gOled.display();    
     return true;
 }
-
-
+//-- PWM DC --
+bool pwm_set(void* param)
+{
+    printf("%d\r\n",(*(int*)param));
+    if(!param) return false;
+    DC.write((float)(*(int*)param)/100.0);
+    return true;
+}
+//-- GPIO --
 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()
 {
@@ -277,61 +93,18 @@
 #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
+    // OLED init
+    gOled.begin();
+    gOled.clearDisplay();
+    
+    // PWM init
+    DC.period_ms(1);
+    DC.write(0);
+    
+    //GPIO set & init
     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*>));
@@ -416,91 +189,21 @@
     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;
+    
+    // I2C OLED
+    WIZwikiREST["I2C"]["OLED"] = "none";
+    WIZwikiREST["I2C"]["OLED"].accessible = true;
+    WIZwikiREST["I2C"]["OLED"].cb_action = oled_set;
     
-    // GPIOs
-    WIZwikiREST["GPIOs"]["all"].accessible = true;
-    WIZwikiREST["GPIOs"]["all"].cb_action = gpio_all; 
+    // PWM DC
+    WIZwikiREST["PWM"]["DC"] = DC.read();
+    WIZwikiREST["PWM"]["DC"].accessible = true;
+    WIZwikiREST["PWM"]["DC"].cb_action = pwm_set;
+    
+    // GPIO
     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();