配置下发主题分类
This commit is contained in:
parent
1dc6f097e0
commit
a2b75cf76c
File diff suppressed because it is too large
Load Diff
|
@ -145,6 +145,11 @@ uint8_t drv_mqtt_connect()
|
||||||
{
|
{
|
||||||
// KIT_PRINTF("Failed to set MQTT client credentials!\r\n");
|
// 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");
|
// KIT_PRINTF("MQTT Connection Successful!\r\n");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
uint8_t rev_buff[QFC41D_MAX_RECV_SIZE] = {0};
|
uint8_t rev_buff[QFC41D_MAX_RECV_SIZE] = {0};
|
||||||
uint8_t send_buff[QFC41D_MAX_SEND_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
|
#define MAX_PAYLOAD_LEN 128
|
||||||
char cmd[1000] = {0}; //降低栈空间使用
|
char cmd[1000] = {0}; //降低栈空间使用
|
||||||
|
|
||||||
|
@ -44,13 +44,11 @@ void parse_mqtt_message(char* message)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 匹配四个引号
|
|
||||||
if(quote_count < 4)
|
if(quote_count < 4)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 提取payload内容
|
|
||||||
char* payload_start = quotes[2] + 1;
|
char* payload_start = quotes[2] + 1;
|
||||||
char* payload_end = quotes[3];
|
char* payload_end = quotes[3];
|
||||||
size_t payload_len = payload_end - payload_start;
|
size_t payload_len = payload_end - payload_start;
|
||||||
|
@ -80,29 +78,34 @@ void parse_mqtt_message(char* message)
|
||||||
processed[len - 2] = '\0';
|
processed[len - 2] = '\0';
|
||||||
len -= 2;
|
len -= 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 分离参数
|
|
||||||
char* plus_pos = strchr(processed, '+');
|
char* plus_pos = strchr(processed, '+');
|
||||||
if(!plus_pos)
|
if(!plus_pos)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 后续增加对主题部分的解析,读取是全部读取,配置下发,是一条一条下发
|
|
||||||
// 解析主题
|
|
||||||
|
|
||||||
*plus_pos = '\0'; // 分割字符串
|
*plus_pos = '\0';
|
||||||
first = atoi(processed);
|
first = atoi(processed);
|
||||||
second = atoi(plus_pos + 1);
|
second = atoi(plus_pos + 1);
|
||||||
|
|
||||||
if((first >= 3000) && (first <= 3168))
|
if(strstr(message, "control") != NULL)
|
||||||
{
|
{
|
||||||
bcu_data_set_0x06_msg(first, second);
|
if((first >= 3000) && (first <= 3168))
|
||||||
}
|
{
|
||||||
else if ((first >= 4000) && (first <= 4999))
|
bcu_data_set_0x06_msg(first, second);
|
||||||
{
|
}
|
||||||
hmi_write_modbus_cfg(first - 4000, second);
|
else if ((first >= 4000) && (first <= 4999))
|
||||||
|
{
|
||||||
|
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)
|
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_CLIENT_ID "fc41d_client" // 客户端 ID
|
||||||
#define MQTT_USER "user" // MQTT 用户名
|
#define MQTT_USER "user" // MQTT 用户名
|
||||||
#define MQTT_PASSWORD "password" // MQTT 密码
|
#define MQTT_PASSWORD "password" // MQTT 密码
|
||||||
#define MQTT_TOPIC "bluesun/bms/period/11223344" // 订阅/发布的主题
|
#define MQTT_TOPIC "bluesun/bms/period/11223344"
|
||||||
#define MQTT_MESSAGE "Hello from FC41D!" // 发送的消息
|
#define MQTT_TOPIC_control "bluesun/bms/control/reply/11223344"
|
||||||
|
#define MQTT_TOPIC_read "bluesun/bms/read/reply/11223344"
|
||||||
|
|
||||||
// 连接 MQTT 服务器
|
// 连接 MQTT 服务器
|
||||||
//uint8_t drv_mqtt_connect()
|
//uint8_t drv_mqtt_connect()
|
||||||
|
@ -444,6 +448,20 @@ uint8_t drv_mqtt_publish_no_respose(char* str,uint16_t length)
|
||||||
return 0;
|
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 初始化
|
// MQTT 初始化
|
||||||
//uint8_t drv_mqtt_init()
|
//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_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();
|
uint8_t drv_ble_init();
|
||||||
|
|
||||||
#endif //DRV_QFC41D_H_
|
#endif //DRV_QFC41D_H_
|
||||||
|
|
Loading…
Reference in New Issue