From e1c45b607ef7c6cddebe93d96e8f6e0cd4987da6 Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Tue, 18 Nov 2025 10:58:09 +0800
Subject: [PATCH] update config logger
---
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 07a6a39..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 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