n/a

Dependencies:   C12832 mbed-http

Fork of HTTP-Python-Demo by Cambridge Hackathon

Committer:
BKasza
Date:
Sun Nov 26 00:22:09 2017 +0000
Revision:
3:8135a6313648
Parent:
2:b91140c3c3f6
Child:
4:14c774cf7ac2
worked last time;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jenny Plunkett 0:c5b042cf8162 1 //----------------------------------------------------------------------------
Jenny Plunkett 0:c5b042cf8162 2 // The confidential and proprietary information contained in this file may
Jenny Plunkett 0:c5b042cf8162 3 // only be used by a person authorised under and to the extent permitted
Jenny Plunkett 0:c5b042cf8162 4 // by a subsisting licensing agreement from ARM Limited or its affiliates.
Jenny Plunkett 0:c5b042cf8162 5 //
Jenny Plunkett 0:c5b042cf8162 6 // (C) COPYRIGHT 2016 ARM Limited or its affiliates.
Jenny Plunkett 0:c5b042cf8162 7 // ALL RIGHTS RESERVED
Jenny Plunkett 0:c5b042cf8162 8 //
Jenny Plunkett 0:c5b042cf8162 9 // This entire notice must be reproduced on all copies of this file
Jenny Plunkett 0:c5b042cf8162 10 // and copies of this file may only be made by a person if such person is
Jenny Plunkett 0:c5b042cf8162 11 // permitted to do so under the terms of a subsisting license agreement
Jenny Plunkett 0:c5b042cf8162 12 // from ARM Limited or its affiliates.
Jenny Plunkett 0:c5b042cf8162 13 //----------------------------------------------------------------------------
Jenny Plunkett 0:c5b042cf8162 14 #include "mbed.h"
BKasza 3:8135a6313648 15 #include "config.h"
Jenny Plunkett 0:c5b042cf8162 16 #include "C12832.h"
Jenny Plunkett 0:c5b042cf8162 17 #include "OdinWiFiInterface.h"
Jenny Plunkett 0:c5b042cf8162 18 #include "http_request.h"
Jenny Plunkett 0:c5b042cf8162 19
BKasza 3:8135a6313648 20 C12832 lcd(PE_14, PE_12, PD_12, PD_11, PE_9);
BKasza 3:8135a6313648 21 OdinWiFiInterface wifiIF;
BKasza 3:8135a6313648 22 InterruptIn post_button(PF_2);
BKasza 3:8135a6313648 23 InterruptIn get_put_button(PG_4);
BKasza 3:8135a6313648 24 volatile bool post_clicked = false;
BKasza 3:8135a6313648 25 volatile bool get_clicked = false;
BKasza 3:8135a6313648 26 volatile bool put_clicked = false;
Jenny Plunkett 0:c5b042cf8162 27
BKasza 3:8135a6313648 28 void lcd_print(const char* message) {
BKasza 3:8135a6313648 29 lcd.cls();
BKasza 3:8135a6313648 30 lcd.locate(0, 3);
BKasza 3:8135a6313648 31 lcd.printf(message);
BKasza 3:8135a6313648 32 }
Jenny Plunkett 0:c5b042cf8162 33
BKasza 3:8135a6313648 34 void send_post() {
BKasza 3:8135a6313648 35 post_clicked = true;
BKasza 3:8135a6313648 36 }
BKasza 3:8135a6313648 37
BKasza 3:8135a6313648 38 void send_get_put() {
BKasza 3:8135a6313648 39 get_clicked = true;
BKasza 3:8135a6313648 40 }
Jenny Plunkett 0:c5b042cf8162 41
Jenny Plunkett 0:c5b042cf8162 42 int main() {
Jenny Plunkett 0:c5b042cf8162 43
BKasza 3:8135a6313648 44 int ret;
BKasza 3:8135a6313648 45 SocketAddress serverAddr;
BKasza 3:8135a6313648 46
BKasza 3:8135a6313648 47 lcd_print("Connecting...");
BKasza 3:8135a6313648 48 ret = wifiIF.connect(MBED_CONF_APP_WIFI_SSID, MBED_CONF_APP_WIFI_PASSWORD, NSAPI_SECURITY_WPA_WPA2);
BKasza 3:8135a6313648 49 if (ret != 0) {
BKasza 3:8135a6313648 50 lcd_print("Connection error.");
BKasza 3:8135a6313648 51 return -1;
BKasza 3:8135a6313648 52 }
BKasza 3:8135a6313648 53 lcd_print("Successfully connected!");
BKasza 3:8135a6313648 54 lcd_print(wifiIF.get_mac_address());
BKasza 3:8135a6313648 55 wifiIF.gethostbyname(SERVERNAME, &serverAddr);
Jenny Plunkett 0:c5b042cf8162 56
BKasza 3:8135a6313648 57 /* Enable interrupts */
BKasza 3:8135a6313648 58 post_button.rise(&send_post);
BKasza 3:8135a6313648 59 get_put_button.rise(&send_get_put);
BKasza 3:8135a6313648 60
BKasza 3:8135a6313648 61 /* Main loop */
BKasza 3:8135a6313648 62 while (1) {
BKasza 3:8135a6313648 63 /* Post data */
BKasza 3:8135a6313648 64 if (post_clicked) {
BKasza 3:8135a6313648 65 lcd_print("post");
BKasza 3:8135a6313648 66 post_clicked = false;
BKasza 3:8135a6313648 67 NetworkInterface* netIF = &wifiIF;
BKasza 3:8135a6313648 68 HttpRequest* request = new HttpRequest(netIF, HTTP_POST, "http://10.25.2.152:8080");
BKasza 3:8135a6313648 69 request->set_header("Content-Type", "application/json");
BKasza 3:8135a6313648 70 const char body[] = "HelloWorld";
BKasza 3:8135a6313648 71 HttpResponse* response = request->send(body, strlen(body));
BKasza 3:8135a6313648 72 lcd_print(response->get_body_as_string().c_str());
BKasza 3:8135a6313648 73 delete request;
BKasza 3:8135a6313648 74 }
BKasza 3:8135a6313648 75
BKasza 3:8135a6313648 76 /* Get data */
BKasza 3:8135a6313648 77 if (get_clicked) {
BKasza 3:8135a6313648 78 get_clicked = false;
BKasza 3:8135a6313648 79 put_clicked = true;
BKasza 3:8135a6313648 80 NetworkInterface* netIF = &wifiIF;
BKasza 3:8135a6313648 81 HttpRequest* request = new HttpRequest(netIF, HTTP_GET, "http://10.25.2.152:8080");
BKasza 3:8135a6313648 82 request->set_header("Content-Type", "application/json");
BKasza 3:8135a6313648 83 const char body[] = "{\"get\":\"request\"}";
BKasza 3:8135a6313648 84 HttpResponse* response = request->send(body, strlen(body));
BKasza 3:8135a6313648 85 lcd_print(response->get_body_as_string().c_str());
BKasza 3:8135a6313648 86 delete request;
BKasza 3:8135a6313648 87 }
BKasza 3:8135a6313648 88
BKasza 3:8135a6313648 89 wait_ms(2000);
BKasza 3:8135a6313648 90
BKasza 3:8135a6313648 91 /* Put */
BKasza 3:8135a6313648 92 if (put_clicked) {
BKasza 3:8135a6313648 93 put_clicked = false;
BKasza 3:8135a6313648 94 lcd_print("put");
BKasza 3:8135a6313648 95 NetworkInterface* net = &wifiIF;
BKasza 3:8135a6313648 96 HttpRequest* request = new HttpRequest(net, HTTP_PUT, "http://10.25.2.152:8080");
BKasza 3:8135a6313648 97 request->set_header("Content-Type", "application/json");
BKasza 3:8135a6313648 98 const char body[] = "{\"put\":\"request\"}";
BKasza 3:8135a6313648 99 HttpResponse* response = request->send(body, strlen(body));
BKasza 3:8135a6313648 100 lcd_print(response->get_body_as_string().c_str());
BKasza 3:8135a6313648 101 delete request;
BKasza 3:8135a6313648 102 }
BKasza 3:8135a6313648 103
BKasza 3:8135a6313648 104 }
Jenny Plunkett 0:c5b042cf8162 105
Jenny Plunkett 0:c5b042cf8162 106 }