首页 > 代码库 > SimpleProfile_GetParameter && SimpleProfile_SetParameter

SimpleProfile_GetParameter && SimpleProfile_SetParameter

 1 /*********************************************************************
 2  * @fn      SimpleProfile_GetParameter       简单 profile 得到参数
 3  *
 4  * @brief   Get a Simple Profile parameter.  得到一个简单的profile参数。
 5  *
 6  * @param   param - Profile parameter ID     形参param:profile的参数ID
 7  *
 8  * @param   value - pointer to data to put.  This is dependent on
 9  *          the parameter ID and WILL be cast to the appropriate 
10  *          data type (example: data type of uint16 will be cast to 
11  *          uint16 pointer).
12  *
13  *
14  *  形参value:是一个空指针参数,指向输出数据的指针,这个依赖于参数的ID
15  *  并且 将被转换成适当的参数类似,例如:数据类型uint16将被转换成uint16指针。
16  *
17  *  profile:描述了某个应用场景中设备有什么功能(执行什么工作)。在一个profile里会定义好角色。
18  *  角色会包含一个服务service或者多个service或者没有。profile一般定义两个角色,例如防丢器中定义了一个报告者和监视者。
19  * 
20  *  2016年12月15日09:09:14,GXP
21  *
22  * @return  bStatus_t  BLE_STATUS_VALUES
23  */
24 bStatus_t SimpleProfile_GetParameter( uint8 param, void *value )
25 {
26   bStatus_t ret = SUCCESS;
27   switch ( param )
28   {
29     case SIMPLEPROFILE_CHAR1:
30       *((uint8*)value) = simpleProfileChar1;
31       break;
32 
33     case SIMPLEPROFILE_CHAR2:
34       *((uint8*)value) = simpleProfileChar2;
35       break;      
36 
37     case SIMPLEPROFILE_CHAR3:
38       *((uint8*)value) = simpleProfileChar3;
39       break;  
40 
41     case SIMPLEPROFILE_CHAR4:
42       *((uint8*)value) = simpleProfileChar4;
43       break;
44 
45     case SIMPLEPROFILE_CHAR5:
46       VOID memcpy( value, simpleProfileChar5, SIMPLEPROFILE_CHAR5_LEN );
47       break;   
48       
49     default:
50       ret = INVALIDPARAMETER;//无效的ID
51       break;
52   }
53   
54   return ( ret ); //返回函数调用的状态 是成功了 ,还是因为ID无效失败了
55 }

 

bStatus_t 的值在宏定义处被解释为BLE_STATUS_VALUES,下面是BLE_STATUS_VALUES的值的含义:


 1 /** @defgroup BLE_STATUS_VALUES BLE Default BLE Status Values
 2  * returned as bStatus_t
 3  * @{
 4  */
 5 #define bleInvalidTaskID                INVALID_TASK  //!< Task ID isn‘t setup properly
 6 #define bleNotReady                     0x10  //!< Not ready to perform task
 7 #define bleAlreadyInRequestedMode       0x11  //!< Already performing that task
 8 #define bleIncorrectMode                0x12  //!< Not setup properly to perform that task
 9 #define bleMemAllocError                0x13  //!< Memory allocation error occurred
10 #define bleNotConnected                 0x14  //!< Can‘t perform function when not in a connection
11 #define bleNoResources                  0x15  //!< There are no resource available
12 #define blePending                      0x16  //!< Waiting
13 #define bleTimeout                      0x17  //!< Timed out performing function
14 #define bleInvalidRange                 0x18  //!< A parameter is out of range
15 #define bleLinkEncrypted                0x19  //!< The link is already encrypted
16 #define bleProcedureComplete            0x1A  //!< The Procedure is completed
17 #define bleInvalidMtuSize               0x1B  //!< MTU size is out of range

 

 SimpleProfile_SetParameter 和上面这个函数类似!

 

SimpleProfile_GetParameter && SimpleProfile_SetParameter