/*********************************************************************
* @fn SimpleProfile_GetParameter 简单 profile 得到参数
*
* @brief Get a Simple Profile parameter. 得到一个简单的profile参数。
*
* @param param - Profile parameter ID 形参param:profile的参数ID
*
* @param value - pointer to data to put. This is dependent on
* the parameter ID and WILL be cast to the appropriate
* data type (example: data type of uint16 will be cast to
* uint16 pointer).
*
*
* 形参value:是一个空指针参数,指向输出数据的指针,这个依赖于参数的ID
* 并且 将被转换成适当的参数类似,例如:数据类型uint16将被转换成uint16指针。
*
* profile:描述了某个应用场景中设备有什么功能(执行什么工作)。在一个profile里会定义好角色。
* 角色会包含一个服务service或者多个service或者没有。profile一般定义两个角色,例如防丢器中定义了一个报告者和监视者。
*
* 2016年12月15日09:09:14,GXP
*
* @return bStatus_t BLE_STATUS_VALUES
*/
bStatus_t SimpleProfile_GetParameter( uint8 param, void *value )
{
bStatus_t ret = SUCCESS;
switch ( param )
{
case SIMPLEPROFILE_CHAR1:
*((uint8*)value) = simpleProfileChar1;
break; case SIMPLEPROFILE_CHAR2:
*((uint8*)value) = simpleProfileChar2;
break; case SIMPLEPROFILE_CHAR3:
*((uint8*)value) = simpleProfileChar3;
break; case SIMPLEPROFILE_CHAR4:
*((uint8*)value) = simpleProfileChar4;
break; case SIMPLEPROFILE_CHAR5:
VOID memcpy( value, simpleProfileChar5, SIMPLEPROFILE_CHAR5_LEN );
break; default:
ret = INVALIDPARAMETER;//无效的ID
break;
} return ( ret ); //返回函数调用的状态 是成功了 ,还是因为ID无效失败了
}
bStatus_t 的值在宏定义处被解释为BLE_STATUS_VALUES,下面是BLE_STATUS_VALUES的值的含义:

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

 SimpleProfile_SetParameter 和上面这个函数类似!

SimpleProfile_GetParameter && SimpleProfile_SetParameter的更多相关文章

  1. simpleBLEPeripheral.c 文件分析

    这个配置或者说任务, 让这个蓝牙设备成为了一个简单的BLE外设. 这里定义了外设的广播数据, 以及最重要, char被改变之后的回调, 引出后来的coreHandler里面的, ack 以及写e2pr ...

  2. 蓝牙(BLE)应用框架接口设计和应用开发——以TI CC2541为例

    本文从功能需求的角度分析一般蓝牙BLE单芯片的应用框架(SDK Framework)的接口设计过程,并以TI CC2541为例说明BLE的应用开发方法. 一.应用框架(Framework) 我们熟知的 ...

  3. 用蓝牙芯片CC2541/CC2540实现一个智能恒温箱

    最近突然想自己做一个智能小冰箱玩一玩,于是决定动手试一试. 成品效果图 原材料 半导体制冷片一只 散热风扇 12V电源一台 智能恒温箱电路板 控制板的PCB图 原理图 供电部分原理图 制冷片控制部分原 ...

  4. 6、CC2541修改按键调节广播发送功率例程为持续发送4DB的蓝牙基站

    一.目的 在 OSAL操作系统-实验31 从机广播功率修改-(20141029更新).zip 基础上进行修改,该工程是通过5向按键的上下按键来控制广播功率的加减,总共有4个档位.我们的目的是直接用最高 ...

  5. CC2541调试问题记录-第一篇

    1. 在网络环境过于复杂的地方,手机连接不上CC2541.2. 修改CC2541的设备名字. static uint8 scanRspData[] = { // complete name 0x0d, ...

  6. performPeriodicTask

    /********************************************************************* * @fn performPeriodicTask 执行 ...

  7. cc2541测试SimpleBLEPeripheral例程

    1. 修改工程选项,去掉CC2540_MINIDK,烧写CC2541代码 2. 打开手机软件TruthBlue2_7 3. 准备看下特征值4的通信,在周期处理里面,一直读取特征值3的值,然后由特征值4 ...

  8. TI低功耗蓝牙(BLE)介绍

    TI低功耗蓝牙(BLE)介绍 本文档翻译和修改自参考资料:CC2540Bluetooth Low Energy Software Developer’s Guide (Rev. B),部分图片直接引用 ...

  9. TI低功耗蓝牙(BLE)介绍【转】

    转自:http://blog.csdn.net/ooakk/article/details/7302425 TI低功耗蓝牙(BLE)介绍 本文档翻译和修改自参考资料:CC2540Bluetooth L ...

随机推荐

  1. 互联网轻量级框架SSM-查缺补漏第六天【级联+延迟加载特辑】

    简言:本来这是昨天看的,但是因为想好好写一下[级联]这个东西,所以就看完之后今天来整理一下. 级联 1. 什么是级联 级联是一个数据库实体的概念.比如教师就需要存在学生与之对应,这样就有教师学生表,一 ...

  2. java web 开发入门

    Java web,是java技术用来解决web互联网领域的技术总和.Java web技术主要包括客户端和服务端,java在客户端的服务有java applet,不过用的非常少,大部分应用在服务端,比如 ...

  3. python的爬虫

    requests库的安装 https://blog.csdn.net/xiaokuang5020/article/details/80580631 Response对象属性 属性 说明 r.statu ...

  4. 一、IOC和DI的概念

    IOC---Inversion of Control (控制反转) 在java中,IOC意味着将你设计好的对象交给容器控制,而不是传统的在你对象内部直接控制. 谁控制谁,控制什么  -->IOC ...

  5. RecyclerView IndexOutOfBoundsException 问题

    在项目中遇到一个RecyclerView 偶现的奔溃,查看日志,发现是: java.lang.IndexOutOfBoundsException: Index: 39, Size: 39 at jav ...

  6. Java并发编程:CountDownLatch、CyclicBarrier和Semaphore (总结)

    下面对上面说的三个辅助类进行一个总结: 1)CountDownLatch和CyclicBarrier都能够实现线程之间的等待,只不过它们侧重点不同: CountDownLatch一般用于某个线程A等待 ...

  7. Maven pom.xml 常用打包配置

    <build> <!-- 指定JAVA源文件目录 --> <sourceDirectory>src</sourceDirectory> <!-- ...

  8. new Date(年-月)时间是8点

    new Date('2018-02')获取的小时是8时解决new Date('2018-2')获取的小时是0时

  9. Java类——JDBC链接、并操作MySQL数据库

    Java——MySQL数据库操作类 package pkg.src.database; import java.sql.*; public class MYSQL_DBManager { // //定 ...

  10. 解决github访问过慢问题

    解决github访问过慢问题 主要原因: DNS 自动解析较慢 http://github.global.ssl.fastly.net.ipaddress.com/#ipinfo 用文本编辑器打开ho ...