【mbed OS5対応バージョン】データの保存、更新、取得ができるWebサービス「milkcocoa」に接続し、データのプッシュ、送信、取得ができるライブラリです。 https://mlkcca.com/
Dependents: mbed-os-example-wifi-milkcocoa MilkcocoaOsSample_Eth MilkcocoaOsSample_ESP8266 MilkcocoaOsSample_Eth_DigitalIn
Diff: Milkcocoa.cpp
- Revision:
- 12:6eafbe763882
- Parent:
- 9:5c195c1036da
--- a/Milkcocoa.cpp Thu Sep 07 01:26:48 2017 +0000 +++ b/Milkcocoa.cpp Mon Feb 05 23:32:22 2018 +0000 @@ -88,6 +88,15 @@ return(json_msg); } +Milkcocoa::Milkcocoa(NetworkInterface* nif){ + ipstack = new MQTTInterface(nif); + client = new MClient(ipstack); + + for (int i=0; i<MILKCOCOA_SUBSCRIBERS; i++) { + milkcocoaSubscribers[i] = NULL; + } +} + Milkcocoa::Milkcocoa(NetworkInterface* nif, const char *host, uint16_t port, const char *_app_id, const char *client_id){ ipstack = new MQTTInterface(nif); client = new MClient(ipstack); @@ -138,6 +147,15 @@ return new Milkcocoa(nif, host, port, _app_id, client_id, session); } +void Milkcocoa::set_network_settinng(const char *host, uint16_t port, const char *_app_id, const char *client_id){ + strcpy(servername,host); + portnum = port; + strcpy(app_id,_app_id); + strcpy(_clientid,client_id); + strcpy(username,"sdammy"); + strcpy(password,app_id); +} + void Milkcocoa::connect() { if(client->isConnected()) @@ -238,26 +256,34 @@ void Milkcocoa::loop() { connect(); +#ifndef __MILKCOCOA_THREAD + send_massage(); +#endif client->yield(1); +} -#ifndef __MILKCOCOA_THREAD - osEvent evt = message_box.get(0); - if (evt.status == osEventMail) { - milkcocoa_message_t *message = (milkcocoa_message_t*)evt.value.p; - MQTT::Message mq_message; - if(message != NULL) { - mq_message.qos = MQTT::QOS0; - mq_message.retained = 0; - mq_message.dup = false; - mq_message.payload = (void*)message->message; - mq_message.payloadlen = strlen(message->message); - - client->publish(message->topic, mq_message); - - message_box.free(message); +void Milkcocoa::send_massage(){ + while(1){ + osEvent evt = message_box.get(0); + if (evt.status == osEventMail) { + milkcocoa_message_t *message = (milkcocoa_message_t*)evt.value.p; + MQTT::Message mq_message; + if(message != NULL) { + mq_message.qos = MQTT::QOS0; + mq_message.retained = 0; + mq_message.dup = false; + mq_message.payload = (void*)message->message; + mq_message.payloadlen = strlen(message->message); + printf("milkcocoa send\r\n"); + client->publish(message->topic, mq_message); + + message_box.free(message); + } + } + else{ + break; } } -#endif } bool Milkcocoa::on(const char *path, const char *event, GeneralFunction cb) {