ControllerBox directs electromechanical equipment in restaurants to display information.

Dependencies:   TextLCD MbedJSONValue libMotiv picojson mbed-rtos mbed

Fork of Mbed_MotiVControllerBox by Tim Wöstemeier

Revision:
2:ad4509a9d051
Parent:
1:d54aed10ddf3
Child:
3:21c8adb97c8f
--- a/main.cpp	Sat Nov 15 13:04:09 2014 +0000
+++ b/main.cpp	Tue Dec 02 20:51:18 2014 +0000
@@ -3,7 +3,8 @@
 #include "TextLCD/TextLCD.h"
 #include "Controller.h"
 #include "EthernetInterface.h"
-#include "SDFileSystem.h"
+#include "HTTPClient.h"
+//#include "SDFileSystem.h" Needed if config files are going to be implemented
 #include <string>
 
 /*****************
@@ -23,7 +24,11 @@
 //Comms
 Serial pc(USBTX, USBRX); //tx, rx
 Serial rfd(p9, p10); //tx, rx
+
+//TODO: Should be the responsibility of Controller
 EthernetInterface eth;
+HTTPClient http;
+char str[512];
 
 //Storage
 //SD card
@@ -44,13 +49,14 @@
 void setup(); //Called once to setup
 void runProgram(); //Program with loop
 
+
 /****************
       MAIN
 *****************/
 int main()
 {
     setup();
-
+    c.lcd->cls();
     //the LCD is cleared using function .cls()
     lcd.cls();
 
@@ -73,42 +79,39 @@
     //Initialize Ethernet
     eth.init();
     eth.connect();
+    wait_ms(200);
 }
 
 void runProgram()
 {
-    c.lcd->cls();
+
     c.lcd->locate(0,0);
     c.displayStatus();
 //    c.printDesc(1);
     string ip = eth.getIPAddress();
-    c.setStatus(Controller::READY);
-
-    UDPSocket sock;
-    sock.init();
-    
-    Endpoint nist;
-    nist.set_address("utcnist.colorado.edu", 37);
-    
-    char out_buffer[] = "plop"; // Does not matter
-    sock.sendTo(nist, out_buffer, sizeof(out_buffer));
-    
-    char in_buffer[4];
-    int n = sock.receiveFrom(nist, in_buffer, sizeof(in_buffer));
-    
-    unsigned int timeRes = ntohl( *((unsigned int*)in_buffer));
-    pc.printf("Received %d bytes from server %s on port %d: %u seconds since 1/01/1900 00:00 GMT\n", n, nist.get_address(), nist.get_port(), timeRes);
-    
-    sock.close();
+    string mStr = "IP: " + ip + "\r\n";
+    c.lcdWriteLine(3, mStr);
+    pc.printf("%s", ip);
+//
 
 
-    pc.printf("%s", ip);
+        //GET data
+    printf("\nTrying to fetch page...\r\n");
+    int ret = http.get("http://core.motiv.jvanbaarsen.com/v1/tables/7", str, 128);
+    if (!ret)
+    {
+      printf("Page fetched successfully - read %d characters\r\n", strlen(str));
+      printf("Result: %s\r\n", str);
+      c.lcdWriteLine(1, str);
+    }
+    else
+    {
+      printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode());
+    }
 
-//    c.writeLine(3, ("IP: " + ipa));
-    c.lcd->locate(0,3);
-    c.lcd->clearLine();
-    c.lcd->locate(0,3);
-    c.lcd->printf("IP: %s", ip);
+
+    c.setStatus(Controller::READY);
+    pc.printf("Controller ready\r\n");
 
     //Reset flower
     rfd.putc(2);
@@ -149,7 +152,7 @@
                 counter--;
         } else if(Up)
             pushedUp = false;
-            else if(Down)
+        else if(Down)
             pushedDown = false;
 
         if(counter != counterLast) {
@@ -215,7 +218,7 @@
                     break;
             }
             counterLast = counter;
-        c.lcdWriteLine(2, str);
+            c.lcdWriteLine(2, str);
         }
 
 
@@ -229,23 +232,23 @@
 EthernetInterface eth;
     eth.init(); //Use DHCP
     eth.connect();
-    
+
     UDPSocket sock;
     sock.init();
-    
+
     Endpoint nist;
     nist.set_address("utcnist.colorado.edu", 37);
-    
+
     char out_buffer[] = "plop"; // Does not matter
     sock.sendTo(nist, out_buffer, sizeof(out_buffer));
-    
+
     char in_buffer[4];
     int n = sock.receiveFrom(nist, in_buffer, sizeof(in_buffer));
-    
+
     unsigned int timeRes = ntohl( *((unsigned int*)in_buffer));
     printf("Received %d bytes from server %s on port %d: %u seconds since 1/01/1900 00:00 GMT\n", n, nist.get_address(), nist.get_port(), timeRes);
-    
+
     sock.close();
-    
+
     eth.disconnect();
     */
\ No newline at end of file