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-02-15
- Revision:
- 1:8e4149b53a8a
- Parent:
- 0:0a2f634d3324
- Child:
- 3:cddf81a87de3
File content as of revision 1:8e4149b53a8a:
#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(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 cycleThread1;
Thread cycleThread2;
void cycle_Thread1(void);
void cycle_Thread2(void);
static void threadStarter1(void const *p);
static void threadStarter2(void const *p);
typedef struct {
char message[256];
char topic[80];
} milkcocoa_message_t;
Mail<milkcocoa_message_t, 16> message_box;
};
#endif