Adafruit_MQTT_Library/Adafruit_MQTT.h

70 lines
1.4 KiB
C
Raw Normal View History

2015-06-01 00:38:33 +02:00
#ifndef _ADAFRUIT_MQTT_H_
#define _ADAFRUIT_MQTT_H_
#if ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
#define MQTT_PROTOCOL_LEVEL 3
#define MQTT_CTRL_CONNECT 0x1
#define MQTT_CTRL_CONNECTACK 0x2
#define SERVERNAME_SIZE 25
#define USERNAME_SIZE 25
#define KEY_SIZE 41
#define FEEDNAME_SIZE 25
#define CONNECT_TIMEOUT_MS 3000
#define MQTT_CONN_USERNAMEFLAG 0x80
#define MQTT_CONN_PASSWORDFLAG 0x40
#define MQTT_CONN_WILLRETAIN 0x20
#define MQTT_CONN_WILLQOS 0x08
#define MQTT_CONN_WILLFLAG 0x04
#define MQTT_CONN_CLEANSESSION 0x02
#define MQTT_CONN_KEEPALIVE 15 // in seconds
#define MAXBUFFERSIZE 200
class Adafruit_MQTT {
public:
Adafruit_MQTT(char *server, uint16_t port, char *user, char *key);
uint8_t connectPacket(uint8_t *packet);
protected:
int8_t errno;
char servername[SERVERNAME_SIZE];
uint32_t serverip;
int16_t portnum;
char username[USERNAME_SIZE];
char userkey[KEY_SIZE];
uint8_t buffer[MAXBUFFERSIZE];
};
class Adafruit_MQTT_Publish {
public:
Adafruit_MQTT_Publish(Adafruit_MQTT *mqttserver, char *feed);
bool publish(char *s);
bool publish(double f);
bool publish(int32_t i);
private:
Adafruit_MQTT *mqtt;
char feedname[FEEDNAME_SIZE];
int8_t errno;
};
class Adafruit_MQTT_Subscibe {
public:
Adafruit_MQTT_Subscibe(Adafruit_MQTT *mqttserver, char *feedname);
bool setCallback(void (*callback)(char *));
};
#endif /* header guard */