mbed OS5に対応したMilkcocoaライブラリのテストバージョンです。
Fork of mbed-os-example-mbed5-blinky by
Milkcocoa/Milkcocoa.h
- Committer:
- jksoft
- Date:
- 2017-01-24
- Revision:
- 24:6ba1245bf049
File content as of revision 24:6ba1245bf049:
#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[100]; MilkcocoaSubscriber(GeneralFunction _cb); }; class Milkcocoa { public: // Milkcocoa(const char *host, uint16_t port, const char *_app_id, const char *client_id); Milkcocoa(MClient *_client, const char *host, uint16_t port, const char *_app_id, const char *client_id); Milkcocoa(MClient *_client, const char *host, uint16_t port, const char *_app_id, const char *client_id, char *_session); static Milkcocoa* createWithApiKey(MClient *_client, 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; MClient *client; GeneralFunction _cb; MilkcocoaSubscriber *milkcocoaSubscribers[MILKCOCOA_SUBSCRIBERS]; Thread cycleThread; void cycle_Thread(void); static void threadStarter(void const *p); }; #endif