#ifndef __MQTT_IT_H__
#define __MQTT_IT_H__
#include "../ems/deviceLayer.h"
#include "define.h"
typedef struct cloud_mqtt_its cloud_mqtt_its;

typedef struct cloud_mqtt_rx_it
{
    char *rx_topic;
    char *tx_topic;
    int (*parse_message)(const cloud_mqtt_its *its, const void *payload, int payload_len, void *out_buff, int out_buff_max);
} cloud_mqtt_rx_it;

typedef struct cloud_mqtt_tx_it
{
    char *topic;
    int (*create_message)(const cloud_mqtt_its *its, void *payload, int max_len);
    time_t last_opt_time;
    int period; // 上报周期,0是实时上报,-1变化上报
} cloud_mqtt_tx_it;

typedef struct cloud_mqtt_its
{
    char *name;
    char *station_id;
    cloud_mqtt_rx_it *rx_it;
    int rx_it_sum;
    cloud_mqtt_tx_it *tx_it;
    int tx_it_sum;
} cloud_mqtt_its;

typedef struct mqtt_platform
{
    const char *name;
    cloud_mqtt_its *(*new_its)(void);
    int (*delete_its)(cloud_mqtt_its *its);
} mqtt_platform;
#endif
