KDDI Fx0 hackathon
/
MurataTypeYD_Websocket_Sample_full
Websocket_Sample for MurataTypeYD
main.cpp@1:b5ac0f971f43, 2015-03-12 (annotated)
- Committer:
- komoritan
- Date:
- Thu Mar 12 12:15:46 2015 +0000
- Revision:
- 1:b5ac0f971f43
- Parent:
- 0:14bd24b5a77f
Fixed
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
komoritan | 0:14bd24b5a77f | 1 | #include "mbed.h" |
komoritan | 0:14bd24b5a77f | 2 | |
komoritan | 0:14bd24b5a77f | 3 | #include "SNIC_WifiInterface.h" |
komoritan | 0:14bd24b5a77f | 4 | // KTEC DEL S |
komoritan | 0:14bd24b5a77f | 5 | //#include "HTTPClient.h" |
komoritan | 0:14bd24b5a77f | 6 | // KTEC DEL E |
komoritan | 0:14bd24b5a77f | 7 | #if defined(TARGET_LPC1768) |
komoritan | 0:14bd24b5a77f | 8 | #include "PowerControl/EthernetPowerControl.h" |
komoritan | 0:14bd24b5a77f | 9 | #endif |
komoritan | 0:14bd24b5a77f | 10 | // KTEC ADD S |
komoritan | 0:14bd24b5a77f | 11 | #include "Websocket.h" |
komoritan | 0:14bd24b5a77f | 12 | #include "Websocket_Function.h" |
komoritan | 0:14bd24b5a77f | 13 | // KTEC ADD E |
komoritan | 0:14bd24b5a77f | 14 | |
komoritan | 0:14bd24b5a77f | 15 | #define DEMO_AP_SSID "SSID" |
komoritan | 0:14bd24b5a77f | 16 | #define DEMO_AP_SECURITY_TYPE e_SEC_WPA2_AES |
komoritan | 0:14bd24b5a77f | 17 | #define DEMO_AP_SECUTIRY_KEY "PASSWORD" |
komoritan | 0:14bd24b5a77f | 18 | |
komoritan | 0:14bd24b5a77f | 19 | C_SNIC_WifiInterface wifi( p9, p10, NC, NC, p30 ); |
komoritan | 0:14bd24b5a77f | 20 | |
komoritan | 0:14bd24b5a77f | 21 | #if defined(_DEBUG) |
komoritan | 0:14bd24b5a77f | 22 | Serial pc(USBTX, USBRX); |
komoritan | 0:14bd24b5a77f | 23 | #endif |
komoritan | 0:14bd24b5a77f | 24 | |
komoritan | 0:14bd24b5a77f | 25 | // KTEC DEL S |
komoritan | 0:14bd24b5a77f | 26 | /* |
komoritan | 0:14bd24b5a77f | 27 | HTTPClient http; |
komoritan | 0:14bd24b5a77f | 28 | char str[512]; |
komoritan | 0:14bd24b5a77f | 29 | */ |
komoritan | 0:14bd24b5a77f | 30 | // KTEC DEL E |
komoritan | 0:14bd24b5a77f | 31 | |
komoritan | 0:14bd24b5a77f | 32 | // KTEC ADD S |
komoritan | 0:14bd24b5a77f | 33 | // Websocketサーバ設定 |
komoritan | 0:14bd24b5a77f | 34 | // 送信チャネルと受信チャネルは違うチャンネル名、かつ、ユニークな値を設定してください。 |
komoritan | 0:14bd24b5a77f | 35 | // 送信チャネル名 |
komoritan | 0:14bd24b5a77f | 36 | #define WRITE_CHANNEL "" |
komoritan | 0:14bd24b5a77f | 37 | // 受信チャネル名 |
komoritan | 0:14bd24b5a77f | 38 | #define READ_CHANNEL "" |
komoritan | 0:14bd24b5a77f | 39 | |
komoritan | 0:14bd24b5a77f | 40 | Websocket *ws_write = NULL; |
komoritan | 0:14bd24b5a77f | 41 | Websocket *ws_read = NULL; |
komoritan | 0:14bd24b5a77f | 42 | |
komoritan | 0:14bd24b5a77f | 43 | Mutex socket_mutex; |
komoritan | 0:14bd24b5a77f | 44 | // KTEC ADD E |
komoritan | 0:14bd24b5a77f | 45 | |
komoritan | 0:14bd24b5a77f | 46 | // KTEC ADD S |
komoritan | 0:14bd24b5a77f | 47 | // Wifiモジュールに接続 |
komoritan | 0:14bd24b5a77f | 48 | int wifi_connect() |
komoritan | 0:14bd24b5a77f | 49 | { |
komoritan | 0:14bd24b5a77f | 50 | int ret = 0; |
komoritan | 0:14bd24b5a77f | 51 | |
komoritan | 0:14bd24b5a77f | 52 | // Initialize Wi-Fi interface |
komoritan | 0:14bd24b5a77f | 53 | ret = wifi.init(); |
komoritan | 0:14bd24b5a77f | 54 | if(ret != 0){ |
komoritan | 0:14bd24b5a77f | 55 | printf("Wi-Fi initial failed %d\r\n", ret); |
komoritan | 0:14bd24b5a77f | 56 | return ret; |
komoritan | 0:14bd24b5a77f | 57 | } |
komoritan | 0:14bd24b5a77f | 58 | wait(0.5); |
komoritan | 0:14bd24b5a77f | 59 | |
komoritan | 0:14bd24b5a77f | 60 | ret = wifi.disconnect(); |
komoritan | 0:14bd24b5a77f | 61 | if(ret != 0 ) |
komoritan | 0:14bd24b5a77f | 62 | { |
komoritan | 0:14bd24b5a77f | 63 | printf("on the disconnect state %d\r\n", ret); |
komoritan | 0:14bd24b5a77f | 64 | return ret; |
komoritan | 0:14bd24b5a77f | 65 | } |
komoritan | 0:14bd24b5a77f | 66 | wait(0.3); |
komoritan | 0:14bd24b5a77f | 67 | |
komoritan | 0:14bd24b5a77f | 68 | // Connect to AP |
komoritan | 0:14bd24b5a77f | 69 | ret = wifi.connect( DEMO_AP_SSID,strlen(DEMO_AP_SSID), |
komoritan | 0:14bd24b5a77f | 70 | DEMO_AP_SECURITY_TYPE, |
komoritan | 0:14bd24b5a77f | 71 | DEMO_AP_SECUTIRY_KEY, |
komoritan | 0:14bd24b5a77f | 72 | strlen(DEMO_AP_SECUTIRY_KEY)); |
komoritan | 0:14bd24b5a77f | 73 | if(ret !=0) |
komoritan | 0:14bd24b5a77f | 74 | { |
komoritan | 0:14bd24b5a77f | 75 | printf("Connect AP is failed %d\r\n", ret); |
komoritan | 0:14bd24b5a77f | 76 | return ret; |
komoritan | 0:14bd24b5a77f | 77 | } |
komoritan | 0:14bd24b5a77f | 78 | wait(0.5); |
komoritan | 0:14bd24b5a77f | 79 | |
komoritan | 0:14bd24b5a77f | 80 | // DHCPでIPアドレスを取得 |
komoritan | 0:14bd24b5a77f | 81 | int retIp = wifi.setIPConfig(true); |
komoritan | 0:14bd24b5a77f | 82 | wait(0.5); |
komoritan | 0:14bd24b5a77f | 83 | printf("IP Address is %s\r\n", wifi.getIPAddress()); |
komoritan | 0:14bd24b5a77f | 84 | |
komoritan | 0:14bd24b5a77f | 85 | return ret; |
komoritan | 0:14bd24b5a77f | 86 | } |
komoritan | 0:14bd24b5a77f | 87 | |
komoritan | 0:14bd24b5a77f | 88 | // Websocketサーバ(mbed2fx)へのデータ送信処理 |
komoritan | 0:14bd24b5a77f | 89 | void websocket_send(char* writeBuf) |
komoritan | 0:14bd24b5a77f | 90 | { |
komoritan | 0:14bd24b5a77f | 91 | int ret = 0; |
komoritan | 0:14bd24b5a77f | 92 | |
komoritan | 0:14bd24b5a77f | 93 | // Websocketサーバへデータを送信 |
komoritan | 0:14bd24b5a77f | 94 | socket_mutex.lock(); |
komoritan | 0:14bd24b5a77f | 95 | ret = ws_write->send(writeBuf); |
komoritan | 0:14bd24b5a77f | 96 | socket_mutex.unlock(); |
komoritan | 0:14bd24b5a77f | 97 | |
komoritan | 0:14bd24b5a77f | 98 | // send処理が失敗した場合 |
komoritan | 0:14bd24b5a77f | 99 | if (ret < 0) { |
komoritan | 0:14bd24b5a77f | 100 | printf("main() Websocket send error ret = %d\r\n", ret); |
komoritan | 0:14bd24b5a77f | 101 | mbed_die(); |
komoritan | 0:14bd24b5a77f | 102 | } |
komoritan | 0:14bd24b5a77f | 103 | } |
komoritan | 0:14bd24b5a77f | 104 | |
komoritan | 0:14bd24b5a77f | 105 | // FX0からの受信メッセージ監視スレッド |
komoritan | 0:14bd24b5a77f | 106 | // サンプルとしてFX0から受信メッセージの取得、LED点灯、消灯処理を行うスレッドを追加しています |
komoritan | 0:14bd24b5a77f | 107 | void recv_thread(void const *argument) { |
komoritan | 0:14bd24b5a77f | 108 | int ret = 0; |
komoritan | 0:14bd24b5a77f | 109 | int loopCnt = 1; |
komoritan | 0:14bd24b5a77f | 110 | char *json = ""; |
komoritan | 0:14bd24b5a77f | 111 | char readBuf[100] = ""; |
komoritan | 0:14bd24b5a77f | 112 | char writeBuf[100] = ""; |
komoritan | 0:14bd24b5a77f | 113 | |
komoritan | 0:14bd24b5a77f | 114 | while (true) { |
komoritan | 0:14bd24b5a77f | 115 | // Websocketサーバから受信メッセージを読み込み |
komoritan | 0:14bd24b5a77f | 116 | socket_mutex.lock(); |
komoritan | 0:14bd24b5a77f | 117 | ret = ws_read->read(readBuf); |
komoritan | 0:14bd24b5a77f | 118 | socket_mutex.unlock(); |
komoritan | 0:14bd24b5a77f | 119 | |
komoritan | 0:14bd24b5a77f | 120 | // 受信メッセージが存在する場合 |
komoritan | 0:14bd24b5a77f | 121 | if (ret){ |
komoritan | 0:14bd24b5a77f | 122 | // 受信メッセージ(JSON形式)を解析 |
komoritan | 0:14bd24b5a77f | 123 | json = &(readBuf[0]); |
komoritan | 0:14bd24b5a77f | 124 | picojson::value v; |
komoritan | 0:14bd24b5a77f | 125 | string err = picojson::parse(v, json, json + strlen(json)); |
komoritan | 0:14bd24b5a77f | 126 | if (! err.empty()) { |
komoritan | 0:14bd24b5a77f | 127 | printf(" parse error %s\r\n", err.c_str()); |
komoritan | 0:14bd24b5a77f | 128 | continue; |
komoritan | 0:14bd24b5a77f | 129 | } |
komoritan | 0:14bd24b5a77f | 130 | |
komoritan | 0:14bd24b5a77f | 131 | // LED点灯、消灯処理を実行 |
komoritan | 0:14bd24b5a77f | 132 | if (strcmp(v.get("method").get<string>().c_str(), "setLed") == 0) { |
komoritan | 0:14bd24b5a77f | 133 | doSetLed(writeBuf, v.get("led1").get<string>().c_str(), v.get("led2").get<string>().c_str(), v.get("led3").get<string>().c_str(), v.get("led4").get<string>().c_str()); |
komoritan | 0:14bd24b5a77f | 134 | // Websocketサーバへ処理結果を送信 |
komoritan | 0:14bd24b5a77f | 135 | websocket_send(writeBuf); |
komoritan | 0:14bd24b5a77f | 136 | } else { |
komoritan | 0:14bd24b5a77f | 137 | printf("Not Found Parameter\r\n"); |
komoritan | 0:14bd24b5a77f | 138 | } |
komoritan | 0:14bd24b5a77f | 139 | } |
komoritan | 0:14bd24b5a77f | 140 | loopCnt++; |
komoritan | 0:14bd24b5a77f | 141 | |
komoritan | 0:14bd24b5a77f | 142 | // 500ms間隔でループ |
komoritan | 0:14bd24b5a77f | 143 | Thread::wait(500); |
komoritan | 0:14bd24b5a77f | 144 | |
komoritan | 0:14bd24b5a77f | 145 | // チャネルを閉じないようにするため、定期的にチャネルにデータを送信する |
komoritan | 0:14bd24b5a77f | 146 | if(loopCnt >= 50){ |
komoritan | 0:14bd24b5a77f | 147 | loopCnt = 0; |
komoritan | 0:14bd24b5a77f | 148 | socket_mutex.lock(); |
komoritan | 0:14bd24b5a77f | 149 | ret = ws_read->send("Keep Websocket Channel"); |
komoritan | 0:14bd24b5a77f | 150 | socket_mutex.unlock(); |
komoritan | 0:14bd24b5a77f | 151 | } |
komoritan | 0:14bd24b5a77f | 152 | } |
komoritan | 0:14bd24b5a77f | 153 | } |
komoritan | 0:14bd24b5a77f | 154 | |
komoritan | 0:14bd24b5a77f | 155 | // KTEC ADD E |
komoritan | 0:14bd24b5a77f | 156 | |
komoritan | 0:14bd24b5a77f | 157 | int main() |
komoritan | 0:14bd24b5a77f | 158 | { |
komoritan | 0:14bd24b5a77f | 159 | // KTEC ADD S |
komoritan | 0:14bd24b5a77f | 160 | int i=1; |
komoritan | 0:14bd24b5a77f | 161 | char wsWriteName[256] = ""; |
komoritan | 0:14bd24b5a77f | 162 | char wsReadName[256] = ""; |
komoritan | 0:14bd24b5a77f | 163 | char writeBuf[100] = ""; |
komoritan | 0:14bd24b5a77f | 164 | // KTEC ADD E |
komoritan | 0:14bd24b5a77f | 165 | |
komoritan | 0:14bd24b5a77f | 166 | #if defined(TARGET_LPC1768) |
komoritan | 0:14bd24b5a77f | 167 | PHY_PowerDown(); |
komoritan | 0:14bd24b5a77f | 168 | #endif |
komoritan | 0:14bd24b5a77f | 169 | |
komoritan | 0:14bd24b5a77f | 170 | // WRITE_CHANNEL or READ_CHANNELが空の場合はエラー終了 |
komoritan | 0:14bd24b5a77f | 171 | if ( "" == WRITE_CHANNEL || "" == READ_CHANNEL ){ |
komoritan | 0:14bd24b5a77f | 172 | printf("error WRITE_CHANNEL or READ_CHANNEL NULL \r\n"); |
komoritan | 0:14bd24b5a77f | 173 | mbed_die(); |
komoritan | 0:14bd24b5a77f | 174 | } |
komoritan | 0:14bd24b5a77f | 175 | |
komoritan | 0:14bd24b5a77f | 176 | // KTEC ADD S |
komoritan | 0:14bd24b5a77f | 177 | while (1) { |
komoritan | 0:14bd24b5a77f | 178 | printf("--- wifi_connect start(%d). ---\r\n", i); |
komoritan | 0:14bd24b5a77f | 179 | if( wifi_connect() == 0) |
komoritan | 0:14bd24b5a77f | 180 | { |
komoritan | 0:14bd24b5a77f | 181 | break; |
komoritan | 0:14bd24b5a77f | 182 | } |
komoritan | 0:14bd24b5a77f | 183 | |
komoritan | 0:14bd24b5a77f | 184 | i++; |
komoritan | 0:14bd24b5a77f | 185 | if( i > 10 ) { |
komoritan | 0:14bd24b5a77f | 186 | mbed_die(); |
komoritan | 0:14bd24b5a77f | 187 | } |
komoritan | 0:14bd24b5a77f | 188 | wait( i / 2 ); |
komoritan | 0:14bd24b5a77f | 189 | } |
komoritan | 0:14bd24b5a77f | 190 | |
komoritan | 0:14bd24b5a77f | 191 | printf("wifi_connect end.\r\n"); |
komoritan | 0:14bd24b5a77f | 192 | |
komoritan | 0:14bd24b5a77f | 193 | // Websocket生成 |
komoritan | 0:14bd24b5a77f | 194 | sprintf(wsWriteName, "ws://sockets.mbed.org/ws/%s/wo", WRITE_CHANNEL); |
komoritan | 0:14bd24b5a77f | 195 | sprintf(wsReadName, "ws://sockets.mbed.org/ws/%s/ro", READ_CHANNEL); |
komoritan | 0:14bd24b5a77f | 196 | ws_write = new Websocket(wsWriteName); |
komoritan | 0:14bd24b5a77f | 197 | ws_read = new Websocket(wsReadName); |
komoritan | 0:14bd24b5a77f | 198 | |
komoritan | 0:14bd24b5a77f | 199 | // Websocketに接続 |
komoritan | 0:14bd24b5a77f | 200 | ws_write->connect(); |
komoritan | 0:14bd24b5a77f | 201 | ws_read->connect(); |
komoritan | 0:14bd24b5a77f | 202 | |
komoritan | 0:14bd24b5a77f | 203 | // 受信メッセージを監視 |
komoritan | 0:14bd24b5a77f | 204 | Thread thread(recv_thread); |
komoritan | 0:14bd24b5a77f | 205 | |
komoritan | 0:14bd24b5a77f | 206 | while (1) { |
komoritan | 0:14bd24b5a77f | 207 | wait(0.5); |
komoritan | 0:14bd24b5a77f | 208 | // ジャイロデータを取得 |
komoritan | 0:14bd24b5a77f | 209 | doGetGyro(writeBuf); |
komoritan | 0:14bd24b5a77f | 210 | // ジャイロデータを送信 |
komoritan | 0:14bd24b5a77f | 211 | websocket_send(writeBuf); |
komoritan | 0:14bd24b5a77f | 212 | } |
komoritan | 0:14bd24b5a77f | 213 | // KTEC ADD E |
komoritan | 0:14bd24b5a77f | 214 | |
komoritan | 0:14bd24b5a77f | 215 | // KTEC DEL S |
komoritan | 0:14bd24b5a77f | 216 | /* |
komoritan | 0:14bd24b5a77f | 217 | wifi.init(); //Use DHCP |
komoritan | 0:14bd24b5a77f | 218 | |
komoritan | 0:14bd24b5a77f | 219 | wait(0.5); |
komoritan | 0:14bd24b5a77f | 220 | int s = wifi.disconnect(); |
komoritan | 0:14bd24b5a77f | 221 | if( s != 0 ) { |
komoritan | 0:14bd24b5a77f | 222 | return -1; |
komoritan | 0:14bd24b5a77f | 223 | } |
komoritan | 0:14bd24b5a77f | 224 | |
komoritan | 0:14bd24b5a77f | 225 | wait(0.3); |
komoritan | 0:14bd24b5a77f | 226 | // Connect AP |
komoritan | 0:14bd24b5a77f | 227 | wifi.connect( DEMO_AP_SSID |
komoritan | 0:14bd24b5a77f | 228 | , strlen(DEMO_AP_SSID) |
komoritan | 0:14bd24b5a77f | 229 | , DEMO_AP_SECURITY_TYPE |
komoritan | 0:14bd24b5a77f | 230 | , DEMO_AP_SECUTIRY_KEY |
komoritan | 0:14bd24b5a77f | 231 | , strlen(DEMO_AP_SECUTIRY_KEY) ); |
komoritan | 0:14bd24b5a77f | 232 | wait(0.5); |
komoritan | 0:14bd24b5a77f | 233 | wifi.setIPConfig( true ); |
komoritan | 0:14bd24b5a77f | 234 | wait(0.5); |
komoritan | 0:14bd24b5a77f | 235 | printf("IP Address is %s\n", wifi.getIPAddress()); |
komoritan | 0:14bd24b5a77f | 236 | |
komoritan | 0:14bd24b5a77f | 237 | //GET data |
komoritan | 0:14bd24b5a77f | 238 | printf("\nTrying to fetch page...\n"); |
komoritan | 0:14bd24b5a77f | 239 | int ret = http.get("http://developer.mbed.org/media/uploads/donatien/hello.txt", str, 128); |
komoritan | 0:14bd24b5a77f | 240 | if (!ret) |
komoritan | 0:14bd24b5a77f | 241 | { |
komoritan | 0:14bd24b5a77f | 242 | printf("Page fetched successfully - read %d characters\n", strlen(str)); |
komoritan | 0:14bd24b5a77f | 243 | printf("Result: %s\n", str); |
komoritan | 0:14bd24b5a77f | 244 | } |
komoritan | 0:14bd24b5a77f | 245 | else |
komoritan | 0:14bd24b5a77f | 246 | { |
komoritan | 0:14bd24b5a77f | 247 | printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode()); |
komoritan | 0:14bd24b5a77f | 248 | } |
komoritan | 0:14bd24b5a77f | 249 | |
komoritan | 0:14bd24b5a77f | 250 | //POST data |
komoritan | 0:14bd24b5a77f | 251 | HTTPMap map; |
komoritan | 0:14bd24b5a77f | 252 | HTTPText inText(str, 512); |
komoritan | 0:14bd24b5a77f | 253 | map.put("Hello", "World"); |
komoritan | 0:14bd24b5a77f | 254 | map.put("test", "1234"); |
komoritan | 0:14bd24b5a77f | 255 | printf("\nTrying to post data...\n"); |
komoritan | 0:14bd24b5a77f | 256 | ret = http.post("http://httpbin.org/post", map, &inText); |
komoritan | 0:14bd24b5a77f | 257 | if (!ret) |
komoritan | 0:14bd24b5a77f | 258 | { |
komoritan | 0:14bd24b5a77f | 259 | printf("Executed POST successfully - read %d characters\n", strlen(str)); |
komoritan | 0:14bd24b5a77f | 260 | printf("Result: %s\n", str); |
komoritan | 0:14bd24b5a77f | 261 | } |
komoritan | 0:14bd24b5a77f | 262 | else |
komoritan | 0:14bd24b5a77f | 263 | { |
komoritan | 0:14bd24b5a77f | 264 | printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode()); |
komoritan | 0:14bd24b5a77f | 265 | } |
komoritan | 0:14bd24b5a77f | 266 | |
komoritan | 0:14bd24b5a77f | 267 | //PUT data |
komoritan | 0:14bd24b5a77f | 268 | strcpy(str, "This is a PUT test!"); |
komoritan | 0:14bd24b5a77f | 269 | HTTPText outText(str); |
komoritan | 0:14bd24b5a77f | 270 | //HTTPText inText(str, 512); |
komoritan | 0:14bd24b5a77f | 271 | printf("\nTrying to put resource...\n"); |
komoritan | 0:14bd24b5a77f | 272 | ret = http.put("http://httpbin.org/put", outText, &inText); |
komoritan | 0:14bd24b5a77f | 273 | if (!ret) |
komoritan | 0:14bd24b5a77f | 274 | { |
komoritan | 0:14bd24b5a77f | 275 | printf("Executed PUT successfully - read %d characters\n", strlen(str)); |
komoritan | 0:14bd24b5a77f | 276 | printf("Result: %s\n", str); |
komoritan | 0:14bd24b5a77f | 277 | } |
komoritan | 0:14bd24b5a77f | 278 | else |
komoritan | 0:14bd24b5a77f | 279 | { |
komoritan | 0:14bd24b5a77f | 280 | printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode()); |
komoritan | 0:14bd24b5a77f | 281 | } |
komoritan | 0:14bd24b5a77f | 282 | |
komoritan | 0:14bd24b5a77f | 283 | //DELETE data |
komoritan | 0:14bd24b5a77f | 284 | //HTTPText inText(str, 512); |
komoritan | 0:14bd24b5a77f | 285 | printf("\nTrying to delete resource...\n"); |
komoritan | 0:14bd24b5a77f | 286 | ret = http.del("http://httpbin.org/delete", &inText); |
komoritan | 0:14bd24b5a77f | 287 | if (!ret) |
komoritan | 0:14bd24b5a77f | 288 | { |
komoritan | 0:14bd24b5a77f | 289 | printf("Executed DELETE successfully - read %d characters\n", strlen(str)); |
komoritan | 0:14bd24b5a77f | 290 | printf("Result: %s\n", str); |
komoritan | 0:14bd24b5a77f | 291 | } |
komoritan | 0:14bd24b5a77f | 292 | else |
komoritan | 0:14bd24b5a77f | 293 | { |
komoritan | 0:14bd24b5a77f | 294 | printf("Error - ret = %d - HTTP return code = %d\n", ret, http.getHTTPResponseCode()); |
komoritan | 0:14bd24b5a77f | 295 | } |
komoritan | 0:14bd24b5a77f | 296 | |
komoritan | 0:14bd24b5a77f | 297 | wifi.disconnect(); |
komoritan | 0:14bd24b5a77f | 298 | |
komoritan | 0:14bd24b5a77f | 299 | while(1) { |
komoritan | 0:14bd24b5a77f | 300 | } |
komoritan | 0:14bd24b5a77f | 301 | */ |
komoritan | 0:14bd24b5a77f | 302 | // KTEC DEL E |
komoritan | 0:14bd24b5a77f | 303 | } |