写了自闭发的一些事件上报
This commit is contained in:
parent
54293c1e73
commit
4742154d0e
|
@ -2,7 +2,7 @@
|
||||||
* @Author: mbw
|
* @Author: mbw
|
||||||
* @Date: 2024-12-09 11:40:04
|
* @Date: 2024-12-09 11:40:04
|
||||||
* @LastEditors: mbw && 1600520629@qq.com
|
* @LastEditors: mbw && 1600520629@qq.com
|
||||||
* @LastEditTime: 2025-05-23 10:34:57
|
* @LastEditTime: 2025-05-23 11:01:23
|
||||||
* @FilePath: \zbf_master_ch584m\bsp\inc\bsp_valve.h
|
* @FilePath: \zbf_master_ch584m\bsp\inc\bsp_valve.h
|
||||||
* @Description:
|
* @Description:
|
||||||
* @
|
* @
|
||||||
|
@ -65,19 +65,19 @@ typedef enum
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
kCmdCfg = 0X01,
|
kCmdCfg = 0X01,
|
||||||
kCmdCloseVavle,
|
kCmdCloseVavle, //关阀
|
||||||
kCmdOpenVavle,
|
kCmdOpenVavle,//开阀
|
||||||
kCmdData,
|
kCmdData,//命令数据(心跳数据)
|
||||||
kValveCmdOverPressure, // 超压关阀
|
kRespOverPressure, // 超压关阀
|
||||||
kValveCmdUnderPressure, // 欠压关阀
|
kRespUnderPressure, // 欠压关阀
|
||||||
kValveCmdOverCurrent, // 过流关阀
|
kRespOverCurrent, // 过流关阀
|
||||||
kValveCmdMicroLeak, // 微漏关阀
|
kRespMicroLeak, // 微漏关阀
|
||||||
kValveCmdTimer, // 定时关阀
|
kRespTimer, // 定时关阀
|
||||||
kValveCmdOpenWithStove, // 开灶开阀
|
kRespOpenWithStove, // 开灶开阀
|
||||||
kValveCmdCloseWithStove, // 关灶关阀
|
kRespCloseWithStove, // 关灶关阀
|
||||||
kValveCmdOverTemperature, // 超温关阀
|
kRespOverTemperature, // 超温关阀
|
||||||
kValveCmdDelayClose, // 延时关阀
|
kRespDelayClose, // 延时关阀
|
||||||
kValveCmdManualClose, // 手动关阀
|
kRespManualClose, // 手动关阀
|
||||||
} TeFrameCmd;
|
} TeFrameCmd;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -121,6 +121,6 @@ int BSP_Bt_Remove_Valve(uint8_t *data, uint8_t len);
|
||||||
int BSP_Bt_Replace_Valve(uint8_t *data, uint8_t len);
|
int BSP_Bt_Replace_Valve(uint8_t *data, uint8_t len);
|
||||||
void BSP_Bt_Valve_Updata(void);
|
void BSP_Bt_Valve_Updata(void);
|
||||||
int BSP_Bt_Remove_All_Valve(void);
|
int BSP_Bt_Remove_All_Valve(void);
|
||||||
int BSP_Bt_Valve_Resp(uint8_t cmd, uint8_t id, uint8_t *mac_addr, uint8_t state);
|
int BSP_Bt_Valve_Resp(ValveCmdType cmd, uint8_t id, uint8_t *mac_addr, uint8_t state);
|
||||||
|
|
||||||
#endif // ! __BSP_VALVE_H__
|
#endif // ! __BSP_VALVE_H__
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: mbw
|
* @Author: mbw
|
||||||
* @Date: 2024-12-06 16:52:30
|
* @Date: 2024-12-06 16:52:30
|
||||||
* @LastEditors: mbw && 1600520629@qq.com
|
* @LastEditors: mbw && 1600520629@qq.com
|
||||||
* @LastEditTime: 2025-05-23 10:35:36
|
* @LastEditTime: 2025-05-23 11:05:49
|
||||||
* @FilePath: \zbf_master_ch584m\bsp\src\bsp_uart.c
|
* @FilePath: \zbf_master_ch584m\bsp\src\bsp_uart.c
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
|
@ -30,7 +30,7 @@
|
||||||
#define UART3_TX_BUFFER_LENGTH 2048U
|
#define UART3_TX_BUFFER_LENGTH 2048U
|
||||||
|
|
||||||
uint8_t bt_recv_start_flag = 0;
|
uint8_t bt_recv_start_flag = 0;
|
||||||
uint8_t bt_recv_end_flag = 0;
|
uint8_t bt_recv_end_flag = 0;
|
||||||
lwrb_t uart1_rx_t;
|
lwrb_t uart1_rx_t;
|
||||||
lwrb_t uart1_tx_t;
|
lwrb_t uart1_tx_t;
|
||||||
uint8_t uart1_tx_buf[UART1_TX_BUFFER_LENGTH] = {0};
|
uint8_t uart1_tx_buf[UART1_TX_BUFFER_LENGTH] = {0};
|
||||||
|
@ -183,7 +183,7 @@ int BSP_Bt_Process(uint8_t *data, uint16_t len)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case kValveCmdRem:
|
case kValveCmdRem:
|
||||||
logDebug("recv cmd: 0x03, 执行的动作是移除阀门");
|
logDebug("recv cmd: 0x03, 移除阀门");
|
||||||
ret = BSP_Bt_Remove_Valve(&data_buf[0], datalength);
|
ret = BSP_Bt_Remove_Valve(&data_buf[0], datalength);
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
{
|
{
|
||||||
|
@ -195,7 +195,7 @@ int BSP_Bt_Process(uint8_t *data, uint16_t len)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case kValveCmdRep:
|
case kValveCmdRep:
|
||||||
logDebug("recv cmd: 0x04, 执行的动作是更换阀门");
|
logDebug("recv cmd: 0x04, 更换阀门");
|
||||||
ret = BSP_Bt_Replace_Valve(&data_buf[0], datalength);
|
ret = BSP_Bt_Replace_Valve(&data_buf[0], datalength);
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
{
|
{
|
||||||
|
@ -207,7 +207,7 @@ int BSP_Bt_Process(uint8_t *data, uint16_t len)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case kValveCmdRemAll:
|
case kValveCmdRemAll:
|
||||||
logDebug("recv cmd: 0x04, 执行的动作是移除所有阀门信息");
|
logDebug("recv cmd: 0x04, 移除所有阀门信息");
|
||||||
ret = BSP_Bt_Remove_All_Valve();
|
ret = BSP_Bt_Remove_All_Valve();
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
{
|
{
|
||||||
|
@ -257,7 +257,7 @@ uint8_t BT_GenerateRawFrame(BTFrameData *pRawData, const uint8_t *p_src, uint8_t
|
||||||
uint16_t BSP_Send_Process(uint8_t *pdata)
|
uint16_t BSP_Send_Process(uint8_t *pdata)
|
||||||
{
|
{
|
||||||
int8_t ret = 0;
|
int8_t ret = 0;
|
||||||
__attribute__((aligned(4))) uint8_t master_rx_buf[64] = {0};
|
uint8_t master_rx_buf[64] = {0};
|
||||||
|
|
||||||
uint8_t found_frame_start = 0;
|
uint8_t found_frame_start = 0;
|
||||||
uint8_t *frame_start = NULL;
|
uint8_t *frame_start = NULL;
|
||||||
|
@ -317,21 +317,61 @@ uint16_t BSP_Send_Process(uint8_t *pdata)
|
||||||
{
|
{
|
||||||
bt_connect_flag = 1;
|
bt_connect_flag = 1;
|
||||||
logDebug("阀门连接成功");
|
logDebug("阀门连接成功");
|
||||||
BSP_Bt_Valve_Resp(kValveConncetStatus, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, TRUE);//表示连接成功
|
BSP_Bt_Valve_Resp(kValveConncetStatus, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, TRUE); // 表示连接成功
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BSP_Bt_Valve_Resp(kValveEventStatus, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, TRUE);
|
BSP_Bt_Valve_Resp(kValveEventStatus, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, TRUE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
//TODO:待完成从机的一些主动上报信息解析
|
// TODO:待完成从机的一些主动上报信息解析
|
||||||
case
|
case kRespOverPressure:
|
||||||
|
logDebug("阀门超压关阀");
|
||||||
|
BSP_Bt_Valve_Resp(kValveCmdOverPressure, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, master_rx_buf[3]);
|
||||||
|
break;
|
||||||
|
case kRespUnderPressure:
|
||||||
|
logDebug("阀门欠压关阀");
|
||||||
|
|
||||||
|
BSP_Bt_Valve_Resp(kValveCmdUnderPressure, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, master_rx_buf[3]);
|
||||||
|
break;
|
||||||
|
case kRespOverCurrent:
|
||||||
|
logDebug("阀门过流关阀");
|
||||||
|
BSP_Bt_Valve_Resp(kValveCmdOverCurrent, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, master_rx_buf[3]);
|
||||||
|
break;
|
||||||
|
case kRespMicroLeak:
|
||||||
|
logDebug("阀门微漏关阀");
|
||||||
|
BSP_Bt_Valve_Resp(kValveCmdMicroLeak, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, master_rx_buf[3]);
|
||||||
|
break;
|
||||||
|
case kRespTimer:
|
||||||
|
logDebug("阀门定时关阀");
|
||||||
|
BSP_Bt_Valve_Resp(kValveCmdTimer, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, master_rx_buf[3]);
|
||||||
|
break;
|
||||||
|
case kRespOpenWithStove:
|
||||||
|
logDebug("开灶关阀");
|
||||||
|
BSP_Bt_Valve_Resp(kValveCmdOpenWithStove, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, master_rx_buf[3]);
|
||||||
|
break;
|
||||||
|
case kRespCloseWithStove:
|
||||||
|
logDebug("关灶关阀");
|
||||||
|
BSP_Bt_Valve_Resp(kValveCmdCloseWithStove, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, master_rx_buf[3]);
|
||||||
|
break;
|
||||||
|
case kRespOverTemperature:
|
||||||
|
logDebug("阀门超温关阀");
|
||||||
|
BSP_Bt_Valve_Resp(kValveCmdOverTemperature, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, master_rx_buf[3]);
|
||||||
|
break;
|
||||||
|
case kRespDelayClose:
|
||||||
|
logDebug("阀门延时关闭");
|
||||||
|
BSP_Bt_Valve_Resp(kValveCmdDelayClose, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, master_rx_buf[3]);
|
||||||
|
break;
|
||||||
|
case kRespManualClose:
|
||||||
|
logDebug("阀门手动关闭");
|
||||||
|
BSP_Bt_Valve_Resp(kValveCmdManualClose, valve_list.valve_data[0].valve_id, valve_list.valve_data[0].valve_mac, master_rx_buf[3]);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
logError("不支持的从机命令: %d", master_rx_buf[1]);
|
logError("不支持的从机命令: %d", master_rx_buf[1]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t BT_ProcessEvent(uint8_t task_id, uint16_t events)
|
uint16_t BT_ProcessEvent(uint8_t task_id, uint16_t events)
|
||||||
|
@ -363,7 +403,7 @@ uint16_t BT_ProcessEvent(uint8_t task_id, uint16_t events)
|
||||||
if (bt_recv_start_flag)
|
if (bt_recv_start_flag)
|
||||||
{
|
{
|
||||||
bt_recv_start_flag = 0;
|
bt_recv_start_flag = 0;
|
||||||
bt_recv_end_flag = 1;
|
bt_recv_end_flag = 1;
|
||||||
tmos_start_task(task_id, BT_REC_EVT, 100);
|
tmos_start_task(task_id, BT_REC_EVT, 100);
|
||||||
}
|
}
|
||||||
tmos_start_task(task_id, BT_REC_EVT_FINISH, 50);
|
tmos_start_task(task_id, BT_REC_EVT_FINISH, 50);
|
||||||
|
@ -375,7 +415,7 @@ uint16_t BT_ProcessEvent(uint8_t task_id, uint16_t events)
|
||||||
if (bt_recv_end_flag)
|
if (bt_recv_end_flag)
|
||||||
{
|
{
|
||||||
bt_recv_end_flag = 0;
|
bt_recv_end_flag = 0;
|
||||||
int len = lwrb_get_full(&uart1_rx_t);
|
int len = lwrb_get_full(&uart1_rx_t);
|
||||||
if (len > 0)
|
if (len > 0)
|
||||||
{
|
{
|
||||||
__attribute__((aligned(4))) uint8_t buf[256] = {0};
|
__attribute__((aligned(4))) uint8_t buf[256] = {0};
|
||||||
|
@ -423,7 +463,7 @@ void BSP_UART1_Init(void)
|
||||||
void BSP_UART3_Init(void)
|
void BSP_UART3_Init(void)
|
||||||
{
|
{
|
||||||
#ifdef DEVICE_TYPE_TYQ_LY
|
#ifdef DEVICE_TYPE_TYQ_LY
|
||||||
GPIOPinRemap(ENABLE, RB_PIN_UART3);
|
GPIOPinRemap(ENABLE, RB_PIN_UART3);
|
||||||
/* 配置串口3:先配置IO口模式,再配置串口 */
|
/* 配置串口3:先配置IO口模式,再配置串口 */
|
||||||
GPIOB_SetBits(UART3_TX_PIN);
|
GPIOB_SetBits(UART3_TX_PIN);
|
||||||
GPIOB_ModeCfg(UART3_RX_PIN, GPIO_ModeIN_PU); // RXD-配置上拉输入
|
GPIOB_ModeCfg(UART3_RX_PIN, GPIO_ModeIN_PU); // RXD-配置上拉输入
|
||||||
|
@ -468,10 +508,10 @@ void UART1_IRQHandler(void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case UART_II_RECV_RDY:
|
case UART_II_RECV_RDY:
|
||||||
case UART_II_RECV_TOUT: // 接收数据
|
case UART_II_RECV_TOUT: // 接收数据
|
||||||
if ((bt_recv_start_flag == 0)&&(bt_recv_end_flag == 0))//用于检测是否是开始接收数据
|
if ((bt_recv_start_flag == 0) && (bt_recv_end_flag == 0)) // 用于检测是否是开始接收数据
|
||||||
{
|
{
|
||||||
bt_recv_start_flag = 1;
|
bt_recv_start_flag = 1;
|
||||||
}
|
}
|
||||||
while (R8_UART1_RFC)
|
while (R8_UART1_RFC)
|
||||||
{
|
{
|
||||||
|
@ -583,7 +623,7 @@ int reboot(void)
|
||||||
{
|
{
|
||||||
PFIC_SystemReset();
|
PFIC_SystemReset();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC),
|
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC),
|
||||||
reboot, reboot, "reboot");
|
reboot, reboot, "reboot");
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
* @Author: mbw
|
* @Author: mbw
|
||||||
* @Date: 2024-12-09 11:40:10
|
* @Date: 2024-12-09 11:40:10
|
||||||
* @LastEditors: mbw && 1600520629@qq.com
|
* @LastEditors: mbw && 1600520629@qq.com
|
||||||
* @LastEditTime: 2025-04-22 15:15:24
|
* @LastEditTime: 2025-05-23 11:08:46
|
||||||
* @FilePath: \ble_-tyq_-bjq_-ch584-m\bsp\src\bsp_valve.c
|
* @FilePath: \zbf_master_ch584m\bsp\src\bsp_valve.c
|
||||||
* @Description:
|
* @Description:
|
||||||
*
|
*
|
||||||
* Copyright (c) 2024 by ${git_name_email}, All Rights Reserved.
|
* Copyright (c) 2024 by ${git_name_email}, All Rights Reserved.
|
||||||
|
@ -14,7 +14,6 @@
|
||||||
#include "bsp_uart.h"
|
#include "bsp_uart.h"
|
||||||
#include "multiCentral.h"
|
#include "multiCentral.h"
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
接收的蓝牙从机info:
|
接收的蓝牙从机info:
|
||||||
接收数据帧格式: 帧头 + 命令 + 数据长度 + 心跳数据包 + 校验码 + 帧尾
|
接收数据帧格式: 帧头 + 命令 + 数据长度 + 心跳数据包 + 校验码 + 帧尾
|
||||||
|
@ -29,7 +28,6 @@
|
||||||
valve_data_list_t valve_list = {0};
|
valve_data_list_t valve_list = {0};
|
||||||
BTFrameData valve_frame_data = {0};
|
BTFrameData valve_frame_data = {0};
|
||||||
|
|
||||||
|
|
||||||
uint8_t Valve_GenerateRawFrame(BTFrameData *pRawData, const uint8_t cmd, const uint8_t *p_src, uint8_t src_len)
|
uint8_t Valve_GenerateRawFrame(BTFrameData *pRawData, const uint8_t cmd, const uint8_t *p_src, uint8_t src_len)
|
||||||
{
|
{
|
||||||
pRawData->len = src_len + 5;
|
pRawData->len = src_len + 5;
|
||||||
|
@ -62,7 +60,6 @@ int BSP_Valve_Ctr(uint8_t valve_id, const uint8_t cmd)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
logDebug("BSP_Valve_Close: valve id: %d", valve_id);
|
logDebug("BSP_Valve_Close: valve id: %d", valve_id);
|
||||||
// TODO:检查是否连接, 如果连接,则发送数据,将关闭阀门指令发送过去,然后等待数据接收响应,如果接收到响应是关闭状态0x01,则返回成功,否则失败
|
|
||||||
if (cmd == kCmdCloseVavle)
|
if (cmd == kCmdCloseVavle)
|
||||||
{
|
{
|
||||||
Valve_GenerateRawFrame(&valve_frame_data, kCmdCloseVavle, &valve_ctr_valve, 1);
|
Valve_GenerateRawFrame(&valve_frame_data, kCmdCloseVavle, &valve_ctr_valve, 1);
|
||||||
|
@ -72,7 +69,6 @@ int BSP_Valve_Ctr(uint8_t valve_id, const uint8_t cmd)
|
||||||
Valve_GenerateRawFrame(&valve_frame_data, kCmdOpenVavle, &valve_ctr_valve, 1);
|
Valve_GenerateRawFrame(&valve_frame_data, kCmdOpenVavle, &valve_ctr_valve, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return BSP_Master_Send(centralConnList, CONNECT0_ITEM, &valve_frame_data.buf[0], valve_frame_data.len);
|
return BSP_Master_Send(centralConnList, CONNECT0_ITEM, &valve_frame_data.buf[0], valve_frame_data.len);
|
||||||
}
|
}
|
||||||
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC),
|
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC),
|
||||||
|
@ -105,7 +101,7 @@ int BSP_Bt_Valve_Ctr(uint8_t *data, uint8_t len)
|
||||||
/*如果到这里了,说明ID和MAC地址对应没问题,则控制对应阀门*/
|
/*如果到这里了,说明ID和MAC地址对应没问题,则控制对应阀门*/
|
||||||
if (data[7] == WirelessValveClose)
|
if (data[7] == WirelessValveClose)
|
||||||
{
|
{
|
||||||
logDebug("recv cmd: 0x01, 执行的动作是关闭阀门");
|
logDebug("recv cmd: 0x01, 执行的动作是关闭阀门");
|
||||||
return BSP_Valve_Ctr(data[0], kCmdCloseVavle);
|
return BSP_Valve_Ctr(data[0], kCmdCloseVavle);
|
||||||
}
|
}
|
||||||
else if (data[7] == WirelessValveOpen)
|
else if (data[7] == WirelessValveOpen)
|
||||||
|
@ -157,7 +153,7 @@ int BSP_Bt_Register_Valve(uint8_t *data, uint8_t len)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
uint8_t num = Flash_Get_Valve_Num();
|
uint8_t num = Flash_Get_Valve_Num();
|
||||||
Flash_Set_Valve_Num(num + 1);
|
Flash_Set_Valve_Num(num + 1);
|
||||||
BSP_Bt_Valve_Updata(); // 更新阀门信息
|
BSP_Bt_Valve_Updata(); // 更新阀门信息
|
||||||
}
|
}
|
||||||
|
@ -176,7 +172,7 @@ int BSP_Bt_Remove_Valve(uint8_t *data, uint8_t len)
|
||||||
{
|
{
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
uint8_t mac_addr[FLASH_MAC_INFO_LEN + 2] = {0};
|
uint8_t mac_addr[FLASH_MAC_INFO_LEN + 2] = {0};
|
||||||
if ((data[0] >= 1) && (data[0] <= 8))// 判断是否是正确的ID
|
if ((data[0] >= 1) && (data[0] <= 8)) // 判断是否是正确的ID
|
||||||
{
|
{
|
||||||
Flash_Get_Mac_Addr(mac_addr, data[0]);
|
Flash_Get_Mac_Addr(mac_addr, data[0]);
|
||||||
}
|
}
|
||||||
|
@ -186,10 +182,10 @@ int BSP_Bt_Remove_Valve(uint8_t *data, uint8_t len)
|
||||||
logHexDumpAll(data, len);
|
logHexDumpAll(data, len);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (tmos_memcmp(&data[1], mac_addr, FLASH_MAC_INFO_LEN) != TRUE)// 判断是否是相同的MAC地址
|
if (tmos_memcmp(&data[1], mac_addr, FLASH_MAC_INFO_LEN) != TRUE) // 判断是否是相同的MAC地址
|
||||||
{
|
{
|
||||||
logError("mac addr error");
|
logError("mac addr error");
|
||||||
logHexDumpAll(data, len);
|
logHexDumpAll(data, len);
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -198,10 +194,10 @@ int BSP_Bt_Remove_Valve(uint8_t *data, uint8_t len)
|
||||||
if (Flash_Set_Mac_Addr(mac_addr, data[0]) != 0) // 清空掉对应位置MAC数据
|
if (Flash_Set_Mac_Addr(mac_addr, data[0]) != 0) // 清空掉对应位置MAC数据
|
||||||
{
|
{
|
||||||
logError("移除阀门信息失败");
|
logError("移除阀门信息失败");
|
||||||
logHexDumpAll(data, len);
|
logHexDumpAll(data, len);
|
||||||
return -2;
|
return -2;
|
||||||
}
|
}
|
||||||
uint8_t num = Flash_Get_Valve_Num();
|
uint8_t num = Flash_Get_Valve_Num();
|
||||||
if (Flash_Set_Valve_Num(num - 1) != 0) // 移除一个阀门
|
if (Flash_Set_Valve_Num(num - 1) != 0) // 移除一个阀门
|
||||||
{
|
{
|
||||||
logError("移除阀门信息失败");
|
logError("移除阀门信息失败");
|
||||||
|
@ -219,8 +215,8 @@ int BSP_Bt_Remove_Valve(uint8_t *data, uint8_t len)
|
||||||
int BSP_Bt_Remove_All_Valve(void)
|
int BSP_Bt_Remove_All_Valve(void)
|
||||||
{
|
{
|
||||||
uint8_t mac_addr[FLASH_MAC_INFO_LEN + 2] = {0};
|
uint8_t mac_addr[FLASH_MAC_INFO_LEN + 2] = {0};
|
||||||
uint8_t num = Flash_Get_Valve_Num();
|
uint8_t num = Flash_Get_Valve_Num();
|
||||||
if(num == 0)
|
if (num == 0)
|
||||||
{
|
{
|
||||||
logError("没有找到任何阀门信息");
|
logError("没有找到任何阀门信息");
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -248,7 +244,7 @@ int BSP_Bt_Replace_Valve(uint8_t *data, uint8_t len)
|
||||||
uint8_t mac_addr[FLASH_MAC_INFO_LEN] = {0};
|
uint8_t mac_addr[FLASH_MAC_INFO_LEN] = {0};
|
||||||
logDebug("更换阀门信息:");
|
logDebug("更换阀门信息:");
|
||||||
logHexDumpAll(data, len);
|
logHexDumpAll(data, len);
|
||||||
if ((len == 0) || (len < 13))//新旧MAC地址长度加id 6 + 6 + 1 = 13至少要大于12
|
if ((len == 0) || (len < 13)) // 新旧MAC地址长度加id 6 + 6 + 1 = 13至少要大于12
|
||||||
{
|
{
|
||||||
logError("data len error");
|
logError("data len error");
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -269,14 +265,14 @@ int BSP_Bt_Replace_Valve(uint8_t *data, uint8_t len)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//新阀门数据在前
|
// 新阀门数据在前
|
||||||
if (Flash_Set_Mac_Addr(&data[1], data[0]) != 0)
|
if (Flash_Set_Mac_Addr(&data[1], data[0]) != 0)
|
||||||
{
|
{
|
||||||
logError("阀门注册写入flash 错误");
|
logError("阀门注册写入flash 错误");
|
||||||
return 3;
|
return 3;
|
||||||
}
|
}
|
||||||
BSP_Bt_Valve_Updata(); // 更新阀门信息
|
BSP_Bt_Valve_Updata(); // 更新阀门信息
|
||||||
Master_DisConnect();//更新后先断联接
|
Master_DisConnect(); // 更新后先断联接
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -285,9 +281,9 @@ int BSP_Bt_Replace_Valve(uint8_t *data, uint8_t len)
|
||||||
void BSP_Bt_Valve_Updata(void)
|
void BSP_Bt_Valve_Updata(void)
|
||||||
{
|
{
|
||||||
uint8_t cnt = 0;
|
uint8_t cnt = 0;
|
||||||
uint8_t mac[6] = {0};
|
uint8_t mac[6] = {0};
|
||||||
|
|
||||||
uint8_t num = Flash_Get_Valve_Num();
|
uint8_t num = Flash_Get_Valve_Num();
|
||||||
logInfo("BSP_Bt_Valve_Updata num: %d ", num);
|
logInfo("BSP_Bt_Valve_Updata num: %d ", num);
|
||||||
if (num == 0)
|
if (num == 0)
|
||||||
{
|
{
|
||||||
|
@ -319,11 +315,10 @@ void BSP_Bt_Valve_Updata(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Flash_Set_Valve_Num(valve_list.valve_num);
|
Flash_Set_Valve_Num(valve_list.valve_num);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//蓝牙主机对报警器的响应函数。 state表示此对应的项目,可能是执行成功与否,可能是蓝牙连接状态码,具体参考对应的case
|
// 蓝牙主机对报警器的响应函数。 state表示此对应的项目,可能是执行成功与否,可能是蓝牙连接状态码,具体参考对应的case
|
||||||
int BSP_Bt_Valve_Resp(uint8_t cmd, uint8_t id, uint8_t *mac_addr, uint8_t state)
|
int BSP_Bt_Valve_Resp(ValveCmdType cmd, uint8_t id, uint8_t *mac_addr, uint8_t state)
|
||||||
{
|
{
|
||||||
uint8_t ret = 0;
|
uint8_t ret = 0;
|
||||||
BtData_t *ptr = (BtData_t *)tmos_msg_allocate(sizeof(valve_data));
|
BtData_t *ptr = (BtData_t *)tmos_msg_allocate(sizeof(valve_data));
|
||||||
|
@ -334,6 +329,16 @@ int BSP_Bt_Valve_Resp(uint8_t cmd, uint8_t id, uint8_t *mac_addr, uint8_t state)
|
||||||
case kValveCmdReg:
|
case kValveCmdReg:
|
||||||
case kValveCmdRem:
|
case kValveCmdRem:
|
||||||
case kValveCmdRep:
|
case kValveCmdRep:
|
||||||
|
// TODO:待完成从机的一些主动上报信息解析
|
||||||
|
case kValveCmdOverPressure:
|
||||||
|
case kValveCmdUnderPressure:
|
||||||
|
case kValveCmdOverCurrent:
|
||||||
|
case kValveCmdMicroLeak:
|
||||||
|
case kValveCmdTimer:
|
||||||
|
case kValveCmdOpenWithStove:
|
||||||
|
case kValveCmdCloseWithStove:
|
||||||
|
case kValveCmdOverTemperature:
|
||||||
|
case kValveCmdDelayClose:
|
||||||
ptr->buf[0] = id;
|
ptr->buf[0] = id;
|
||||||
tmos_memcpy(&ptr->buf[1], mac_addr, 6);
|
tmos_memcpy(&ptr->buf[1], mac_addr, 6);
|
||||||
ptr->buf[26] = state;
|
ptr->buf[26] = state;
|
||||||
|
@ -350,10 +355,11 @@ int BSP_Bt_Valve_Resp(uint8_t cmd, uint8_t id, uint8_t *mac_addr, uint8_t state)
|
||||||
case kValveConncetStatus:
|
case kValveConncetStatus:
|
||||||
ptr->buf[0] = id;
|
ptr->buf[0] = id;
|
||||||
tmos_memcpy(&ptr->buf[1], mac_addr, 6);
|
tmos_memcpy(&ptr->buf[1], mac_addr, 6);
|
||||||
ptr->buf[7] = state; //0表示断开,1表示连接
|
ptr->buf[7] = state; // 0表示断开,1表示连接
|
||||||
logDebug("连接状态:%d", ptr->buf[7]);
|
logDebug("连接状态:%d", ptr->buf[7]);
|
||||||
BT_GenerateRawFrame(&valve_frame_data, (uint8_t *)ptr, 9);
|
BT_GenerateRawFrame(&valve_frame_data, (uint8_t *)ptr, 9);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue