【mbed OS5対応バージョン】データの保存、更新、取得ができるWebサービス「milkcocoa」に接続し、データのプッシュ、送信、取得ができるライブラリです。 https://mlkcca.com/
Dependents: mbed-os-example-wifi-milkcocoa MilkcocoaOsSample_Eth MilkcocoaOsSample_ESP8266 MilkcocoaOsSample_Eth_DigitalIn
Diff: Milkcocoa.h
- Revision:
- 0:0a2f634d3324
- Child:
- 1:8e4149b53a8a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Milkcocoa.h Thu Feb 09 07:26:57 2017 +0000 @@ -0,0 +1,79 @@ +#ifndef _MILKCOCOA_H_ +#define _MILKCOCOA_H_ + +#include "mbed.h" +#include "MQTTmbed.h" +#include "MQTTClient.h" +#include "MClient.h" +#include "rtos.h" + +#define RECV_TIMEOUT 500 +#define MILKCOCOA_SUBSCRIBERS 8 +#define START_THREAD 1 + +class DataElement { + public: + DataElement(); + DataElement(char *json_string); + void setValue(const char *key, const char *v); + void setValue(const char *key, int v); + void setValue(const char *key, double v); + char *toCharArray(); + char *getString(const char *key); + int getInt(const char *key); + float getFloat(const char *key); + + private: + char json_msg[256]; +}; + +typedef void (*GeneralFunction) (MQTT::MessageData& elem); + +class MilkcocoaSubscriber { + public: + GeneralFunction cb; + char topic[80]; + MilkcocoaSubscriber(GeneralFunction _cb); +}; + +class Milkcocoa { + public: + +// Milkcocoa(const char *host, uint16_t port, const char *_app_id, const char *client_id); + Milkcocoa(NetworkInterface* nif, const char *host, uint16_t port, const char *_app_id, const char *client_id); + Milkcocoa(NetworkInterface* nif, const char *host, uint16_t port, const char *_app_id, const char *client_id, char *_session); + static Milkcocoa* createWithApiKey(NetworkInterface* nif, const char *host, uint16_t port, const char *_app_id, const char *client_id, char *key, char *secret); + void connect(); + void loop(); + bool push(const char *path, DataElement dataelement); + bool send(const char *path, DataElement dataelement); + bool on(const char *path, const char *event, GeneralFunction cb); + void setLoopCycle(int cycle); + void start(); + +private: + char servername[64]; + int16_t portnum; + char _clientid[64]; + char username[32]; + char password[32]; + const char *app_id; + int16_t loop_cycle; + + MQTTInterface* ipstack; + MClient *client; + GeneralFunction _cb; + MilkcocoaSubscriber *milkcocoaSubscribers[MILKCOCOA_SUBSCRIBERS]; + Thread cycleThread; + void cycle_Thread(void); + static void threadStarter(void const *p); + + typedef struct { + char message[256]; + char topic[80]; + } milkcocoa_message_t; + Mail<milkcocoa_message_t, 16> message_box; +}; + + +#endif