n/a
Dependencies: C12832 mbed-http
Fork of HTTP-Python-Demo by
main.cpp@3:8135a6313648, 2017-11-26 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |
