配置下发主题分类
This commit is contained in:
parent
1dc6f097e0
commit
a2b75cf76c
File diff suppressed because it is too large
Load Diff
|
@ -146,6 +146,11 @@ uint8_t drv_mqtt_connect()
|
|||
// KIT_PRINTF("Failed to set MQTT client credentials!\r\n");
|
||||
}
|
||||
|
||||
if (!drv_at_send_cmd("AT+QMTSUB=1,1,\"bluesun/bms/read/11223344\",0", "OK", WIFI_TIMEOUT))
|
||||
{
|
||||
// KIT_PRINTF("Failed to set MQTT client credentials!\r\n");
|
||||
}
|
||||
|
||||
// KIT_PRINTF("MQTT Connection Successful!\r\n");
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
uint8_t rev_buff[QFC41D_MAX_RECV_SIZE] = {0};
|
||||
uint8_t send_buff[QFC41D_MAX_SEND_SIZE] = {0};
|
||||
char wifiName[40] = "BLUESUNESS", wifiPassWord[40] = "bluesun009", bleName[40] = "bsm1";
|
||||
|
||||
#define MAX_PAYLOAD_LEN 128
|
||||
char cmd[1000] = {0}; //降低栈空间使用
|
||||
|
||||
|
@ -44,13 +44,11 @@ void parse_mqtt_message(char* message)
|
|||
}
|
||||
}
|
||||
|
||||
// 匹配四个引号
|
||||
if(quote_count < 4)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 提取payload内容
|
||||
char* payload_start = quotes[2] + 1;
|
||||
char* payload_end = quotes[3];
|
||||
size_t payload_len = payload_end - payload_start;
|
||||
|
@ -81,20 +79,18 @@ void parse_mqtt_message(char* message)
|
|||
len -= 2;
|
||||
}
|
||||
|
||||
// 分离参数
|
||||
char* plus_pos = strchr(processed, '+');
|
||||
if(!plus_pos)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 后续增加对主题部分的解析,读取是全部读取,配置下发,是一条一条下发
|
||||
// 解析主题
|
||||
|
||||
*plus_pos = '\0'; // 分割字符串
|
||||
*plus_pos = '\0';
|
||||
first = atoi(processed);
|
||||
second = atoi(plus_pos + 1);
|
||||
|
||||
if(strstr(message, "control") != NULL)
|
||||
{
|
||||
if((first >= 3000) && (first <= 3168))
|
||||
{
|
||||
bcu_data_set_0x06_msg(first, second);
|
||||
|
@ -103,6 +99,13 @@ void parse_mqtt_message(char* message)
|
|||
{
|
||||
hmi_write_modbus_cfg(first - 4000, second);
|
||||
}
|
||||
}
|
||||
else if (strstr(message, "read") != NULL)
|
||||
{
|
||||
//需要解决发送过程中与实时值DMA上传的冲突问题,可以尝试标志位或者队列的方式
|
||||
drv_mqtt_publish_read_no_respose("1", 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void drv_qfc41d_push_data(WifiBleItem* item, uint8_t *buf, uint16_t len)
|
||||
|
@ -371,8 +374,9 @@ uint8_t drv_qfc41d_init(void)
|
|||
#define MQTT_CLIENT_ID "fc41d_client" // 客户端 ID
|
||||
#define MQTT_USER "user" // MQTT 用户名
|
||||
#define MQTT_PASSWORD "password" // MQTT 密码
|
||||
#define MQTT_TOPIC "bluesun/bms/period/11223344" // 订阅/发布的主题
|
||||
#define MQTT_MESSAGE "Hello from FC41D!" // 发送的消息
|
||||
#define MQTT_TOPIC "bluesun/bms/period/11223344"
|
||||
#define MQTT_TOPIC_control "bluesun/bms/control/reply/11223344"
|
||||
#define MQTT_TOPIC_read "bluesun/bms/read/reply/11223344"
|
||||
|
||||
// 连接 MQTT 服务器
|
||||
//uint8_t drv_mqtt_connect()
|
||||
|
@ -444,6 +448,20 @@ uint8_t drv_mqtt_publish_no_respose(char* str,uint16_t length)
|
|||
return 0;
|
||||
}
|
||||
|
||||
uint8_t drv_mqtt_publish_control_no_respose(char* str,uint16_t length)
|
||||
{
|
||||
snprintf(cmd, sizeof(cmd), "AT+QMTPUB=1,1,2,0,\"%s\",%d,\"%s\"", MQTT_TOPIC_control, length, str);
|
||||
drv_wireless_send_string_dma(cmd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint8_t drv_mqtt_publish_read_no_respose(char* str,uint16_t length)
|
||||
{
|
||||
snprintf(cmd, sizeof(cmd), "AT+QMTPUB=1,1,2,0,\"%s\",%d,\"%s\"", MQTT_TOPIC_read, length, str);
|
||||
drv_wireless_send_string_dma(cmd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
// MQTT 初始化
|
||||
//uint8_t drv_mqtt_init()
|
||||
//{
|
||||
|
|
|
@ -68,6 +68,10 @@ uint8_t drv_mqtt_publish(char* str,uint16_t length);
|
|||
|
||||
uint8_t drv_mqtt_publish_no_respose(char* str,uint16_t length);
|
||||
|
||||
uint8_t drv_mqtt_publish_control_no_respose(char* str,uint16_t length);
|
||||
|
||||
uint8_t drv_mqtt_publish_read_no_respose(char* str,uint16_t length);
|
||||
|
||||
uint8_t drv_ble_init();
|
||||
|
||||
#endif //DRV_QFC41D_H_
|
||||
|
|
Loading…
Reference in New Issue