From 90cfd7155c7239844a6dfee3e088031000494382 Mon Sep 17 00:00:00 2001 From: stark1898y <1658608470@qq.com> Date: Sat, 22 Feb 2025 17:22:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98=EF=BC=8C=E8=A6=81=E4=BB=8Ech?= =?UTF-8?q?592=E5=B7=A5=E7=A8=8B=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cproject | 774 ++++++++++++++++++++++++++++--------- .project | 67 ++-- .template | 23 ++ APP/peripheral.c | 6 +- APP/peripheral_main.c | 97 +++-- BLE_TYQ_CH584M.launch | 62 +++ BLE_TYQ_CH584M.wvproj | Bin 202 -> 22278 bytes BSP/inc/bsp_beep_led_emv.h | 22 +- BSP/inc/bsp_key.h | 5 +- BSP/src/bsp_adc.c | 4 +- BSP/src/bsp_key.c | 32 +- BSP/src/bsp_valve.c | 36 +- HAL/include/CONFIG.h | 2 +- LIB/CH58xBLE_LIB.h | 116 +++--- 14 files changed, 898 insertions(+), 348 deletions(-) create mode 100644 BLE_TYQ_CH584M.launch diff --git a/.cproject b/.cproject index ad4ad56..976b44e 100644 --- a/.cproject +++ b/.cproject @@ -1,181 +1,597 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.project b/.project index ec429be..f22289c 100644 --- a/.project +++ b/.project @@ -1,37 +1,34 @@ - BLE_TYQ_CH584M - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - - - 1602468250279 - - 22 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-*.wvproj - - - - + BLE_TYQ_CH584M + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + + + 6 + + org.eclipse.ui.ide.multiFilter + 1.0-name-matches-false-false-*.wvproj + + + + \ No newline at end of file diff --git a/.template b/.template index e69de29..9298c60 100644 --- a/.template +++ b/.template @@ -0,0 +1,23 @@ +Vendor=WCH +Toolchain=RISC-V +Series=CH585 +RTOS=NoneOS +MCU=CH584M +Link=WCH-Link +PeripheralVersion=1.0 +Description= +Mcu Type=CH584/5 +Address=0x00000000 +Target Path= +Exe Path= +Exe Arguments= +CLKSpeed=1 +DebugInterfaceMode=0 +Erase All=false +Program=false +Verify=false +Reset=false +SDIPrintf=false +Disable Power Output=false +Clear CodeFlash=false +Disable Code-Protect=false \ No newline at end of file diff --git a/APP/peripheral.c b/APP/peripheral.c index 7fa91a2..4c9a9f9 100644 --- a/APP/peripheral.c +++ b/APP/peripheral.c @@ -723,6 +723,7 @@ static void peripheralStateNotificationCB(gapRole_States_t newState, gapRoleEven */ static void performPeriodicTask(void) { + gValveData.bat = BSP_ReadVbat(); BSP_BlockSleep(); @@ -759,10 +760,11 @@ static void performPeriodicTask(void) logError("Read TempHumi Err"); return; } + #if 0 logDebug("switch_status:%d Temp:%d Bat:%d Humi:%d%% RSSI: %d" , gValveData.switch_status, gValveData.temp, gValveData.bat, gValveData.humi, gValveData.rssi); - + #endif TsRawFrameData RawData; BSP_VALVE_Generate_UploadData(&RawData); @@ -782,6 +784,7 @@ static void performPeriodicTask(void) */ static void peripheralChar4Notify(uint8_t *pValue, uint16_t len) { + #if 1 attHandleValueNoti_t noti; if (len > (peripheralMTU - 3)) { @@ -803,6 +806,7 @@ static void peripheralChar4Notify(uint8_t *pValue, uint16_t len) logDebug("Noti Success"); } } + #endif } /********************************************************************* diff --git a/APP/peripheral_main.c b/APP/peripheral_main.c index b4f6302..134e858 100644 --- a/APP/peripheral_main.c +++ b/APP/peripheral_main.c @@ -129,50 +129,80 @@ void app_task_handler(TeAppEvtType app_evt_type) // BSP_BlockSleep(); BSP_RequestBoost(); - switch (app_evt_type) + switch(app_evt_type) { - case kKeyShort: - logDebug("button short press"); - BSP_RequestBoost(); - LED_R_ON; - - break; - - case kKeyLong: - logDebug("button long press"); - logDebug("kOpened-->kClosed"); - gValveData.switch_status = kClosed; - tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT); - + case kKeyShort: + logDebug("button short press"); + key_press_cnt++; + logDebug("key_press_cnt = %d", key_press_cnt); + if (key_press_cnt == 1) + { + logDebug("LED显示状态"); // tmos_set_event(led_task_id, LED_SHOW_START_EVT); BSP_BlockSleep(); BSP_RequestBoost(); DelayMs(1); ShowLed(); + // tmos_stop_task(led_task_id, LED_SHOW_ONCE_EVT); + // tmos_start_task(led_task_id, LED_SHOW_ONCE_EVT, 1000); + } + else if (key_press_cnt == 2) + { + if (gValveData.switch_status == kClosed) + { + logDebug("kClosed-->kOpened"); + // tmos_set_event(led_task_id, LED_SHOW_START_EVT); + gValveData.switch_status = kOpened; + BSP_BlockSleep(); + BSP_RequestBoost(); + DelayMs(1); + ShowLed(); + // tmos_stop_task(led_task_id, LED_SHOW_ONCE_EVT); + // tmos_start_task(led_task_id, LED_SHOW_ONCE_EVT, 1000); + } + else if (gValveData.switch_status != kClosed) + { + logDebug("kOpened-->kClosed"); + gValveData.switch_status = kClosed; + tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT); - break; - case kKeyRelease: - // BSP_KEY_EnterLowpower(); - // DelayMs(10); - key_press_cnt = 0; - // BSP_RequestSleep(); - // tmos_set_event(led_task_id, LED_SHOW_END_EVT); + // tmos_set_event(led_task_id, LED_SHOW_START_EVT); + BSP_BlockSleep(); + BSP_RequestBoost(); + DelayMs(1); + ShowLed(); + // tmos_stop_task(led_task_id, LED_SHOW_ONCE_EVT); + // tmos_start_task(led_task_id, LED_SHOW_ONCE_EVT, 1000); + } + } + break; - LED_ALL_OFF_DEINIT; - BEEP_OFF_DEINIT; + case kKeyLong: + logDebug("button long press"); - BSP_NoNeedBoost(); - BSP_RequestSleep(); + break; + case kKeyRelease: + // BSP_KEY_EnterLowpower(); + // DelayMs(10); + key_press_cnt = 0; + // BSP_RequestSleep(); + // tmos_set_event(led_task_id, LED_SHOW_END_EVT); - logDebug("gpio relase;BSP_RequestSleep"); - break; - default: - break; + LED_ALL_OFF_DEINIT; + BEEP_OFF_DEINIT; + + BSP_NoNeedBoost(); + BSP_RequestSleep(); + + logDebug("gpio relase;BSP_RequestSleep"); + + break; + default: + break; } } #endif - /********************************************************************* * @fn Main_Circulation * @@ -241,13 +271,14 @@ int main(void) logDebug("Start @ChipID=%02X\n", R8_CHIP_ID); logError("中文测试 %2.2f", 123.456); #endif + + CH58x_BLEInit(); + LED_R_ON; DelayMs(500); BSP_BEEP_LED_EMV_Init(); - CH58x_BLEInit(); - logDebug("%s\n", VER_LIB); uint8_t MacAddr[6]; GetMACAddress(MacAddr); @@ -283,7 +314,7 @@ int main(void) BSP_RequestBoost(); DelayMs(1); ShowLed(); - // BEEP_ON; + BEEP_ON; DelayMs(1000 * 1); diff --git a/BLE_TYQ_CH584M.launch b/BLE_TYQ_CH584M.launch new file mode 100644 index 0000000..42aa22a --- /dev/null +++ b/BLE_TYQ_CH584M.launch @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BLE_TYQ_CH584M.wvproj b/BLE_TYQ_CH584M.wvproj index 02d84e695ff5691ab6b468e95a367d3f08c81b78..f89e9e98bd812a9d82d225d92e37c932b0b23255 100644 GIT binary patch literal 22278 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 literal 202 zcmV;*05$&zW0R4mN*`eo!Y&tKE2k4$T|ZEBq7D&UmNb7*U1_0`se+k(zIcxdwK_x> ziGp38F(rz3O0)tTDX7IrdMkz)sF4z{DGVtZG>;%kT0+5RFHJD9bBF?}IWI&2M1vKU zxk8~5Edj$(i=fB93Nu+FSt$jsfSz=eZEIgMKQ&Z|LQ?{2S5X>%S5YJ}jY*3vEe~EA zJ)x{^22xW_rjLaKPB)msqac|abWaSuZikvEm!n^grM7N>s;6u$A4^toDsym$1&q8u EymtRf-v9sr diff --git a/BSP/inc/bsp_beep_led_emv.h b/BSP/inc/bsp_beep_led_emv.h index d338d7e..0f1c1f8 100644 --- a/BSP/inc/bsp_beep_led_emv.h +++ b/BSP/inc/bsp_beep_led_emv.h @@ -2,7 +2,7 @@ * @Author : stark1898y 1658608470@qq.com * @Date : 2024-12-09 09:50:56 * @LastEditors : stark1898y 1658608470@qq.com - * @LastEditTime : 2024-12-30 10:46:06 + * @LastEditTime : 2025-02-21 18:19:03 * @FilePath : \BLE_TYQ_CH584M\BSP\inc\bsp_beep_led_emv.h * @Description : * @@ -26,34 +26,34 @@ extern tmosTaskID led_task_id; #define HIGH_TEMP_EVT (0x0001 << 5) -/**********************BOOST 12V_EN PB15************************ */ +/**********************BOOST 12V_EN PA1************************ */ #define BOOST_EN \ do \ { \ - GPIOB_SetBits(GPIO_Pin_15); \ - GPIOB_ModeCfg(GPIO_Pin_15, GPIO_ModeOut_PP_5mA); \ + GPIOA_SetBits(GPIO_Pin_1); \ + GPIOA_ModeCfg(GPIO_Pin_1, GPIO_ModeOut_PP_5mA); \ } while (0); #define BOOST_OFF_DEINIT \ do \ { \ - GPIOB_ResetBits(GPIO_Pin_15); \ - GPIOB_ModeCfg(GPIO_Pin_15, GPIO_ModeIN_PD); \ + GPIOA_ResetBits(GPIO_Pin_1); \ + GPIOA_ModeCfg(GPIO_Pin_1, GPIO_ModeIN_PD); \ } while (0); -/***********************BEEP PB1************************ */ +/***********************BEEP PA0************************ */ #define BEEP_ON \ do \ { \ - GPIOB_SetBits(GPIO_Pin_1); \ - GPIOB_ModeCfg(GPIO_Pin_1, GPIO_ModeOut_PP_5mA);\ + GPIOA_SetBits(GPIO_Pin_0); \ + GPIOA_ModeCfg(GPIO_Pin_0, GPIO_ModeOut_PP_5mA);\ } while (0); #define BEEP_OFF_DEINIT \ do \ { \ - GPIOB_ResetBits(GPIO_Pin_1); \ - GPIOB_ModeCfg(GPIO_Pin_1, GPIO_ModeIN_Floating); \ + GPIOA_ResetBits(GPIO_Pin_0); \ + GPIOA_ModeCfg(GPIO_Pin_0, GPIO_ModeIN_Floating); \ } while (0); /***********************LED************************ */ diff --git a/BSP/inc/bsp_key.h b/BSP/inc/bsp_key.h index da05697..f5380e2 100644 --- a/BSP/inc/bsp_key.h +++ b/BSP/inc/bsp_key.h @@ -1,7 +1,7 @@ #ifndef __BSP_KEY_H__ #define __BSP_KEY_H__ -#include "CONFIG.h" +// #include "CONFIG.h" #include #include @@ -15,8 +15,9 @@ #define KEY_RELEASE_EVT (0x0001 << 2) #define KEY_IDLE_TIMEOUT_EVT (0x0001 << 3) -// KEY_B_PIN at PB0,low->active +// KEY_B_PIN at PB0, low->active #define KEY_B_PIN GPIO_Pin_0 +// #define KEY_B_PIN GPIO_Pin_0 #define IS_KEY_Vaild() ((GPIOB_ReadPortPin(KEY_B_PIN) ? 0 : 1)) diff --git a/BSP/src/bsp_adc.c b/BSP/src/bsp_adc.c index fb7c1b9..44f7a7a 100644 --- a/BSP/src/bsp_adc.c +++ b/BSP/src/bsp_adc.c @@ -63,7 +63,7 @@ void BSP_ADC_Init(void) #endif logDebug("ADC init"); -#if 1 +#if 0 // ±10C,没啥参考价值 /* 温度采样并输出 */ logDebug("\n1.Temperature sampling..."); @@ -80,7 +80,7 @@ void BSP_ADC_Init(void) } #endif -#if 1 +#if 0 // PA1 // 默认情况下,ADC 引脚和所在 GPIO 引脚的数字功能是同时存在的 diff --git a/BSP/src/bsp_key.c b/BSP/src/bsp_key.c index d237351..c6c3baa 100644 --- a/BSP/src/bsp_key.c +++ b/BSP/src/bsp_key.c @@ -1,6 +1,6 @@ #include "bsp_key.h" -#include "bsp_uart.h" +// #include "bsp_uart.h" #include "log.h" #include "SLEEP.h" @@ -116,14 +116,13 @@ void BSP_KEY_EnterLowpower(void) // 开启GPIO的睡眠唤醒,如果需要的话 // PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Long_Delay); - PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Long_Delay); + PWR_PeriphWakeUpCfg(ENABLE, RB_GPIO_WAKE_MODE | RB_SLP_GPIO_WAKE, Long_Delay); // 开启GPIOB中断 PFIC_EnableIRQ(GPIO_B_IRQn); BSP_RequestSleep(); #endif - } __HIGH_CODE @@ -134,7 +133,8 @@ void BSP_KEY_ExitLowpower(void) // 关闭GPIOB中断 PFIC_DisableIRQ(GPIO_B_IRQn); - PWR_PeriphWakeUpCfg(DISABLE, RB_SLP_GPIO_WAKE, Long_Delay); + PWR_PeriphWakeUpCfg(DISABLE, RB_GPIO_WAKE_MODE | RB_SLP_GPIO_WAKE, Long_Delay); + // PWR_PeriphWakeUpCfg(DISABLE, RB_SLP_GPIO_WAKE, Long_Delay); #endif } @@ -244,23 +244,35 @@ void BSP_KEY_Init(app_task_evt_handler_t handler) p_handler = handler; key_task_id = TMOS_ProcessEventRegister(KEY_Task_ProcessEvent); + // // https://www.wch.cn/bbs/thread-98540-1.html + // R16_PIN_ALTERNATE |= RB_PIN_INTX; + // 由外部上拉电阻了 // 设置为浮空输入模式 - // GPIOB_SetBits(KEY_B_PIN); - GPIOB_ModeCfg(KEY_B_PIN, GPIO_ModeIN_PU); + + GPIOB_ModeCfg(GPIO_Pin_16, GPIO_ModeIN_PU); + + GPIOB_ModeCfg(GPIO_Pin_0, GPIO_ModeIN_Floating); + // GPIOB_ModeCfg(GPIO_Pin_1, GPIO_ModeIN_Floating); + #if 1 // 下降沿触发 - GPIOB_ITModeCfg(KEY_B_PIN, GPIO_ITMode_FallEdge); + GPIOB_ITModeCfg(GPIO_Pin_0, GPIO_ITMode_FallEdge); + // GPIOB_ITModeCfg(GPIO_Pin_1, GPIO_ITMode_FallEdge); // 开启GPIO的睡眠唤醒,如果需要的话 // PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Long_Delay); - PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Long_Delay); + PWR_PeriphWakeUpCfg(ENABLE, RB_GPIO_WAKE_MODE | RB_SLP_GPIO_WAKE, Long_Delay); // 开启GPIOB中断 PFIC_EnableIRQ(GPIO_B_IRQn); tmos_start_task(key_task_id, KEY_SCAN_EVT, MS1_TO_SYSTEM_TIME(KEY_SACN_MS)); #endif + DelayMs(2); + logDebug("BSP_KEY_Init=%d", IS_KEY_Vaild()); + DelayMs(2); + logDebug("BSP_KEY_Init=%d", IS_KEY_Vaild()); } __HIGH_CODE @@ -296,7 +308,9 @@ void GPIOB_IRQHandler(void) // PRINT("KEY IRQ\n"); - GPIOB_ClearITFlagBit(KEY_B_PIN); + // GPIOB_ClearITFlagBit(KEY_B_PIN); + GPIOB_ClearITFlagBit(GPIO_Pin_0); + // GPIOB_ClearITFlagBit(GPIO_Pin_1); // tmos_set_event(key_task_id, KEY_SCAN_EVT); // logDebug("KEY_ProcessLoop"); diff --git a/BSP/src/bsp_valve.c b/BSP/src/bsp_valve.c index 2e19fd1..5b548c0 100644 --- a/BSP/src/bsp_valve.c +++ b/BSP/src/bsp_valve.c @@ -2,7 +2,7 @@ * @Author : stark1898y 1658608470@qq.com * @Date : 2024-12-15 15:01:15 * @LastEditors : stark1898y 1658608470@qq.com - * @LastEditTime : 2024-12-24 11:17:00 + * @LastEditTime : 2025-02-22 17:20:22 * @FilePath : \BLE_TYQ_CH584M\BSP\src\bsp_valve.c * @Description : * @@ -359,34 +359,35 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) BSP_BlockSleep(); BSP_RequestBoost(); logDebug("VAVLE_CLOSE_ACTION_EVT"); - // 关阀动作,一定要先关充电的,防止其他12V用电 - // EMV_CHARGE_OFF_DEINIT; - logDebug("EMV_CHARGE_OFF_DEINIT"); BOOST_EN; - EMV_CHARGE_EN; + // EMV_CHARGE_EN; + // 关阀动作,一定要先关充电的,防止其他12V用电 + EMV_CHARGE_OFF_DEINIT; - DelayMs(10); + BEEP_ON; - // BEEP_ON; + logDebug("EMV_CHARGE_OFF_DEINIT"); + + // DelayMs(10); // EMV_CTRL EMV_ON; - DelayMs(50); + // DelayMs(50); - {BEEP_OFF_DEINIT; + // {BEEP_OFF_DEINIT; - EMV_CHARGE_OFF_DEINIT; - EMV_OFF_DEINIT; + // EMV_CHARGE_OFF_DEINIT; + // EMV_OFF_DEINIT; - BSP_NoNeedBoost(); + // BSP_NoNeedBoost(); - gValveData.switch_status = kClosed; + // gValveData.switch_status = kClosed; - tmos_memset(&RelyData, 0, sizeof(RelyData)); - BSP_VALVE_Generate_ValveResponse(&RelyData, kCmdCloseVavle, 1); + // tmos_memset(&RelyData, 0, sizeof(RelyData)); + // BSP_VALVE_Generate_ValveResponse(&RelyData, kCmdCloseVavle, 1); - tmos_set_event(Peripheral_TaskID, SBP_REPLY_CMD_EVT);} + // tmos_set_event(Peripheral_TaskID, SBP_REPLY_CMD_EVT);} logDebug("EMV_ON"); tmos_start_task(vavle_task_id, VAVLE_CLOSE_END_EVT, MS1_TO_SYSTEM_TIME(100)); @@ -400,6 +401,8 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) EMV_CHARGE_OFF_DEINIT; EMV_OFF_DEINIT; + LED_ALL_OFF_DEINIT; + BSP_NoNeedBoost(); gValveData.switch_status = kClosed; @@ -449,7 +452,6 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) void BSP_VAVLE_Init(void) { - GPIOA_ModeCfg(GPIO_Pin_2, GPIO_ModeIN_Floating); vavle_task_id = TMOS_ProcessEventRegister(VAVLE_Task_ProcessEvent); tmos_memset(&gValveData, 0, sizeof(gValveData)); diff --git a/HAL/include/CONFIG.h b/HAL/include/CONFIG.h index 937b0b7..d8c42d8 100644 --- a/HAL/include/CONFIG.h +++ b/HAL/include/CONFIG.h @@ -80,7 +80,7 @@ #define DCDC_ENABLE TRUE #endif #ifndef HAL_SLEEP -#define HAL_SLEEP FALSE +#define HAL_SLEEP TRUE #endif #ifndef SLEEP_RTC_MIN_TIME #define SLEEP_RTC_MIN_TIME US_TO_RTC(1000) diff --git a/LIB/CH58xBLE_LIB.h b/LIB/CH58xBLE_LIB.h index 4760ba3..e2c3535 100644 --- a/LIB/CH58xBLE_LIB.h +++ b/LIB/CH58xBLE_LIB.h @@ -5,7 +5,7 @@ * Date : 2024/04/10 * Description : head file(ch585/ch584) * Copyright (c) 2023 Nanjing Qinheng Microelectronics Co., Ltd. - * Attention: This software (modified or not) and binary are used for + * Attention: This software (modified or not) and binary are used for * microcontroller manufactured by Nanjing Qinheng Microelectronics. *******************************************************************************/ @@ -419,7 +419,7 @@ extern const uint8_t VER_LIB[]; // LIB version #define NAV_UUID 0x2A68 // Navigation #define POS_QUALITY_UUID 0x2A69 // Position Quality #define LN_FEATURE_UUID 0x2A6A // LN Feature -#define LN_CTRL_PT_UUID 0x2A6B // LN Control Point +#define LN_CTRL_PT_UUID 0x2A6B // LN Control Point #define ELE_UUID 0x2A6C // Elevation #define PRESSURE_UUID 0x2A6D // Pressure #define TEMP_UUID 0x2A6E // Temperature @@ -526,7 +526,7 @@ extern const uint8_t VER_LIB[]; // LIB version /************************************ATT***************************************/ #define ATT_MTU_SIZE 23 //!< Minimum ATT MTU size #define ATT_MAX_MTU_SIZE 512 //!< Maximum ATT MTU size -// ATT Methods +// ATT Methods #define ATT_ERROR_RSP 0x01 //!< ATT Error Response #define ATT_EXCHANGE_MTU_REQ 0x02 //!< ATT Exchange MTU Request #define ATT_EXCHANGE_MTU_RSP 0x03 //!< ATT Exchange MTU Response @@ -1523,7 +1523,7 @@ typedef struct * All subsequent ATT Requests and Indications received by the local ATT Server * and Client respectively will be dropped. * - * This message is to inform the app (that has registered with GAP by calling + * This message is to inform the app (that has registered with GAP by calling * GAP_RegisterForMsgs()) in case it wants to drop the connection. */ typedef struct @@ -1537,7 +1537,7 @@ typedef struct * by the local ATT Server or Client when the ATT MTU size is updated for a * connection. The default ATT MTU size is 23 octets. * - * This message is to inform the app (that has registered with GAP by calling + * This message is to inform the app (that has registered with GAP by calling * GAP_RegisterForMsgs()) about the new ATT MTU size negotiated for a connection. */ typedef struct @@ -1730,8 +1730,8 @@ typedef struct * - Read Request: ATT_READ_REQ * - Read Blob Request: ATT_READ_BLOB_REQ * - * @note If blePending is returned then it's the responsibility of the application to respond to - * ATT_READ_REQ and ATT_READ_BLOB_REQ message with ATT_READ_RSP and ATT_READ_BLOB_RSP + * @note If blePending is returned then it's the responsibility of the application to respond to + * ATT_READ_REQ and ATT_READ_BLOB_REQ message with ATT_READ_RSP and ATT_READ_BLOB_RSP * message respectively. * * @note Payload 'pValue' used with ATT_READ_RSP and ATT_READ_BLOB_RSP must be allocated using GATT_bm_alloc(). @@ -1750,7 +1750,7 @@ typedef struct */ typedef uint8_t (*pfnGATTReadAttrCB_t)( uint16_t connHandle, gattAttribute_t *pAttr, uint8_t *pValue, uint16_t *pLen, uint16_t offset, uint16_t maxLen, uint8_t method ); - + /** * @brief Callback function prototype to write an attribute value. * @@ -1761,7 +1761,7 @@ typedef uint8_t (*pfnGATTReadAttrCB_t)( uint16_t connHandle, gattAttribute_t *pA * - Write Long: ATT_EXECUTE_WRITE_REQ * - Reliable Writes: Multiple ATT_PREPARE_WRITE_REQ followed by one final ATT_EXECUTE_WRITE_REQ * - * @note If blePending is returned then it's the responsibility of the application to 1) respond to + * @note If blePending is returned then it's the responsibility of the application to 1) respond to * ATT_WRITE_REQ and ATT_EXECUTE_WRITE_REQ message with ATT_WRITE_RSP and ATT_EXECUTE_WRITE_RSP * message respectively, and 2) free each request payload 'pValue' using BM_free(). * @@ -1780,7 +1780,7 @@ typedef uint8_t (*pfnGATTReadAttrCB_t)( uint16_t connHandle, gattAttribute_t *pA */ typedef uint8_t (*pfnGATTWriteAttrCB_t)( uint16_t connHandle, gattAttribute_t *pAttr, uint8_t *pValue, uint16_t len, uint16_t offset, uint8_t method ); - + /** * @brief Callback function prototype to authorize a Read or Write operation * on a given attribute. @@ -2632,7 +2632,7 @@ typedef struct #define TX_MODE_TX_TIMEOUT TX_MODE_TX_FAIL //!< time of data transmission #define TX_MODE_RX_DATA 0x02 //!< auto tx mode receive data(ack) and enter idle state #define TX_MODE_RX_TIMEOUT 0x12 //!< auto tx mode receive timeout and enter idle state -#define TX_MODE_HOP_SHUT 0x22 +#define TX_MODE_HOP_SHUT 0x22 // RX_MODE call RF_Rx #define RX_MODE_RX_DATA 0x03 //!< basic or auto rx mode receive data @@ -2642,7 +2642,7 @@ typedef struct #define RX_MODE_TX_FINISH 0x04 //!< auto rx mode sends data(ack) successfully and enters idle state #define RX_MODE_TX_FAIL 0x14 //!< auto rx mode fail to send data and enter idle state #define RX_MODE_TX_TIMEOUT RX_MODE_TX_FAIL //!< time of data transmission -#define RX_MODE_HOP_SHUT 0x24 +#define RX_MODE_HOP_SHUT 0x24 // LLE_MODE_TYPE #define LLE_MODE_BASIC (0) //!< basic mode, enter idle state after sending or receive @@ -2963,7 +2963,7 @@ extern bStatus_t LL_Decrypt( uint8_t *key, uint8_t *plaintextData, uint8_t *decr * * @param handle - connect handle * - * @return 0xFFFFFFFF-handle error,number of packets not receiving ack + * @return 0xFFFFFFFF-handle error,number of packets not receiving ack */ extern uint32_t LL_GetNumberOfUnAckPacket( uint16_t handle ); @@ -3015,7 +3015,7 @@ extern int16_t BLE_ReadCfo( void ); /** * @brief pa control init - * + * * @note Can't be called until role Init * * @param paControl - pa control parameters(global variable) @@ -3025,9 +3025,9 @@ extern int16_t BLE_ReadCfo( void ); extern void BLE_PAControlInit( blePaControlConfig_t *paControl ); /** - * @brief ble register reset and rf calibration + * @brief ble register reset and rf calibration * - * @param None + * @param None * * @return None */ @@ -3067,7 +3067,7 @@ extern void LLE_IRQLibHandler( void ); * * @return access address * the Access Address meets the following requirements: - * It shall have no more than six consecutive zeros or ones. + * It shall have no more than six consecutive zeros or ones. * It shall not be t he advertising channel packets Access Address. * It shall not be a sequence that differ s from the advertising channel packets' Access Address by only one bit. * It shall not have all four octets equal. @@ -3084,7 +3084,7 @@ extern uint8_t linkDB_Register( pfnLinkDBCB_t pFunc ); /* * linkDB_State - Check to see if a physical link is in a specific state. - * + * * returns TRUE is the link is in state. FALSE, otherwise. */ extern uint8_t linkDB_State( uint16_t connectionHandle, uint8_t state ); @@ -3151,13 +3151,13 @@ extern void GATT_RegisterForInd( uint8_t taskId ); * * @param handle - handle to look for * @param pHandle - handle of owner of attribute (to be returned) - * + * * @return Pointer to attribute record. NULL, otherwise. */ extern gattAttribute_t *GATT_FindHandle( uint16_t handle, uint16_t *pHandle ); /** - * @brief This sub-procedure is used when a server is configured to + * @brief This sub-procedure is used when a server is configured to * indicate a characteristic value to a client and expects an * attribute protocol layer acknowledgement that the indication * was successfully received. @@ -3186,9 +3186,9 @@ extern gattAttribute_t *GATT_FindHandle( uint16_t handle, uint16_t *pHandle ); */ extern bStatus_t GATT_Indication( uint16_t connHandle, attHandleValueInd_t *pInd, uint8_t authenticated, uint8_t taskId ); /** - * @brief This sub-procedure is used when a server is configured to + * @brief This sub-procedure is used when a server is configured to * notify a characteristic value to a client without expecting - * any attribute protocol layer acknowledgement that the + * any attribute protocol layer acknowledgement that the * notification was successfully received. * * The ATT Handle Value Notification is used in this sub-procedure. @@ -3243,7 +3243,7 @@ extern bStatus_t GATT_Notification( uint16_t connHandle, attHandleValueNoti_t *p extern bStatus_t GATT_ExchangeMTU( uint16_t connHandle, attExchangeMTUReq_t *pReq, uint8_t taskId ); /** - * @brief This sub-procedure is used by a client to discover all + * @brief This sub-procedure is used by a client to discover all * the primary services on a server. * * The ATT Read By Group Type Request is used with the Attribute @@ -3276,7 +3276,7 @@ extern bStatus_t GATT_DiscAllPrimaryServices( uint16_t connHandle, uint8_t taskI /** * @brief This sub-procedure is used by a client to discover a specific * primary service on a server when only the Service UUID is - * known. The primary specific service may exist multiple times + * known. The primary specific service may exist multiple times * on a server. The primary service being discovered is identified * by the service UUID. * @@ -3312,7 +3312,7 @@ extern bStatus_t GATT_DiscPrimaryServiceByUUID( uint16_t connHandle, uint8_t *pU /** * @brief This sub-procedure is used by a client to find include - * service declarations within a service definition on a + * service declarations within a service definition on a * server. The service specified is identified by the service * handle range. * @@ -3347,7 +3347,7 @@ extern bStatus_t GATT_DiscPrimaryServiceByUUID( uint16_t connHandle, uint8_t *pU extern bStatus_t GATT_FindIncludedServices( uint16_t connHandle, uint16_t startHandle, uint16_t endHandle, uint8_t taskId ); /** - * @brief This sub-procedure is used by a client to find all the + * @brief This sub-procedure is used by a client to find all the * characteristic declarations within a service definition on * a server when only the service handle range is known. The * service specified is identified by the service handle range. @@ -3383,11 +3383,11 @@ extern bStatus_t GATT_FindIncludedServices( uint16_t connHandle, uint16_t startH extern bStatus_t GATT_DiscAllChars( uint16_t connHandle, uint16_t startHandle, uint16_t endHandle, uint8_t taskId ); /** - * @brief This sub-procedure is used by a client to discover service - * characteristics on a server when only the service handle - * ranges are known and the characteristic UUID is known. + * @brief This sub-procedure is used by a client to discover service + * characteristics on a server when only the service handle + * ranges are known and the characteristic UUID is known. * The specific service may exist multiple times on a server. - * The characteristic being discovered is identified by the + * The characteristic being discovered is identified by the * characteristic UUID. * * The ATT Read By Type Request is used with the Attribute Type @@ -3419,10 +3419,10 @@ extern bStatus_t GATT_DiscAllChars( uint16_t connHandle, uint16_t startHandle, u extern bStatus_t GATT_DiscCharsByUUID( uint16_t connHandle, attReadByTypeReq_t *pReq, uint8_t taskId ); /** - * @brief This sub-procedure is used by a client to find all the + * @brief This sub-procedure is used by a client to find all the * characteristic descriptors Attribute Handles and Attribute - * Types within a characteristic definition when only the - * characteristic handle range is known. The characteristic + * Types within a characteristic definition when only the + * characteristic handle range is known. The characteristic * specified is identified by the characteristic handle range. * * The ATT Find Information Request is used with the Starting @@ -3458,12 +3458,12 @@ extern bStatus_t GATT_DiscAllCharDescs( uint16_t connHandle, uint16_t startHandl * @brief This sub-procedure is used to read a Characteristic Value * from a server when the client knows the Characteristic Value * Handle. The ATT Read Request is used with the Attribute Handle - * parameter set to the Characteristic Value Handle. The Read + * parameter set to the Characteristic Value Handle. The Read * Response returns the Characteristic Value in the Attribute * Value parameter. * * The Read Response only contains a Characteristic Value that - * is less than or equal to (ATT_MTU ?1) octets in length. If + * is less than or equal to (ATT_MTU ?1) octets in length. If * the Characteristic Value is greater than (ATT_MTU - 1) octets * in length, the Read Long Characteristic Value procedure may * be used if the rest of the Characteristic Value is required. @@ -3500,7 +3500,7 @@ extern bStatus_t GATT_ReadCharValue( uint16_t connHandle, attReadReq_t *pReq, ui * The Attribute Type is set to the known characteristic UUID and * the Starting Handle and Ending Handle parameters shall be set * to the range over which this read is to be performed. This is - * typically the handle range for the service in which the + * typically the handle range for the service in which the * characteristic belongs. * * If the return status from this function is SUCCESS, the calling @@ -3529,7 +3529,7 @@ extern bStatus_t GATT_ReadUsingCharUUID( uint16_t connHandle, attReadByTypeReq_t /** * @brief This sub-procedure is used to read a Characteristic Value from * a server when the client knows the Characteristic Value Handle - * and the length of the Characteristic Value is longer than can + * and the length of the Characteristic Value is longer than can * be sent in a single Read Response Attribute Protocol message. * * The ATT Read Blob Request is used in this sub-procedure. @@ -3559,8 +3559,8 @@ extern bStatus_t GATT_ReadLongCharValue( uint16_t connHandle, attReadBlobReq_t * /** * @brief This sub-procedure is used to read multiple Characteristic Values - * from a server when the client knows the Characteristic Value - * Handles. The Attribute Protocol Read Multiple Requests is used + * from a server when the client knows the Characteristic Value + * Handles. The Attribute Protocol Read Multiple Requests is used * with the Set Of Handles parameter set to the Characteristic Value * Handles. The Read Multiple Response returns the Characteristic * Values in the Set Of Values parameter. @@ -3599,16 +3599,16 @@ extern bStatus_t GATT_ReadMultiCharValues( uint16_t connHandle, attReadMultiReq_ * Value. This sub-procedure can not be used to write a long * characteristic; instead the Write Long Characteristic Values * sub-procedure should be used. - * + * * The ATT Write Command is used for this sub-procedure. The * Attribute Handle parameter shall be set to the Characteristic * Value Handle. The Attribute Value parameter shall be set to * the new Characteristic Value. * * No response will be sent to the calling application task for this - * sub-procedure. If the Characteristic Value write request is the - * wrong size, or has an invalid value as defined by the profile, - * then the write will not succeed and no error will be generated + * sub-procedure. If the Characteristic Value write request is the + * wrong size, or has an invalid value as defined by the profile, + * then the write will not succeed and no error will be generated * by the server. * * @param connHandle - connection to use @@ -3625,25 +3625,25 @@ extern bStatus_t GATT_WriteNoRsp( uint16_t connHandle, attWriteReq_t *pReq ); /** * @brief This sub-procedure is used to write a Characteristic Value - * to a server when the client knows the Characteristic Value + * to a server when the client knows the Characteristic Value * Handle and the ATT Bearer is not encrypted. This sub-procedure * shall only be used if the Characteristic Properties authenticated * bit is enabled and the client and server device share a bond as * defined in the GAP. * * This sub-procedure only writes the first (ATT_MTU ?15) octets - * of an Attribute Value. This sub-procedure cannot be used to + * of an Attribute Value. This sub-procedure cannot be used to * write a long Attribute. * * The ATT Write Command is used for this sub-procedure. The * Attribute Handle parameter shall be set to the Characteristic - * Value Handle. The Attribute Value parameter shall be set to + * Value Handle. The Attribute Value parameter shall be set to * the new Characteristic Value authenticated by signing the * value, as defined in the Security Manager. * * No response will be sent to the calling application task for this - * sub-procedure. If the authenticated Characteristic Value that is - * written is the wrong size, or has an invalid value as defined by + * sub-procedure. If the authenticated Characteristic Value that is + * written is the wrong size, or has an invalid value as defined by * the profile, or the signed value does not authenticate the client, * then the write will not succeed and no error will be generated by * the server. @@ -3666,10 +3666,10 @@ extern bStatus_t GATT_SignedWriteNoRsp( uint16_t connHandle, attWriteReq_t *pReq * to a server when the client knows the characteristic value * handle. This sub-procedure only writes the first (ATT_MTU-3) * octets of a characteristic value. This sub-procedure can not - * be used to write a long attribute; instead the Write Long + * be used to write a long attribute; instead the Write Long * Characteristic Values sub-procedure should be used. * - * The ATT Write Request is used in this sub-procedure. The + * The ATT Write Request is used in this sub-procedure. The * Attribute Handle parameter shall be set to the Characteristic * Value Handle. The Attribute Value parameter shall be set to * the new characteristic. @@ -3700,7 +3700,7 @@ extern bStatus_t GATT_WriteCharValue( uint16_t connHandle, attWriteReq_t *pReq, /** * @brief This sub-procedure is used to write a Characteristic Value to * a server when the client knows the Characteristic Value Handle - * but the length of the Characteristic Value is longer than can + * but the length of the Characteristic Value is longer than can * be sent in a single Write Request Attribute Protocol message. * * The ATT Prepare Write Request and Execute Write Request are @@ -3739,11 +3739,11 @@ extern bStatus_t GATT_WriteLongCharValue( uint16_t connHandle, attPrepareWriteRe * and assurance is required that the correct Characteristic Value * is going to be written by transferring the Characteristic Value * to be written in both directions before the write is performed. - * This sub-procedure can also be used when multiple values must + * This sub-procedure can also be used when multiple values must * be written, in order, in a single operation. * * The sub-procedure has two phases, the first phase prepares the - * characteristic values to be written. Once this is complete, + * characteristic values to be written. Once this is complete, * the second phase performs the execution of all of the prepared * characteristic value writes on the server from this client. * @@ -3787,7 +3787,7 @@ extern bStatus_t GATT_ReliableWrites( uint16_t connHandle, attPrepareWriteReq_t * declaration's Attribute handle. * * The ATT Read Request is used for this sub-procedure. The Read - * Request is used with the Attribute Handle parameter set to the + * Request is used with the Attribute Handle parameter set to the * characteristic descriptor handle. The Read Response returns the * characteristic descriptor value in the Attribute Value parameter. * @@ -3885,7 +3885,7 @@ extern bStatus_t GATT_WriteCharDesc( uint16_t connHandle, attWriteReq_t *pReq, u /** * @brief This sub-procedure is used to write a Characteristic Value to * a server when the client knows the Characteristic Value Handle - * but the length of the Characteristic Value is longer than can + * but the length of the Characteristic Value is longer than can * be sent in a single Write Request Attribute Protocol message. * * The ATT Prepare Write Request and Execute Write Request are @@ -4297,7 +4297,7 @@ extern bStatus_t GAPRole_TerminateLink( uint16_t connHandle ); * @param connHandle - connection handle * * @return bStatus_t: HCI Error Code.
- * + * */ extern bStatus_t GAPRole_ReadRssiCmd( uint16_t connHandle ); @@ -4773,7 +4773,7 @@ extern bStatus_t RF_SetFrequency( uint32_t frequency, uint8_t ch ); extern void RF_FrequencyHoppingShut( void ); /** - * @brief + * @brief * * @param resendCount - Maximum count of sending HOP_TX pdu,0 = unlimited. * @@ -4782,7 +4782,7 @@ extern void RF_FrequencyHoppingShut( void ); extern uint8_t RF_FrequencyHoppingTx( uint8_t resendCount ); /** - * @brief + * @brief * * @param timeoutMS - Maximum time to wait for receiving HOP_TX pdu(Time = n * 1mSec),0 = unlimited. *