Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Wio_3G_example by
Diff: main.cpp
- Revision:
- 76:fe9dd61c5f5c
- Parent:
- 75:f93c0063755c
- Child:
- 77:0194cca4103b
diff -r f93c0063755c -r fe9dd61c5f5c main.cpp
--- a/main.cpp Fri Aug 10 09:07:14 2018 +0000
+++ b/main.cpp Wed Aug 22 05:27:25 2018 +0000
@@ -5,6 +5,11 @@
#include "PixelArray.h"
#include "Servo.h"
+#include <sstream>
+#include "easy-connect.h"
+#include "https_request.h"
+#include "ssl_ca_pem.h"
+
#if !defined(TARGET_WIO_3G)
#error Selected target is not supported.
#endif
@@ -45,6 +50,36 @@
}
+const char API_TOKEN[] = "tfa6Ud9FY760SfLLhHl3UBr0NFdVHEFLHvdjTsrW";
+const char URL[] = "https://devzfyjsa.cybozu.com/k/v1/record.json";
+
+int app_id = 1;
+
+// JSON simplicity parser
+char* j_paser( const char *buf , char *word , char *out )
+{
+ int i = 0;
+ char *p;
+ char _word[64] = "\"\0";
+
+ strcat(_word , word );
+ strcat(_word , "\"" );
+
+ p = strstr( (char*)buf , _word ) + 2 + strlen(_word);
+
+ while( (p[i] != ',')&&(p[i] != '\n')&&(p[i] != '"') )
+ {
+ out[i] = p[i];
+ i++;
+ }
+ out[i] = '\0';
+
+ return p;
+}
+
+
+
+
int main()
{
char buf[20];
@@ -59,7 +94,7 @@
// set up the colours we want to draw with
const int colorbuf[NUM_COLORS] = {0x000000, 0x2f0000,0x2f2f00,0x002f00,0x002f2f,0x00002f,0x2f002f, 0x2f2f2f};
- ws.useII(WS2812::PER_PIXEL); // use per-pixel intensity scaling
+ ::ws.useII(WS2812::PER_PIXEL); // use per-pixel intensity scaling
// for each of the colours (j) write out 10 of them
// the pixels are written at the colour*10, plus the colour position
@@ -71,6 +106,7 @@
pc.printf("hello, Mbed world\n");
+ /*
int cnt = 0;
int idx = 0;
@@ -92,4 +128,118 @@
wait(0.5);
}
+ */
+ NetworkInterface* network = NULL;
+
+ /*
+ pc.baud(115200);
+
+ lcd.cls();
+ lcd.locate(0,3);
+ lcd.printf("Network Connect..");
+ */
+
+ pc.printf("\r\n----- Start -----\r\n");
+
+ network = easy_connect(true); // If true, prints out connection details.
+ if (!network) {
+ //lcd.printf("NG");
+ pc.printf("\r\n----- Network Error -----\r\n");
+ return -1;
+ }
+
+ //lcd.printf("OK");
+ pc.printf("\r\n----- Network Connected -----\r\n");
+
+ wait(2.0);
+
+ while(1){
+ int id = 10;
+
+ /*
+ // ID select
+ lcd.cls();
+ lcd.locate(0,3);
+ lcd.printf("Please select id.");
+ while(fire == 0){
+ lcd.locate(0,14);
+ lcd.printf("id = ");
+ if( up == 1) id++;
+ if( down == 1) id--;
+ lcd.printf("%d ",id);
+ wait(0.2);
+ }
+
+ lcd.cls();
+ lcd.locate(0,3);
+ lcd.printf("It is polling with the selected id.");
+ */
+
+ // Set url
+ std::stringstream ss_url;
+ std::string s_url(URL);
+
+ ss_url << s_url << "?app=" << app_id << "&id=" << id;
+
+ string url = ss_url.str();
+
+ pc.printf("%s\r\n",url.c_str());
+
+ while(1){
+ pc.printf("\r\n----- HTTPS GET request -----\r\n");
+ HttpsRequest* get_req = new HttpsRequest(network, SSL_CA_PEM, HTTP_GET, url.c_str());
+
+ get_req->set_header("X-Cybozu-API-Token", API_TOKEN);
+
+ HttpResponse* get_res = get_req->send();
+
+ pc.printf("\n----- HTTPS GET response [%d]-----\n",get_res->get_status_code());
+
+ if(get_res->get_status_code() == 200){
+ pc.printf("\n----- HTTPS GET response 200 -----\n");
+ const char* body = get_res->get_body_as_string().c_str();
+
+ pc.printf("%s\r\n",body);
+
+ // Response JSON parse
+ char value[256];
+
+ char* p = j_paser(body,"日付",value);
+ j_paser(p,"value",value);
+ printf("date:%s\r\n",value);
+
+ /*
+ lcd.cls();
+ lcd.locate(0,3);
+ lcd.printf("Date:%s",value);
+ */
+
+ p = j_paser(body,"文字列__1行_",value);
+ j_paser(p,"value",value);
+ printf("%s\r\n",value);
+
+ /*
+ lcd.locate(0,14);
+ lcd.printf("name:%s",value);
+
+ // Sound an alert
+ spkr.period(1.0/5000.0);
+ spkr=0.5;
+ wait(1.0);
+ spkr=0.0;
+ */
+
+ delete get_req;
+
+ break;
+ }
+
+ delete get_req;
+
+ wait(10.0);
+ }
+
+ //while(fire == 0);
+ wait(1.0);
+ }
}
