From f31113434fd814a0987a581ca3b97f28ff836cbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E9=A9=AC=5F666?= <13089258+pony-six-hundred-and-sixty-six@user.noreply.gitee.com> Date: Wed, 9 Apr 2025 14:25:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=B8=80=E6=AC=A1=E6=9A=82?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/inc/bsp_bt.h | 9 +++++---- bsp/src/bsp_bt.c | 13 ++++++++----- bsp/src/bsp_flash.c | 1 - 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/bsp/inc/bsp_bt.h b/bsp/inc/bsp_bt.h index c70436b..b676efb 100644 --- a/bsp/inc/bsp_bt.h +++ b/bsp/inc/bsp_bt.h @@ -46,11 +46,12 @@ typedef enum typedef enum { kValveEventCtr = 0x01, - kValveEventReg, - kValveEventRem, - kValveEventRep, - kValveEventRemAll, + kValveEventReg,//阀门注册 + kValveEventRem,//阀门移除 + kValveEventRep,//阀门更换 + kValveEventRemAll,//移除所有,此时不看阀门是否对应,直接删除全部 kValveEventStatus, + kValveEventConnect,//阀门连接状态发生改变,未实现 kValveEventMax }ValveEventType; diff --git a/bsp/src/bsp_bt.c b/bsp/src/bsp_bt.c index 7a64e37..3fd1d6c 100644 --- a/bsp/src/bsp_bt.c +++ b/bsp/src/bsp_bt.c @@ -2,7 +2,7 @@ * @Author: mbw * @Date: 2024-12-03 10:31:45 * @LastEditors: mbw && 1600520629@qq.com - * @LastEditTime: 2025-01-04 16:49:26 + * @LastEditTime: 2025-04-08 16:04:01 * @FilePath: \ble_bjq_ch303rct6_ml307\bsp\src\bsp_bt.c * @Description: * @@ -371,7 +371,9 @@ int BSP_Bt_Process(uint8_t *data, uint16_t len) LOG_HEX("valve_data:", 16, (rt_uint8_t *)&valve[data_buf[3] - 1], sizeof(struct valve_t)); break; - + case kValveEventConnect: + + break; default: LOG_W("unknow cmd: %02X", data[index + 2]); break; @@ -386,9 +388,9 @@ static void BSP_Bt_Parse_Data(void) char *rx_ptr = rt_malloc(len + 1); // rt_uint8_t bt_rx_buf[256] = {0}; - BSP_Bt_Recv_Data(rx_ptr, len); + BSP_Bt_Recv_Data((uint8_t *)rx_ptr, len); // 发送过来的数据格式为:帧头 + 数据长度 + 事件类型 + 数据 + 校验码 + 帧尾 - BSP_Bt_Process(rx_ptr, len); + BSP_Bt_Process((uint8_t *)rx_ptr, len); rt_free(rx_ptr); } @@ -408,7 +410,7 @@ void BSP_Bt_Valve_Updata(void) for (int i = 1; i <= MAX_VALVE_NUM; i++) // 这个循环是为了将数据拷贝到valve_list中, 并且保证id号和flash对应起来 { - if (Flash_Get_Mac_Addr(mac, i) == 0) // 说明有MAC数据 + if (Flash_Get_Mac_Addr(mac, i) == RT_EOK) // 说明有MAC数据 { rt_memcpy(valve[cnt].valve_mac, mac, 6); // 这样做的目的就是读取方便,只需要根据flash中读取到的数量进行读取前N个值 valve[cnt].valve_id = i; @@ -499,6 +501,7 @@ int BSP_Bt_Init(void) if (rt_device_set_rx_indicate(rt_bt_device, Bt_Rcv_Cb) != RT_EOK) { LOG_E("rt_device_set_rx_indicate failed!\n"); + return RT_ERROR; } /* 静态初始化线程 1*/ diff --git a/bsp/src/bsp_flash.c b/bsp/src/bsp_flash.c index 5a72a51..44538d1 100644 --- a/bsp/src/bsp_flash.c +++ b/bsp/src/bsp_flash.c @@ -340,7 +340,6 @@ int Flash_Set_Mac_Addr(rt_uint8_t *mac_addr, rt_uint8_t number) rt_uint8_t page_buf[FLASH_PAGE_SIZE] = {0}; rt_uint8_t in_page_offset = ((FLASH_VALVE_1_MAC_ADDR_ADDR + (number - 1) * FLASH_VALVE_MAC_ADDR_LEN) - FLASH_CONFIG_INFO_START_ADDR); LOG_D("FLASH_VALVE_1_MAC_ADDR_ADDR = %X", FLASH_VALVE_1_MAC_ADDR_ADDR); - LOG_D("FLASH_VALVE_MAC_ADDR_LEN = %d", in_page_offset); if (mac_addr == RT_NULL) { return -RT_ERROR;