n/a

Dependencies:   C12832 mbed-http

Fork of HTTP-Python-Demo by Cambridge Hackathon

Revision:
3:8135a6313648
Parent:
2:b91140c3c3f6
Child:
4:14c774cf7ac2
--- a/main.cpp	Fri Nov 17 16:04:17 2017 -0600
+++ b/main.cpp	Sun Nov 26 00:22:09 2017 +0000
@@ -12,19 +12,95 @@
 // from ARM Limited or its affiliates.
 //----------------------------------------------------------------------------
 #include "mbed.h"
+#include "config.h"
 #include "C12832.h"
 #include "OdinWiFiInterface.h"
 #include "http_request.h"
 
-// GLOBAL VARIABLES HERE
-
+C12832  lcd(PE_14, PE_12, PD_12, PD_11, PE_9);
+OdinWiFiInterface wifiIF;
+InterruptIn post_button(PF_2);
+InterruptIn get_put_button(PG_4);
+volatile bool post_clicked = false;
+volatile bool get_clicked = false;
+volatile bool put_clicked = false;
 
-// FUNCTION DEFINITIONS HERE
+void lcd_print(const char* message) {
+    lcd.cls();
+    lcd.locate(0, 3);
+    lcd.printf(message);
+}
 
+void send_post() {
+    post_clicked = true;
+}
+ 
+void send_get_put() {
+    get_clicked = true;
+}
 
 int main() {
 
-    // MAIN CODE HERE
+    int ret;
+    SocketAddress serverAddr;
+    
+    lcd_print("Connecting...");
+    ret = wifiIF.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
+    if (ret != 0) {
+        lcd_print("Connection error.");
+        return -1;
+    }
+    lcd_print("Successfully connected!");
+    lcd_print(wifiIF.get_mac_address());
+    wifiIF.gethostbyname(SERVERNAME, &serverAddr);
 
+    /* Enable interrupts */
+    post_button.rise(&send_post);
+    get_put_button.rise(&send_get_put);
+    
+    /* Main loop */
+    while (1) {
+        /* Post data */
+        if (post_clicked) {
+            lcd_print("post");
+            post_clicked = false;
+            NetworkInterface* netIF = &wifiIF;
+            HttpRequest* request = new HttpRequest(netIF, HTTP_POST, "http://10.25.2.152:8080");
+            request->set_header("Content-Type", "application/json");
+            const char body[] = "HelloWorld";
+            HttpResponse* response = request->send(body, strlen(body));
+            lcd_print(response->get_body_as_string().c_str());
+            delete request;
+        }
+        
+        /* Get data */
+        if (get_clicked) {
+            get_clicked = false;
+            put_clicked = true;
+            NetworkInterface* netIF = &wifiIF;
+            HttpRequest* request = new HttpRequest(netIF, HTTP_GET, "http://10.25.2.152:8080");
+            request->set_header("Content-Type", "application/json");
+            const char body[] = "{\"get\":\"request\"}";
+            HttpResponse* response = request->send(body, strlen(body));
+            lcd_print(response->get_body_as_string().c_str());
+            delete request;
+        }
+
+        wait_ms(2000);
+        
+        /* Put */
+        if (put_clicked) {
+            put_clicked = false;
+            lcd_print("put");
+            NetworkInterface* net = &wifiIF;
+            HttpRequest* request = new HttpRequest(net, HTTP_PUT, "http://10.25.2.152:8080");
+            request->set_header("Content-Type", "application/json");
+            const char body[] = "{\"put\":\"request\"}";
+            HttpResponse* response = request->send(body, strlen(body));
+            lcd_print(response->get_body_as_string().c_str());
+            delete request;
+        }
+   
+    }
 
 }