【mbed OS5対応バージョン】データの保存、更新、取得ができるWebサービス「milkcocoa」に接続し、データのプッシュ、送信、取得ができるライブラリです。 https://mlkcca.com/

Dependents:   mbed-os-example-wifi-milkcocoa MilkcocoaOsSample_Eth MilkcocoaOsSample_ESP8266 MilkcocoaOsSample_Eth_DigitalIn

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