RaspberrPi project source code
guowenxue
16 hours ago 4291c22ef445b8f94d2bcf1a7a3f531d3d9f6121
project/thingsboard/config.h
@@ -13,6 +13,8 @@
#ifndef  __CONF_H_
#define  __CONF_H_
#include <stddef.h>
enum
{
    Qos0, /* 发送者只发送一次消息,不进行重试,Broker不会返回确认消息。在Qos0情况下,Broker可能没有接受到消息 */
@@ -24,49 +26,59 @@
#define DEF_PUBINTERVAL     120
#define DEF_QOS             Qos2
typedef struct hwconf_s
typedef struct hwinfo_s
{
    int            relay;   /* relay aviable or not.   0:Disable  1: Enable */
    int            led;     /* RGB led aviable or not. 0:Disable  1: Enable */
    int            beeper;  /* beeper aviable or not.  0:Disable  1: Enable */
    int            ds18b20; /* DS1B820 aviable or not. 0:Disable  1: Enable */
    int            sht2x;   /* SHT20  aviable or not.  0:Disable  1: Enable */
    int            tsl2561; /* TSL2561 aviable or not.  0:Disable  1: Enable */
} hwconf_t;
    int             relay;   /* relay aviable or not.   0:Disable  1: Enable */
    int             led;     /* RGB led aviable or not. 0:Disable  1: Enable */
    int             beeper;  /* beeper aviable or not.  0:Disable  1: Enable */
    int             ds18b20; /* DS1B820 aviable or not. 0:Disable  1: Enable */
    int             sht2x;   /* SHT20  aviable or not.  0:Disable  1: Enable */
    int             tsl2561; /* TSL2561 aviable or not. 0:Disable  1: Enable */
} hwinfo_t;
/* logger settings */
typedef struct logger_s
{
    char            logfile[128]; /* logger record file */
    int             loglevel;     /* logger level  */
    int             logsize;      /* logger file maxsize, oversize will rollback */
} logger_t;
typedef struct mqtt_ctx_s
{
    char          devid[32];    /*  device ID */
    /* hardware configuration */
    hwconf_t      hwconf;
    /* logger settings */
    char          logfile[128]; /* logger record file */
    int           loglevel;     /* logger level  */
    int           logsize;      /* logger file maxsize, oversize will rollback */
    char         devid[32];    /*  device ID */
    void           *userdata;      /* user data pointer */
    /* Broker settings  */
    char          host[128];  /* MQTT broker server name  */
    int           port;       /* MQTT broker listen port  */
    char          uid[64];    /* username */
    char          pwd[64];    /* password */
    char          token[64];  /* token */
    int           keepalive;  /* MQTT broker send PING message to subsciber/publisher keepalive timeout<seconds> */
    char            host[128];  /* MQTT broker server name  */
    int             port;       /* MQTT broker listen port  */
    char            uid[64];    /* username */
    char            pwd[64];    /* password */
    char            token[64];  /* token */
    int             keepalive;  /* MQTT broker send PING message to subsciber/publisher keepalive timeout<seconds> */
    /* Publisher settings */
    char          pubTopic[256]; /* Publisher topic  */
    int           pubQos;        /* Publisher Qos */
    int           interval ;     /* Publish sensor data interval time, unit seconds */
    char            pubTopic[256]; /* Publisher topic  */
    int             pubQos;        /* Publisher Qos */
    int             interval ;     /* Publish sensor data interval time, unit seconds */
    /* Subscriber settings */
    char          subTopic[256]; /* Subscriber topic */
    int           subQos;        /* Subscriber Qos  */
    char            subTopic[256]; /* Subscriber topic */
    int             subQos;        /* Subscriber Qos  */
} mqtt_ctx_t;
typedef struct iotd_ctx_s
{
    logger_t        logger;
    hwinfo_t        hwinfo;
    mqtt_ctx_t      mqtt;
} iotd_ctx_t;
extern int mqttd_parser_conf(const char *conf_file, mqtt_ctx_t *ctx, int debug);
/* get iotd_ctx address by mqtt_ctx address */
#define container_of(ptr, type, member) ((type *)((char *)(ptr) - offsetof(type, member)))
#define to_iotd(ctx)   container_of(ctx, iotd_ctx_t, mqtt);
#endif   /* ----- #ifndef _CONF_H_  ----- */
extern int parser_conf(const char *conf_file, iotd_ctx_t *ctx, int debug);
#endif