From 4291c22ef445b8f94d2bcf1a7a3f531d3d9f6121 Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Tue, 18 Nov 2025 10:43:20 +0800
Subject: [PATCH] update thingsboard and lightd

---
 project/thingsboard/config.h |   72 +++++++++++++++++++++---------------
 1 files changed, 42 insertions(+), 30 deletions(-)

diff --git a/project/thingsboard/config.h b/project/thingsboard/config.h
index 8cf4e2e..acb008b 100644
--- a/project/thingsboard/config.h
+++ b/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
 

--
Gitblit v1.9.1