test2

Dependencies:   C12832 mbed-http

Fork of Mbed-to-cybozu-kintone_get_sample by Junichi Katsu

Committer:
himatsumoto
Date:
Thu Aug 02 06:59:05 2018 +0000
Revision:
3:90b2b824f3cf
Parent:
2:0167319fff74
test2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JKsoft_main 0:5c7abfb1236c 1 #include "mbed.h"
JKsoft_main 0:5c7abfb1236c 2 #include <sstream>
JKsoft_main 0:5c7abfb1236c 3 #include "easy-connect.h"
JKsoft_main 0:5c7abfb1236c 4 #include "https_request.h"
JKsoft_main 0:5c7abfb1236c 5 #include "ssl_ca_pem.h"
JKsoft_main 0:5c7abfb1236c 6 #include "C12832.h"
JKsoft_main 0:5c7abfb1236c 7
JKsoft_main 0:5c7abfb1236c 8 C12832 lcd(D11, D13, D12, D7, D10);
JKsoft_main 0:5c7abfb1236c 9 DigitalIn up(A2);
JKsoft_main 0:5c7abfb1236c 10 DigitalIn down(A3);
JKsoft_main 0:5c7abfb1236c 11 DigitalIn left(A4);
JKsoft_main 0:5c7abfb1236c 12 DigitalIn right(A5);
JKsoft_main 0:5c7abfb1236c 13 DigitalIn fire(D4);
JKsoft_main 0:5c7abfb1236c 14 PwmOut spkr(D6);
JKsoft_main 0:5c7abfb1236c 15
JKsoft_main 0:5c7abfb1236c 16 Serial pc(USBTX,USBRX);
JKsoft_main 0:5c7abfb1236c 17
himatsumoto 3:90b2b824f3cf 18 const char API_TOKEN[] = "Lyqz2ABnQPaNy6DXGincIfC3ulrnldLJROxnPvUD";
himatsumoto 1:b1a105041b2b 19 const char URL[] = "https://owtd6.cybozu.com/k/v1/record.json";
JKsoft_main 0:5c7abfb1236c 20
himatsumoto 2:0167319fff74 21 int app_id = 120;
JKsoft_main 0:5c7abfb1236c 22
JKsoft_main 0:5c7abfb1236c 23 // JSON simplicity parser
JKsoft_main 0:5c7abfb1236c 24 char* j_paser( const char *buf , char *word , char *out )
JKsoft_main 0:5c7abfb1236c 25 {
JKsoft_main 0:5c7abfb1236c 26 int i = 0;
JKsoft_main 0:5c7abfb1236c 27 char *p;
JKsoft_main 0:5c7abfb1236c 28 char _word[64] = "\"\0";
JKsoft_main 0:5c7abfb1236c 29
JKsoft_main 0:5c7abfb1236c 30 strcat(_word , word );
JKsoft_main 0:5c7abfb1236c 31 strcat(_word , "\"" );
JKsoft_main 0:5c7abfb1236c 32
JKsoft_main 0:5c7abfb1236c 33 p = strstr( (char*)buf , _word ) + 2 + strlen(_word);
JKsoft_main 0:5c7abfb1236c 34
JKsoft_main 0:5c7abfb1236c 35 while( (p[i] != ',')&&(p[i] != '\n')&&(p[i] != '"') )
JKsoft_main 0:5c7abfb1236c 36 {
JKsoft_main 0:5c7abfb1236c 37 out[i] = p[i];
JKsoft_main 0:5c7abfb1236c 38 i++;
JKsoft_main 0:5c7abfb1236c 39 }
JKsoft_main 0:5c7abfb1236c 40 out[i] = '\0';
JKsoft_main 0:5c7abfb1236c 41
JKsoft_main 0:5c7abfb1236c 42 return p;
JKsoft_main 0:5c7abfb1236c 43 }
JKsoft_main 0:5c7abfb1236c 44
JKsoft_main 0:5c7abfb1236c 45 // main() runs in its own thread in the OS
JKsoft_main 0:5c7abfb1236c 46 int main() {
JKsoft_main 0:5c7abfb1236c 47 NetworkInterface* network = NULL;
JKsoft_main 0:5c7abfb1236c 48
JKsoft_main 0:5c7abfb1236c 49 pc.baud(115200);
JKsoft_main 0:5c7abfb1236c 50
JKsoft_main 0:5c7abfb1236c 51 lcd.cls();
JKsoft_main 0:5c7abfb1236c 52 lcd.locate(0,3);
JKsoft_main 0:5c7abfb1236c 53 lcd.printf("Network Connect..");
JKsoft_main 0:5c7abfb1236c 54
JKsoft_main 0:5c7abfb1236c 55 pc.printf("\r\n----- Start -----\r\n");
JKsoft_main 0:5c7abfb1236c 56
JKsoft_main 0:5c7abfb1236c 57 network = easy_connect(true); // If true, prints out connection details.
JKsoft_main 0:5c7abfb1236c 58 if (!network) {
JKsoft_main 0:5c7abfb1236c 59 lcd.printf("NG");
JKsoft_main 0:5c7abfb1236c 60 pc.printf("\r\n----- Network Error -----\r\n");
JKsoft_main 0:5c7abfb1236c 61 return -1;
JKsoft_main 0:5c7abfb1236c 62 }
JKsoft_main 0:5c7abfb1236c 63
JKsoft_main 0:5c7abfb1236c 64 lcd.printf("OK");
JKsoft_main 0:5c7abfb1236c 65 pc.printf("\r\n----- Network Connected -----\r\n");
JKsoft_main 0:5c7abfb1236c 66
JKsoft_main 0:5c7abfb1236c 67 wait(2.0);
JKsoft_main 0:5c7abfb1236c 68
JKsoft_main 0:5c7abfb1236c 69 while(1){
JKsoft_main 0:5c7abfb1236c 70 int id = 1;
JKsoft_main 0:5c7abfb1236c 71
JKsoft_main 0:5c7abfb1236c 72 // ID select
JKsoft_main 0:5c7abfb1236c 73 lcd.cls();
JKsoft_main 0:5c7abfb1236c 74 lcd.locate(0,3);
JKsoft_main 0:5c7abfb1236c 75 lcd.printf("Please select id.");
JKsoft_main 0:5c7abfb1236c 76 while(fire == 0){
JKsoft_main 0:5c7abfb1236c 77 lcd.locate(0,14);
JKsoft_main 0:5c7abfb1236c 78 lcd.printf("id = ");
JKsoft_main 0:5c7abfb1236c 79 if( up == 1) id++;
JKsoft_main 0:5c7abfb1236c 80 if( down == 1) id--;
JKsoft_main 0:5c7abfb1236c 81 lcd.printf("%d ",id);
JKsoft_main 0:5c7abfb1236c 82 wait(0.2);
JKsoft_main 0:5c7abfb1236c 83 }
JKsoft_main 0:5c7abfb1236c 84
JKsoft_main 0:5c7abfb1236c 85 lcd.cls();
JKsoft_main 0:5c7abfb1236c 86 lcd.locate(0,3);
JKsoft_main 0:5c7abfb1236c 87 lcd.printf("It is polling with the selected id.");
JKsoft_main 0:5c7abfb1236c 88
JKsoft_main 0:5c7abfb1236c 89 // Set url
JKsoft_main 0:5c7abfb1236c 90 std::stringstream ss_url;
JKsoft_main 0:5c7abfb1236c 91 std::string s_url(URL);
JKsoft_main 0:5c7abfb1236c 92
JKsoft_main 0:5c7abfb1236c 93 ss_url << s_url << "?app=" << app_id << "&id=" << id;
JKsoft_main 0:5c7abfb1236c 94
JKsoft_main 0:5c7abfb1236c 95 string url = ss_url.str();
JKsoft_main 0:5c7abfb1236c 96
JKsoft_main 0:5c7abfb1236c 97 pc.printf("%s\r\n",url.c_str());
JKsoft_main 0:5c7abfb1236c 98
JKsoft_main 0:5c7abfb1236c 99 while(1){
JKsoft_main 0:5c7abfb1236c 100 pc.printf("\r\n----- HTTPS GET request -----\r\n");
JKsoft_main 0:5c7abfb1236c 101 HttpsRequest* get_req = new HttpsRequest(network, SSL_CA_PEM, HTTP_GET, url.c_str());
JKsoft_main 0:5c7abfb1236c 102
JKsoft_main 0:5c7abfb1236c 103 get_req->set_header("X-Cybozu-API-Token", API_TOKEN);
JKsoft_main 0:5c7abfb1236c 104
JKsoft_main 0:5c7abfb1236c 105 HttpResponse* get_res = get_req->send();
JKsoft_main 0:5c7abfb1236c 106
JKsoft_main 0:5c7abfb1236c 107 pc.printf("\n----- HTTPS GET response [%d]-----\n",get_res->get_status_code());
JKsoft_main 0:5c7abfb1236c 108
JKsoft_main 0:5c7abfb1236c 109 if(get_res->get_status_code() == 200){
JKsoft_main 0:5c7abfb1236c 110 pc.printf("\n----- HTTPS GET response 200 -----\n");
JKsoft_main 0:5c7abfb1236c 111 const char* body = get_res->get_body_as_string().c_str();
JKsoft_main 0:5c7abfb1236c 112
JKsoft_main 0:5c7abfb1236c 113 pc.printf("%s\r\n",body);
JKsoft_main 0:5c7abfb1236c 114
JKsoft_main 0:5c7abfb1236c 115 // Response JSON parse
JKsoft_main 0:5c7abfb1236c 116 char value[256];
JKsoft_main 0:5c7abfb1236c 117
JKsoft_main 0:5c7abfb1236c 118 char* p = j_paser(body,"日付",value);
JKsoft_main 0:5c7abfb1236c 119 j_paser(p,"value",value);
JKsoft_main 0:5c7abfb1236c 120 printf("date:%s\r\n",value);
JKsoft_main 0:5c7abfb1236c 121
JKsoft_main 0:5c7abfb1236c 122 lcd.cls();
JKsoft_main 0:5c7abfb1236c 123 lcd.locate(0,3);
JKsoft_main 0:5c7abfb1236c 124 lcd.printf("Date:%s",value);
JKsoft_main 0:5c7abfb1236c 125
JKsoft_main 0:5c7abfb1236c 126 p = j_paser(body,"文字列__1行_",value);
JKsoft_main 0:5c7abfb1236c 127 j_paser(p,"value",value);
JKsoft_main 0:5c7abfb1236c 128 printf("%s\r\n",value);
JKsoft_main 0:5c7abfb1236c 129
JKsoft_main 0:5c7abfb1236c 130 lcd.locate(0,14);
JKsoft_main 0:5c7abfb1236c 131 lcd.printf("name:%s",value);
JKsoft_main 0:5c7abfb1236c 132
JKsoft_main 0:5c7abfb1236c 133 // Sound an alert
JKsoft_main 0:5c7abfb1236c 134 spkr.period(1.0/5000.0);
JKsoft_main 0:5c7abfb1236c 135 spkr=0.5;
JKsoft_main 0:5c7abfb1236c 136 wait(1.0);
JKsoft_main 0:5c7abfb1236c 137 spkr=0.0;
JKsoft_main 0:5c7abfb1236c 138
JKsoft_main 0:5c7abfb1236c 139 delete get_req;
JKsoft_main 0:5c7abfb1236c 140
JKsoft_main 0:5c7abfb1236c 141 break;
JKsoft_main 0:5c7abfb1236c 142 }
JKsoft_main 0:5c7abfb1236c 143
JKsoft_main 0:5c7abfb1236c 144 delete get_req;
JKsoft_main 0:5c7abfb1236c 145
JKsoft_main 0:5c7abfb1236c 146 wait(10.0);
JKsoft_main 0:5c7abfb1236c 147 }
JKsoft_main 0:5c7abfb1236c 148
JKsoft_main 0:5c7abfb1236c 149 while(fire == 0);
JKsoft_main 0:5c7abfb1236c 150 wait(1.0);
JKsoft_main 0:5c7abfb1236c 151 }
JKsoft_main 0:5c7abfb1236c 152 }
JKsoft_main 0:5c7abfb1236c 153