修改了连接问题

This commit is contained in:
小马_666 2024-12-16 20:47:16 +08:00
parent 9d155d5ff1
commit c05218c91c
3 changed files with 47 additions and 34 deletions

View File

@ -715,8 +715,8 @@ static void centralEventCB(gapRoleEvent_t *pEvent)
case GAP_DEVICE_INIT_DONE_EVENT:
{
GAPRole_CentralCancelDiscovery();
logDebug("停止扫描,发起直连\r\n");
tmos_start_task(MasterCtrTaskId, MASTER_CONNECT_EVT, 800);
// logDebug("停止扫描,发起直连\r\n");
// tmos_start_task(MasterCtrTaskId, MASTER_CONNECT_EVT, 800);
}
break;
case GAP_DEVICE_INFO_EVENT:
@ -1188,7 +1188,7 @@ int BSP_Master_Send(centralConnItem_t *centralConnList, uint8_t id, uint8_t *Dat
}
else
{
logError("no BLE_STATE_CONNECTED");
logError("没有连接成功");
ret = 4;
}
return ret;
@ -1263,7 +1263,7 @@ int BSP_Master_Receive_Data(uint8_t task_id, uint8_t *data, uint16_t len)
}
else if (data[index + 1] == kValveCmdRep) // 这个是代表了其是心跳数据包
{
logDebug("BT 心跳数据包:");
logDebug("蓝牙从机心跳数据包:");
logHexDumpAll(data, data_len);
}
// 到这一步说明数据没问题,将接收到的数据通过中心任务发送出去
@ -1284,23 +1284,23 @@ void Master_Connect(void)
uint8_t def_mac[6] = {0xFF};
uint8_t cnt = Flash_Get_Valve_Num();
logDebug("cnt:%d\r\n", cnt);
if (cnt == 0)
{
GAPRole_CentralEstablishLink(DEFAULT_LINK_HIGH_DUTY_CYCLE,
DEFAULT_LINK_WHITE_LIST,
ADDRTYPE_PUBLIC,
def_mac);
tmos_start_task(centralTaskId, ESTABLISH_LINK_TIMEOUT_EVT, ESTABLISH_LINK_TIMEOUT);
// if (cnt == 0)
// {
// GAPRole_CentralEstablishLink(DEFAULT_LINK_HIGH_DUTY_CYCLE,
// DEFAULT_LINK_WHITE_LIST,
// ADDRTYPE_PUBLIC,
// def_mac);
// tmos_start_task(centralTaskId, ESTABLISH_LINK_TIMEOUT_EVT, ESTABLISH_LINK_TIMEOUT);
// uint8_t mac_addr[6] = {0x93, 0xB4, 0x8F, 0x10, 0x53, 0x5C};
// logHexDumpAll(mac_addr, 6);
// GAPRole_CentralEstablishLink(DEFAULT_LINK_HIGH_DUTY_CYCLE,
// DEFAULT_LINK_WHITE_LIST,
// ADDRTYPE_PUBLIC,
// mac_addr);
// tmos_start_task(centralTaskId, ESTABLISH_LINK_TIMEOUT_EVT, ESTABLISH_LINK_TIMEOUT);
return;
}
// // uint8_t mac_addr[6] = {0x93, 0xB4, 0x8F, 0x10, 0x53, 0x5C};
// // logHexDumpAll(mac_addr, 6);
// // GAPRole_CentralEstablishLink(DEFAULT_LINK_HIGH_DUTY_CYCLE,
// // DEFAULT_LINK_WHITE_LIST,
// // ADDRTYPE_PUBLIC,
// // mac_addr);
// // tmos_start_task(centralTaskId, ESTABLISH_LINK_TIMEOUT_EVT, ESTABLISH_LINK_TIMEOUT);
// return;
// }
for (uint8_t i = 0; i < cnt; i++)
{
@ -1321,6 +1321,7 @@ void Master_Connect(void)
void Master_DisConnect(void)
{
GAPRole_TerminateLink(centralConnList[0].connHandle);
// centralConnList[0].state = BLE_STATE_IDLE;
logDebug("主动断开连接\r\n");
}
@ -1333,10 +1334,15 @@ uint16_t Master_ProcessEvent(uint8_t task_id, uint16_t events)
{
if (centralConnList[0].state != BLE_STATE_CONNECTED)
{
if (Flash_Get_Valve_Num())
if (Flash_Get_Valve_Num())//如果有设备,发起连接
{
tmos_start_task(task_id, MASTER_CONNECT_EVT, 2400);
}
else//没有则开启定时检测
{
logDebug("没有设备,开启定时检测\r\n");
tmos_start_task(task_id, MASTER_DETECT_EVT, 2400);
}
}
return (events ^ MASTER_START_EVT);
}
@ -1344,23 +1350,21 @@ uint16_t Master_ProcessEvent(uint8_t task_id, uint16_t events)
{
if (centralConnList[0].state != BLE_STATE_CONNECTED)
{
tmos_start_task(task_id, MASTER_CONNECT_EVT, 2400);
}
else
{
tmos_start_task(task_id, MASTER_DETECT_EVT, 2400);
if (Flash_Get_Valve_Num())
{
logDebug("有设备,尝试连接\r\n");
tmos_start_task(task_id, MASTER_CONNECT_EVT, 2400);
}
}
tmos_start_task(task_id, MASTER_DETECT_EVT, 2400);
return (events ^ MASTER_DETECT_EVT);
}
else if (events & MASTER_CONNECT_EVT)
{
if (centralConnList[0].state != BLE_STATE_CONNECTED)
{
Master_Connect();
tmos_start_task(task_id, MASTER_DETECT_EVT, 2400);
}
return (events ^ MASTER_CONNECT_EVT);
}

View File

@ -2,7 +2,7 @@
* @Author: mbw
* @Date: 2024-12-06 16:52:30
* @LastEditors: mbw && 1600520629@qq.com
* @LastEditTime: 2024-12-16 16:01:21
* @LastEditTime: 2024-12-16 20:03:21
* @FilePath: \ble_-tyq_-bjq_-ch584-m\bsp\src\bsp_uart.c
* @Description:
*
@ -227,7 +227,7 @@ uint8_t BT_GenerateRawFrame(BTFrameData *pRawData, const uint8_t *p_src, uint8_t
pRawData->buf[pRawData->len - 2] = _CheckSum(&pRawData->buf[0], pRawData->len - 2);
pRawData->buf[pRawData->len - 1] = 0X55;
logInfo("BT_GenerateRawFrame");
logInfo("蓝牙主机发送数据给报警器:");
logHexDumpAll(&pRawData->buf[0], pRawData->len);
return 0;
@ -324,7 +324,6 @@ uint16_t BT_ProcessEvent(uint8_t task_id, uint16_t events)
{
lwrb_reset(&uart1_rx_t);
lwrb_reset(&uart1_tx_t);
tmos_start_task(task_id, BT_INFO_UPDATA_EVT, 0);
tmos_start_task(task_id, BT_REC_EVT, 800);
return (events ^ BT_START_EVT);

View File

@ -2,7 +2,7 @@
* @Author: mbw
* @Date: 2024-12-09 11:40:10
* @LastEditors: mbw && 1600520629@qq.com
* @LastEditTime: 2024-12-16 19:11:35
* @LastEditTime: 2024-12-16 20:35:38
* @FilePath: \ble_-tyq_-bjq_-ch584-m\bsp\src\bsp_valve.c
* @Description:
*
@ -114,6 +114,11 @@ int BSP_Bt_Register_Valve(uint8_t *data, uint8_t len)
return 1;
}
if (tmos_isbufset(&data[1], 0, FLASH_MAC_INFO_LEN) == TRUE)
{
logError("阀门写值错误为0");
return 1;
}
logDebug("注册阀门信息:");
if (tmos_memcmp(&data[1], mac_addr, FLASH_MAC_INFO_LEN) == TRUE)
{
@ -136,6 +141,7 @@ int BSP_Bt_Register_Valve(uint8_t *data, uint8_t len)
uint8_t num = Flash_Get_Valve_Num();
Flash_Set_Valve_Num(num + 1);
BSP_Bt_Valve_Updata(); // 更新阀门信息
}
}
else
@ -231,6 +237,10 @@ void BSP_Bt_Valve_Updata(void)
uint8_t num = Flash_Get_Valve_Num();
logInfo("BSP_Bt_Valve_Updata num: %d ", num);
if (num == 0)
{
return;
}
tmos_memset(&valve_list, 0, sizeof(valve_data_list_t));