取消wifi初始化,增加蓝牙初始化,调整mqtt订阅位置,实现蓝牙配网的功能
This commit is contained in:
parent
a619df7ff2
commit
56b02e6abb
|
@ -188,7 +188,7 @@ void poll_10ms_task_init(void)
|
||||||
void poll_mqtt_init(void)
|
void poll_mqtt_init(void)
|
||||||
{
|
{
|
||||||
static uint16_t qfc41d_init_count = 0;
|
static uint16_t qfc41d_init_count = 0;
|
||||||
static uint16_t mqtt_init_count = 0;
|
|
||||||
while (drv_qfc41d_init() && qfc41d_init_count < 10)
|
while (drv_qfc41d_init() && qfc41d_init_count < 10)
|
||||||
{
|
{
|
||||||
drv_wdog_feed();
|
drv_wdog_feed();
|
||||||
|
@ -196,13 +196,13 @@ void poll_mqtt_init(void)
|
||||||
qfc41d_init_count++;
|
qfc41d_init_count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// MQTT ?????
|
// // MQTT ?????
|
||||||
while (drv_mqtt_init() && mqtt_init_count < 10)
|
// while (drv_mqtt_init() && mqtt_init_count < 10)
|
||||||
{
|
// {
|
||||||
drv_wdog_feed();
|
// drv_wdog_feed();
|
||||||
kit_time_dly_ms(100);
|
// kit_time_dly_ms(100);
|
||||||
mqtt_init_count++;
|
// mqtt_init_count++;
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* @brief ucos???§Ø???
|
* @brief ucos???§Ø???
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -21,6 +21,7 @@
|
||||||
#include "statistic_manager.h"
|
#include "statistic_manager.h"
|
||||||
#include "bmu_manager.h"
|
#include "bmu_manager.h"
|
||||||
#include "protocol_comm.h"
|
#include "protocol_comm.h"
|
||||||
|
#include "drv_qfc41d.h"
|
||||||
|
|
||||||
uint32_t bms_get_baseInfo(uint16_t input)
|
uint32_t bms_get_baseInfo(uint16_t input)
|
||||||
{
|
{
|
||||||
|
@ -1049,12 +1050,27 @@ void publish_all_bms_groups(void)
|
||||||
void mqtt_publish_bms_data(uint32_t basetime)
|
void mqtt_publish_bms_data(uint32_t basetime)
|
||||||
{
|
{
|
||||||
static uint32_t mqtt_cycle_tick = 0;
|
static uint32_t mqtt_cycle_tick = 0;
|
||||||
|
//static uint16_t mqtt_init_count = 0;
|
||||||
|
static uint8_t mqtt_init_flag = 1;
|
||||||
static uint8_t groupMax = 0;
|
static uint8_t groupMax = 0;
|
||||||
|
|
||||||
mqtt_cycle_tick += basetime;
|
mqtt_cycle_tick += basetime;
|
||||||
|
|
||||||
if(mqtt_cycle_tick > 1000)
|
if(mqtt_cycle_tick > 1000)
|
||||||
{
|
{
|
||||||
|
// if (!drv_at_send_cmd("AT+QSTAST", "+QSTAST:STATION_UP", WIFI_TIMEOUT))
|
||||||
|
// {
|
||||||
|
// mqtt_init_flag = 1;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (mqtt_init_flag == 1)
|
||||||
|
// {
|
||||||
|
// if (drv_mqtt_connect() == 0)
|
||||||
|
// {
|
||||||
|
// mqtt_init_flag = 0;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
drv_mqtt_connect();
|
||||||
// drv_wireless_send_string("AT+QMTPUB=0,1,2,0,\"BCU01\",17,\"Hello from FC41D!\"");
|
// drv_wireless_send_string("AT+QMTPUB=0,1,2,0,\"BCU01\",17,\"Hello from FC41D!\"");
|
||||||
mqtt_cycle_tick = 0;
|
mqtt_cycle_tick = 0;
|
||||||
publish_all_bms_groups();
|
publish_all_bms_groups();
|
||||||
|
|
|
@ -495,4 +495,13 @@
|
||||||
<files/>
|
<files/>
|
||||||
</RTE>
|
</RTE>
|
||||||
|
|
||||||
|
<LayerInfo>
|
||||||
|
<Layers>
|
||||||
|
<Layer>
|
||||||
|
<LayName>BCU_BOOT</LayName>
|
||||||
|
<LayPrjMark>1</LayPrjMark>
|
||||||
|
</Layer>
|
||||||
|
</Layers>
|
||||||
|
</LayerInfo>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -102,13 +102,57 @@ void drv_eg25g_init2(void)
|
||||||
if (!drv_send_at_cmd2("AT+CGPADDR=1", 500)) return; // 7. 查询分配的 IP 地址
|
if (!drv_send_at_cmd2("AT+CGPADDR=1", 500)) return; // 7. 查询分配的 IP 地址
|
||||||
}
|
}
|
||||||
|
|
||||||
void drv_mqtt_connect(void)
|
#define MQTT_BROKER "47.120.14.45" // 你的 MQTT 服务器地址
|
||||||
|
#define MQTT_PORT 3011 // MQTT 端口
|
||||||
|
#define MQTT_CLIENT_ID "fc41d_client" // 客户端 ID
|
||||||
|
#define MQTT_USER "user" // MQTT 用户名
|
||||||
|
#define MQTT_PASSWORD "password" // MQTT 密码
|
||||||
|
#define MQTT_TOPIC "BCU01" // 订阅/发布的主题
|
||||||
|
#define MQTT_MESSAGE "Hello from FC41D!" // 发送的消息
|
||||||
|
#define WIFI_TIMEOUT 1000
|
||||||
|
|
||||||
|
// 连接 MQTT 服务器
|
||||||
|
uint8_t drv_mqtt_connect()
|
||||||
{
|
{
|
||||||
// drv_send_at_cmd("AT+QMTCFG=\"recv/mode\",0,0,1", 500);
|
|
||||||
drv_send_at_cmd("AT+QMTOPEN=0,\"47.120.14.45\",3011", 5000);
|
//1、设置 MQTT 协议的版本号为 V4
|
||||||
drv_send_at_cmd("AT+QMTCONN=0,\"clientBCUwifi01\"", 5000);
|
// snprintf(cmd, sizeof(cmd), "AT+QMTCFG=\"version\",1,4");
|
||||||
drv_send_at_cmd("AT+QMTSUB=0,1,\"BCU01\",2", 5000);
|
// if (!drv_at_send_cmd(cmd, "OK", WIFI_TIMEOUT))
|
||||||
|
// {
|
||||||
|
// KIT_PRINTF("Failed to set MQTT server!\r\n");
|
||||||
|
// return 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
//2、建立 MQTT 客户端与服务器之间的会话连接
|
||||||
|
char cmd[100] = {0};
|
||||||
|
|
||||||
|
snprintf(cmd, sizeof(cmd), "AT+QMTOPEN=0,\"%s\",%d",MQTT_BROKER,MQTT_PORT);
|
||||||
|
if (!drv_at_send_cmd(cmd, "OK", WIFI_TIMEOUT))
|
||||||
|
{
|
||||||
|
KIT_PRINTF("Failed to set MQTT server!\r\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//2、MQTT 客户端与服务器之间建立 MQTT 连接 AT+QMTCONN=<clientID>,<client_identity>,<username>,<password>
|
||||||
|
//snprintf(cmd, sizeof(cmd), "AT+QMTCONN=0,%s,%s,%s",MQTT_CLIENT_ID,MQTT_USER, MQTT_PASSWORD);
|
||||||
|
if (!drv_at_send_cmd("AT+QMTCONN=0,\"clientBCUwifi03\"", "OK", WIFI_TIMEOUT))
|
||||||
|
{
|
||||||
|
KIT_PRINTF("Failed to set MQTT client credentials!\r\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
KIT_PRINTF("MQTT Connection Successful!\r\n");
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//void drv_mqtt_connect(void)
|
||||||
|
//{
|
||||||
|
//// drv_send_at_cmd("AT+QMTCFG=\"recv/mode\",0,0,1", 500);
|
||||||
|
// drv_send_at_cmd("AT+QMTOPEN=0,\"47.120.14.45\",3011", 5000);
|
||||||
|
// drv_send_at_cmd("AT+QMTCONN=0,\"clientBCUwifi01\"", 5000);
|
||||||
|
// drv_send_at_cmd("AT+QMTSUB=0,1,\"BCU01\",2", 5000);
|
||||||
|
//}
|
||||||
/*
|
/*
|
||||||
void drv_mqtt_publish(const char *topic, const char *message)
|
void drv_mqtt_publish(const char *topic, const char *message)
|
||||||
{
|
{
|
||||||
|
|
|
@ -49,7 +49,7 @@ void drv_uart2_sendbyte(char c);
|
||||||
void drv_uart2_sendString(const char *str);
|
void drv_uart2_sendString(const char *str);
|
||||||
void drv_send_at_cmd(const char *cmd, int delay_ms);
|
void drv_send_at_cmd(const char *cmd, int delay_ms);
|
||||||
void drv_eg25g_init(void);
|
void drv_eg25g_init(void);
|
||||||
void drv_mqtt_connect(void);
|
uint8_t drv_mqtt_connect();
|
||||||
//void drv_mqtt_publish(const char *topic, const char *message);
|
//void drv_mqtt_publish(const char *topic, const char *message);
|
||||||
void drv_sim_push_data(Lte4GItem* item, uint8_t *buf, uint16_t len);
|
void drv_sim_push_data(Lte4GItem* item, uint8_t *buf, uint16_t len);
|
||||||
|
|
||||||
|
|
|
@ -114,12 +114,12 @@ static uint8_t drv_wifi_init()
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!drv_at_send_cmd("AT+QSTAAPINFO=BLUESUNESS,bluesun009", "OK", WIFI_CONNECT_TIMEOUT))
|
// if (!drv_at_send_cmd("AT+QSTAAPINFO=BLUESUNESS,bluesun009", "OK", WIFI_CONNECT_TIMEOUT))
|
||||||
{
|
// {
|
||||||
KIT_PRINTF("Failed to set WiFi mode!\r\n");
|
// KIT_PRINTF("Failed to set WiFi mode!\r\n");
|
||||||
return 1;
|
// return 1;
|
||||||
}
|
// }
|
||||||
kit_time_dly_ms(2000);
|
// kit_time_dly_ms(2000);
|
||||||
|
|
||||||
// if (!drv_at_send_cmd("AT+QSTAAPINFO=BLUESUNESS,bluesun009", "OK", WIFI_TIMEOUT))
|
// if (!drv_at_send_cmd("AT+QSTAAPINFO=BLUESUNESS,bluesun009", "OK", WIFI_TIMEOUT))
|
||||||
// {
|
// {
|
||||||
|
@ -157,56 +157,71 @@ static uint8_t drv_ble_init()
|
||||||
{
|
{
|
||||||
|
|
||||||
// 1. 初始化,蓝牙作为服务器
|
// 1. 初始化,蓝牙作为服务器
|
||||||
if (!drv_at_send_cmd("AT+QBLEINIT=2", "OK", WIFI_TIMEOUT))
|
// if (!drv_at_send_cmd("AT+QBLEINIT=3", "OK", WIFI_TIMEOUT))
|
||||||
{
|
// {
|
||||||
KIT_PRINTF("Failed to power off BLE!\r\n");
|
// KIT_PRINTF("Failed to power off BLE!\r\n");
|
||||||
return 1;
|
// return 1;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// 2. 设置蓝牙名称
|
// // 2. 设置蓝牙名称
|
||||||
snprintf(cmd, sizeof(cmd), "AT+QBLENAME=%s", bleName);
|
// snprintf(cmd, sizeof(cmd), "AT+QBLENAME=%s", bleName);
|
||||||
if (!drv_at_send_cmd(cmd, "OK", WIFI_TIMEOUT))
|
// if (!drv_at_send_cmd(cmd, "OK", WIFI_TIMEOUT))
|
||||||
{
|
// {
|
||||||
KIT_PRINTF("Failed to set BLE name!\r\n");
|
// KIT_PRINTF("Failed to set BLE name!\r\n");
|
||||||
return 1;
|
// return 1;
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 3. 设置广播参数
|
// // 3. 设置广播参数
|
||||||
if (!drv_at_send_cmd("AT+QBLEADVPARAM=2048,2048", "OK", WIFI_TIMEOUT))
|
// if (!drv_at_send_cmd("AT+QBLEADVPARAM=2048,2048", "OK", WIFI_TIMEOUT))
|
||||||
{
|
// {
|
||||||
KIT_PRINTF("Failed to enable BLE!\r\n");
|
// KIT_PRINTF("Failed to enable BLE!\r\n");
|
||||||
return 1;
|
// return 1;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// 4. 设置广播数据
|
// // 4. 设置广播数据
|
||||||
if (!drv_at_send_cmd("AT+QBLEADVDATA=06094643343144", "OK", WIFI_TIMEOUT))
|
// if (!drv_at_send_cmd("AT+QBLEADVDATA=06094643343144", "OK", WIFI_TIMEOUT))
|
||||||
{
|
// {
|
||||||
KIT_PRINTF("Failed to enable BLE!\r\n");
|
// KIT_PRINTF("Failed to enable BLE!\r\n");
|
||||||
return 1;
|
// return 1;
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 5. 创建服务
|
// // 5. 创建服务
|
||||||
if (!drv_at_send_cmd("AT+QBLEGATTSSRV=FFF0", "OK", WIFI_TIMEOUT))
|
// if (!drv_at_send_cmd("AT+QBLEGATTSSRV=FFF0", "OK", WIFI_TIMEOUT))
|
||||||
{
|
// {
|
||||||
KIT_PRINTF("Failed to set BLE role!\r\n");
|
// KIT_PRINTF("Failed to set BLE role!\r\n");
|
||||||
return 1;
|
// return 1;
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// 6. 创建特征值
|
// // 6. 创建特征值
|
||||||
if (!drv_at_send_cmd("AT+QBLEGATTSSRV=FFF1", "OK", WIFI_TIMEOUT))
|
// if (!drv_at_send_cmd("AT+QBLEGATTSSRV=FFF1", "OK", WIFI_TIMEOUT))
|
||||||
|
// {
|
||||||
|
// KIT_PRINTF("Failed to set BLE role!\r\n");
|
||||||
|
// return 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// // 7. 开始广播
|
||||||
|
// if (!drv_at_send_cmd("AT+QBLEADVSTART", "OK", WIFI_TIMEOUT))
|
||||||
|
// {
|
||||||
|
// KIT_PRINTF("Failed to start BLE advertising!\r\n");
|
||||||
|
// return 1;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// KIT_PRINTF("BLE Initialization Successful!\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
if (!drv_at_send_cmd("AT+QBLEINIT=3", "OK", WIFI_TIMEOUT))
|
||||||
{
|
{
|
||||||
KIT_PRINTF("Failed to set BLE role!\r\n");
|
KIT_PRINTF("Failed to set BLE role!\r\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 7. 开始广播
|
//设置wifi名称,必须以BSM开头,后缀可以加sn码
|
||||||
if (!drv_at_send_cmd("AT+QBLEADVSTART", "OK", WIFI_TIMEOUT))
|
if (!drv_at_send_cmd("AT+QBLENAME=BSM123456", "OK", WIFI_TIMEOUT))
|
||||||
{
|
{
|
||||||
KIT_PRINTF("Failed to start BLE advertising!\r\n");
|
KIT_PRINTF("Failed to start BLE advertising!\r\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
KIT_PRINTF("BLE Initialization Successful!\r\n");
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -221,18 +236,17 @@ uint8_t drv_qfc41d_init(void)
|
||||||
drv_uart_set_interrupt(QFC41D_UART_PORT, kUartInterrupt_Rx, APP_CFG_INT_PRIO_UART2_RX, drv_qf41d_uart_rx_it_call);//#define SIM_UART_PORT kUartDev_2
|
drv_uart_set_interrupt(QFC41D_UART_PORT, kUartInterrupt_Rx, APP_CFG_INT_PRIO_UART2_RX, drv_qf41d_uart_rx_it_call);//#define SIM_UART_PORT kUartDev_2
|
||||||
|
|
||||||
//初始化wifi
|
//初始化wifi
|
||||||
if(drv_wifi_init() != 0)
|
// if(drv_wifi_init() != 0)
|
||||||
{
|
// {
|
||||||
return 1;
|
// return 1;
|
||||||
}
|
// }
|
||||||
|
|
||||||
/* 蓝牙预留
|
//初始化蓝牙(BLE)
|
||||||
//初始化蓝牙(BLE)
|
|
||||||
if (drv_ble_init() != 0)
|
if (drv_ble_init() != 0)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -246,37 +260,37 @@ uint8_t drv_qfc41d_init(void)
|
||||||
#define MQTT_MESSAGE "Hello from FC41D!" // 发送的消息
|
#define MQTT_MESSAGE "Hello from FC41D!" // 发送的消息
|
||||||
|
|
||||||
// 连接 MQTT 服务器
|
// 连接 MQTT 服务器
|
||||||
static uint8_t drv_mqtt_connect()
|
//uint8_t drv_mqtt_connect()
|
||||||
{
|
//{
|
||||||
|
//
|
||||||
//1、设置 MQTT 协议的版本号为 V4
|
// //1、设置 MQTT 协议的版本号为 V4
|
||||||
// snprintf(cmd, sizeof(cmd), "AT+QMTCFG=\"version\",1,4");
|
//// snprintf(cmd, sizeof(cmd), "AT+QMTCFG=\"version\",1,4");
|
||||||
|
//// if (!drv_at_send_cmd(cmd, "OK", WIFI_TIMEOUT))
|
||||||
|
//// {
|
||||||
|
//// KIT_PRINTF("Failed to set MQTT server!\r\n");
|
||||||
|
//// return 1;
|
||||||
|
//// }
|
||||||
|
//
|
||||||
|
// //2、建立 MQTT 客户端与服务器之间的会话连接
|
||||||
|
// snprintf(cmd, sizeof(cmd), "AT+QMTOPEN=0,\"%s\",%d",MQTT_BROKER,MQTT_PORT);
|
||||||
// if (!drv_at_send_cmd(cmd, "OK", WIFI_TIMEOUT))
|
// if (!drv_at_send_cmd(cmd, "OK", WIFI_TIMEOUT))
|
||||||
// {
|
// {
|
||||||
// KIT_PRINTF("Failed to set MQTT server!\r\n");
|
// KIT_PRINTF("Failed to set MQTT server!\r\n");
|
||||||
// return 1;
|
// return 1;
|
||||||
// }
|
// }
|
||||||
|
//
|
||||||
//2、建立 MQTT 客户端与服务器之间的会话连接
|
|
||||||
snprintf(cmd, sizeof(cmd), "AT+QMTOPEN=0,\"%s\",%d",MQTT_BROKER,MQTT_PORT);
|
|
||||||
if (!drv_at_send_cmd(cmd, "OK", WIFI_TIMEOUT))
|
|
||||||
{
|
|
||||||
KIT_PRINTF("Failed to set MQTT server!\r\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//2、MQTT 客户端与服务器之间建立 MQTT 连接 AT+QMTCONN=<clientID>,<client_identity>,<username>,<password>
|
// //2、MQTT 客户端与服务器之间建立 MQTT 连接 AT+QMTCONN=<clientID>,<client_identity>,<username>,<password>
|
||||||
//snprintf(cmd, sizeof(cmd), "AT+QMTCONN=0,%s,%s,%s",MQTT_CLIENT_ID,MQTT_USER, MQTT_PASSWORD);
|
// //snprintf(cmd, sizeof(cmd), "AT+QMTCONN=0,%s,%s,%s",MQTT_CLIENT_ID,MQTT_USER, MQTT_PASSWORD);
|
||||||
if (!drv_at_send_cmd("AT+QMTCONN=0,\"clientBCUwifi03\"", "OK", WIFI_TIMEOUT))
|
// if (!drv_at_send_cmd("AT+QMTCONN=0,\"clientBCUwifi03\"", "OK", WIFI_TIMEOUT))
|
||||||
{
|
// {
|
||||||
KIT_PRINTF("Failed to set MQTT client credentials!\r\n");
|
// KIT_PRINTF("Failed to set MQTT client credentials!\r\n");
|
||||||
return 1;
|
// return 1;
|
||||||
}
|
// }
|
||||||
|
|
||||||
KIT_PRINTF("MQTT Connection Successful!\r\n");
|
// KIT_PRINTF("MQTT Connection Successful!\r\n");
|
||||||
return 0;
|
// return 0;
|
||||||
}
|
//}
|
||||||
|
|
||||||
// 订阅 MQTT 主题
|
// 订阅 MQTT 主题
|
||||||
static uint8_t drv_mqtt_subscribe()
|
static uint8_t drv_mqtt_subscribe()
|
||||||
|
@ -314,17 +328,17 @@ uint8_t drv_mqtt_publish_no_respose(char* str,uint16_t length)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MQTT 初始化
|
// MQTT 初始化
|
||||||
uint8_t drv_mqtt_init()
|
//uint8_t drv_mqtt_init()
|
||||||
{
|
//{
|
||||||
if (drv_mqtt_connect() != 0)
|
// if (drv_mqtt_connect() != 0)
|
||||||
{
|
// {
|
||||||
return 1;
|
// return 1;
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (drv_mqtt_subscribe() != 0)
|
// if (drv_mqtt_subscribe() != 0)
|
||||||
{
|
// {
|
||||||
return 1;
|
// return 1;
|
||||||
}
|
// }
|
||||||
|
|
||||||
return 0;
|
// return 0;
|
||||||
}
|
//}
|
||||||
|
|
Loading…
Reference in New Issue