Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: mbed-os-example-wifi-milkcocoa MilkcocoaOsSample_Eth MilkcocoaOsSample_ESP8266 MilkcocoaOsSample_Eth_DigitalIn
Milkcocoa.h
- Committer:
- jksoft
- Date:
- 2017-06-14
- Revision:
- 8:e2f15b1b4f70
- Parent:
- 6:1b5ec3a15d67
- Child:
- 12:6eafbe763882
File content as of revision 8:e2f15b1b4f70:
#ifndef _MILKCOCOA_H_
#define _MILKCOCOA_H_
#include "mbed.h"
#include "MQTTmbed.h"
#include "MQTTClient.h"
#include "MClient.h"
#include "rtos.h"
//#define __MILKCOCOA_THREAD
#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(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();
void close();
bool push(const char *path, DataElement dataelement);
bool push(const char *path, char *data);
bool send(const char *path, DataElement dataelement);
bool send(const char *path, char *data);
bool on(const char *path, const char *event, GeneralFunction cb);
#ifdef __MILKCOCOA_THREAD
void setLoopCycle(int cycle);
void start();
#endif
private:
char servername[64];
int16_t portnum;
char _clientid[64];
char username[32];
char password[32];
char app_id[32];
char _message[256];
int16_t loop_cycle;
MQTTInterface* ipstack;
MClient *client;
GeneralFunction _cb;
MilkcocoaSubscriber *milkcocoaSubscribers[MILKCOCOA_SUBSCRIBERS];
#ifdef __MILKCOCOA_THREAD
Thread cycleThread1;
Thread cycleThread2;
void cycle_Thread1(void);
void cycle_Thread2(void);
static void threadStarter1(void const *p);
static void threadStarter2(void const *p);
#endif
typedef struct {
char message[256];
char topic[80];
} milkcocoa_message_t;
Mail<milkcocoa_message_t, 16> message_box;
int connectting;
int mqtt_connectting;
};
#endif