增加认证回调
authorhcj <1224667075@qq.com>
Tue, 24 Feb 2026 03:10:29 +0000 (11:10 +0800)
committerhcj <1224667075@qq.com>
Tue, 24 Feb 2026 03:10:29 +0000 (11:10 +0800)
code/sdk/zhihui/leiniao/imsl_ln/LN_MQTT/ln_mqtt_api.c

index ecbb174..3225c60 100644 (file)
@@ -730,6 +730,35 @@ static void ln_mqtt_internal_message_cb(void *arg, const char *topic, const uint
     }
 }
 
+static int ln_mqtt_internal_credentials_cb(void *arg, mqtt_credentials_t *cred)
+{
+    (void)arg;
+    (void)cred;
+  
+    if (uapi_mqtt_load_credentials(cred) != 0) {
+        MQTT_ERROR("Failed to load credentials\n");
+
+        if(ln_ota_send_device_info_json(NULL, cred) != 0) {
+            printf("[LN_MQTT_API] Failed to send device info\n");
+            return -1;
+        }
+        else
+        {
+            printf("[LN_MQTT_API] Device info sent successfully\n");
+        }
+    }
+
+
+    printf("[LN_MQTT_API] Credentials callback\n");
+    printf("[LN_MQTT_API] Credentials: %s\n", cred->endpoint);
+    printf("[LN_MQTT_API] Credentials: %s\n", cred->client_id);
+    printf("[LN_MQTT_API] Credentials: %s\n", cred->username);
+    printf("[LN_MQTT_API] Credentials: %s\n", cred->password);
+    printf("[LN_MQTT_API] Credentials: %s\n", cred->publish_topic);
+    printf("[LN_MQTT_API] Credentials: %s\n", cred->subscribe_topic);
+    return 0;
+}
+
 /**
  * @brief MQTT订阅结果回调(内部回调,供服务模式使用)
  */
@@ -773,9 +802,11 @@ int ln_mqtt_api_start_service(ws_message_callback_t_ln callback)
     callbacks.connect_callback = ln_mqtt_internal_connect_cb;
     callbacks.message_callback = ln_mqtt_internal_message_cb;
     callbacks.subscribe_callback = ln_mqtt_internal_subscribe_cb;
+    callbacks.credentials_callback = ln_mqtt_internal_credentials_cb;
     callbacks.user_arg = NULL;
     callbacks.main_thread_interval_ms = 1000;  // 默认1000ms
     
+    
     // 启动MQTT主线程(会自动初始化、连接和管理消息队列)
     int ret = uapi_mqtt_main_start(&callbacks);
     if (ret != 0) {