You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

37 lines
1.2 KiB

#ifndef _MYMQTT_H
#define _MYMQTT_H
#include <AsyncMqttClient.h>
#include "config.h"
class MyMQTT {
public:
MyMQTT(void);
void connect(void);
void subscribe(void);
bool connected(void);
void publish(char* topic, char* payload);
void publish(char* topic, String payload);
void onMqttConnect(bool sessionPresent);
void onMqttDisconnect(AsyncMqttClientDisconnectReason reason);
void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total);
// static void onMqttMessageWrapper(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total);
static void onMqttConnectWrapper(bool sessionPresent);
static void onMqttDisconnectWrapper(AsyncMqttClientDisconnectReason reason);
private:
const char* host;
const uint32_t port;
const char* endpoint;
const char* username;
const char* password;
AsyncMqttClient mqttClient;
static void cTaskWrapper(void*);
void reconnectTask(void*);
TaskHandle_t mqttTaskHandle;
// static MyMQTT* mqtt_ptr;
};
static MyMQTT* mqtt_ptr = nullptr;
#endif /* _MYMQTT_H */