From 3cdccc4d63884db9018c3674e543f940da6bc14e Mon Sep 17 00:00:00 2001 From: stark1898y <1658608470@qq.com> Date: Sun, 8 Dec 2024 11:29:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .cproject | 2 +- APP/peripheral.c | 73 +++++++++++++++++++++++++- APP/peripheral_main.c | 42 +++++++++------ HAL/MCU.c | 3 +- HAL/RTC.c | 2 +- LIB/CH59xBLE_LIB.h | 116 +++++++++++++++++++++--------------------- 6 files changed, 160 insertions(+), 78 deletions(-) diff --git a/.cproject b/.cproject index 61dd5ee..8db3d50 100644 --- a/.cproject +++ b/.cproject @@ -164,5 +164,5 @@ - + diff --git a/APP/peripheral.c b/APP/peripheral.c index 2b1c990..d106c08 100644 --- a/APP/peripheral.c +++ b/APP/peripheral.c @@ -40,7 +40,7 @@ #define SBP_PHY_UPDATE_DELAY 2400 // What is the advertising interval when device is discoverable (units of 625us, 80=50ms) -#define DEFAULT_ADVERTISING_INTERVAL (160 * 10) +#define DEFAULT_ADVERTISING_INTERVAL (160 * 1) // Limited discoverable mode advertises for 30.72s, and then stops // General discoverable mode advertises indefinitely @@ -136,6 +136,71 @@ static uint8_t advertData[] = { HI_UINT16(SIMPLEPROFILE_SERV_UUID) }; +#if 0 +// 蓝牙广播包的最大长度是37个字节,其中设备地址占用了6个字节,只有31个字节是可用的。 + +// GAP - SCAN RSP data (max size = 31 bytes) +static uint8_t scanRspData[] = { + // complete name + 0x08, // length of this data + GAP_ADTYPE_LOCAL_NAME_COMPLETE, + 'B', + 'L', + 'E', + '-', + 'T', + 'Y', + 'Q', + + // connection interval range + 0x05, // length of this data + GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE, + LO_UINT16(DEFAULT_DESIRED_MIN_CONN_INTERVAL), // 100ms + HI_UINT16(DEFAULT_DESIRED_MIN_CONN_INTERVAL), + LO_UINT16(DEFAULT_DESIRED_MAX_CONN_INTERVAL), // 1s + HI_UINT16(DEFAULT_DESIRED_MAX_CONN_INTERVAL), + + // Tx power level + 0x02, // length of this data + GAP_ADTYPE_POWER_LEVEL, + 0 // 0dBm + + 0x03, // length of this data + GAP_ADTYPE_MANUFACTURER_SPECIFIC, + // 前两个字节表示厂商 ID + 0, + 0, + 0x10, // 1B 电池电压 30=3V,18=1.8V + 0x01, // 1B 阀门类型 + 0x00, // 1B 阀门工作状态 超欠压、过流 + 0x00, // 1B 阀门连接状态 (电磁阀BLE控制盒) 0=未连接 1=已连接 + 0x01, // 1B 阀门开关状态 0=未知 1=关闭 2=关闭过,未按按键恢复 3=关闭过,按下了恢复键 4=打开 + 0x03, // 1B 阀门温度 有符号整数 25 C + 0x04, // 1B 阀门进口压力 0~156 (0)kPa + 0x05, // 1B 阀门出口压力 0~100 hPa 0.1kpa + 0x06, // 1B 阀门大气压力 80~110 kPa +}; + +// GAP - Advertisement data (max size = 31 bytes, though this is +// best kept short to conserve power while advertising) +static uint8_t advertData[] = { + // Flags; this sets the device to use limited discoverable + // mode (advertises for 30 seconds at a time) instead of general + // discoverable mode (advertises indefinitely) + 0x02, // length of this data + GAP_ADTYPE_FLAGS, + DEFAULT_DISCOVERABLE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED, + + // service UUID, to notify central devices what services are included + // in this peripheral + 0x03, // length of this data + GAP_ADTYPE_16BIT_MORE, // some of the UUID's, but not all + LO_UINT16(SIMPLEPROFILE_SERV_UUID), + HI_UINT16(SIMPLEPROFILE_SERV_UUID) +}; + +#endif + // GAP GATT Attributes static uint8_t attDeviceName[GAP_DEVICE_NAME_LEN] = "Simple Peripheral"; @@ -227,6 +292,12 @@ void Peripheral_Init() GAP_SetParamValue(TGAP_DISC_ADV_INT_MIN, advInt); GAP_SetParamValue(TGAP_DISC_ADV_INT_MAX, advInt); + // https://www.cnblogs.com/debugdabiaoge/p/17871551.html + // 默认从机在回复扫描请求后,会结束广播事件(默认广播应该是 37 38 39 在 3 个信道轮发) + // 如下使能后,可以保证广播包不受扫描请求的影响 + // uint16_t adv_event_contnue=1<<1; + // GAP_SetParamValue(TGAP_ADV_SCAN_REQ_NOTIFY, adv_event_contnue); + // Enable scan req notify GAP_SetParamValue(TGAP_ADV_SCAN_REQ_NOTIFY, ENABLE); } diff --git a/APP/peripheral_main.c b/APP/peripheral_main.c index 1f30f30..ed79d97 100644 --- a/APP/peripheral_main.c +++ b/APP/peripheral_main.c @@ -49,32 +49,32 @@ __attribute__((noinline)) void Main_Circulation() // LED GPIOA_SetBits(GPIO_Pin_4); GPIOA_ModeCfg(GPIO_Pin_4, GPIO_ModeOut_PP_5mA); - DelayMs(50); + DelayMs(1000); PRINT("LED ON\n"); GPIOA_ResetBits(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15); GPIOA_ModeCfg(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15, GPIO_ModeIN_PD); - DelayMs(50); + DelayMs(1000); PRINT("LED OFF\n"); GPIOA_SetBits(GPIO_Pin_5); GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeOut_PP_5mA); - DelayMs(50); + DelayMs(1000); PRINT("LED ON\n"); GPIOA_ResetBits(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15); GPIOA_ModeCfg(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15, GPIO_ModeIN_PD); - DelayMs(50); + DelayMs(1000); PRINT("LED OFF\n"); GPIOA_SetBits(GPIO_Pin_15); - GPIOA_ModeCfg(GPIO_Pin_4, GPIO_ModeOut_PP_5mA); - DelayMs(50); + GPIOA_ModeCfg(GPIO_Pin_15, GPIO_ModeOut_PP_5mA); + DelayMs(1000); PRINT("LED ON\n"); GPIOA_ResetBits(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15); GPIOA_ModeCfg(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15, GPIO_ModeIN_PD); - DelayMs(50); + DelayMs(1000); PRINT("LED OFF\n"); DelayMs(100); @@ -87,8 +87,6 @@ __attribute__((noinline)) void Main_Circulation() DelayMs(1000 * 5); - - // EMV_CTRL GPIOB_SetBits(GPIO_Pin_13); GPIOB_ModeCfg(GPIO_Pin_13, GPIO_ModeOut_PP_5mA); @@ -116,15 +114,30 @@ int main(void) PWR_DCDCCfg(ENABLE); #endif SetSysClock(CLK_SOURCE_PLL_60MHz); + #if (defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE) - GPIOA_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PU); - GPIOB_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PU); + GPIOA_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PD); + GPIOB_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PD); +#endif +#ifdef DEBUG + GPIOB_SetBits(bTXD0); + GPIOB_ModeCfg(bTXD0, GPIO_ModeOut_PP_5mA); + UART0_DefInit(); #endif // 12V_EN GPIOA_ResetBits(GPIO_Pin_13); GPIOA_ModeCfg(GPIO_Pin_13, GPIO_ModeOut_PP_5mA); + // EMV_CTRL + GPIOB_SetBits(GPIO_Pin_13); + GPIOB_ModeCfg(GPIO_Pin_13, GPIO_ModeOut_PP_5mA); + PRINT("EMV_CTRL ON\n"); + DelayMs(100); + + GPIOB_ResetBits(GPIO_Pin_13); + PRINT("EMV_CTRL OFF\n"); + // EMV_CTRL GPIOB_ResetBits(GPIO_Pin_13); GPIOB_ModeCfg(GPIO_Pin_13, GPIO_ModeIN_PD); @@ -148,11 +161,8 @@ int main(void) // GPIOA_ResetBits(GPIO_Pin_1); GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_Floating); -#ifdef DEBUG - GPIOB_SetBits(bTXD0); - GPIOB_ModeCfg(bTXD0, GPIO_ModeOut_PP_5mA); - UART0_DefInit(); -#endif + DelayMs(1000 * 5); + PRINT("%s\n", VER_LIB); CH59x_BLEInit(); HAL_Init(); diff --git a/HAL/MCU.c b/HAL/MCU.c index d4a8695..612d895 100644 --- a/HAL/MCU.c +++ b/HAL/MCU.c @@ -6,7 +6,7 @@ * Description : 硬件任务处理函数及BLE和硬件初始化 ********************************************************************************* * Copyright (c) 2021 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. *******************************************************************************/ @@ -159,6 +159,7 @@ void CH59x_BLEInit(void) for(i = 0; i < 6; i++) { cfg.MacAddr[i] = MacAddr[i]; // 使用芯片mac地址 + PRINT("MacAddr[%d]: %x\n", i, MacAddr[i]); } } #endif diff --git a/HAL/RTC.c b/HAL/RTC.c index 899cfd3..47367c4 100644 --- a/HAL/RTC.c +++ b/HAL/RTC.c @@ -6,7 +6,7 @@ * Description : RTC配置及其初始化 ********************************************************************************* * Copyright (c) 2021 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. *******************************************************************************/ diff --git a/LIB/CH59xBLE_LIB.h b/LIB/CH59xBLE_LIB.h index 27e427d..2340ef0 100644 --- a/LIB/CH59xBLE_LIB.h +++ b/LIB/CH59xBLE_LIB.h @@ -5,7 +5,7 @@ * Date : 2023/02/13 * Description : head file * 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. *******************************************************************************/ @@ -408,7 +408,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 @@ -506,7 +506,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 @@ -1480,7 +1480,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 @@ -1494,7 +1494,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 @@ -1687,8 +1687,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(). @@ -1707,7 +1707,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. * @@ -1718,7 +1718,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(). * @@ -1737,7 +1737,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. @@ -2413,7 +2413,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 @@ -2423,7 +2423,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 @@ -2744,7 +2744,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 ); @@ -2796,7 +2796,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) @@ -2806,9 +2806,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 */ @@ -2848,7 +2848,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. @@ -2865,7 +2865,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 ); @@ -2932,13 +2932,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. @@ -2967,9 +2967,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. @@ -3024,7 +3024,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 @@ -3057,7 +3057,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. * @@ -3093,7 +3093,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. * @@ -3128,7 +3128,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. @@ -3164,11 +3164,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 @@ -3200,10 +3200,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 @@ -3239,12 +3239,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. @@ -3281,7 +3281,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 @@ -3310,7 +3310,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. @@ -3340,8 +3340,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. @@ -3380,16 +3380,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 @@ -3406,25 +3406,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. @@ -3447,10 +3447,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. @@ -3481,7 +3481,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 @@ -3520,11 +3520,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. * @@ -3568,7 +3568,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. * @@ -3666,7 +3666,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 @@ -4078,7 +4078,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 ); @@ -4477,7 +4477,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. * @@ -4486,7 +4486,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. *