资源描述:
《SimpleBLEPeripheral 添加新CHAR值及UUID》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、UUID,就是用来唯一识别一个特征值的ID.handle,就是对应的attribute的一个句柄。所有对特征值的操作,都是通过对UUID的搜索得到对应的handle之后,通过handle来操作特征值的。添加新的特征值CHAR6下面对主要几个文件进行修改simpleGATTprofile.h文件添加以下定义#defineSIMPLEPROFILE_CHAR65#defineSIMPLEPROFILE_CHAR6_UUID0xFFF6#defineSIMPLEPROFILE_CHAR6_LEN5(单字节没这句)SIMPLEPROFILE_CHAR6全大写case参数用到如caseSI
2、MPLEPROFILE_CHAR6:在simpleGATTprofile.c1、添加特征值UUID//Characteristic6UUID:0xFFF6CONSTuint8simpleProfilechar6UUID[ATT_BT_UUID_SIZE]={LO_UINT16(SIMPLEPROFILE_CHAR6_UUID),//低八位HI_UINT16(SIMPLEPROFILE_CHAR6_UUID)};//高八位/**************#defineHI_UINT16(a)(((a)>>8)&0xFF)*******/**************#defineLO_
3、UINT16(a)((a)&0xFF)*******1、设置属性//SimpleProfileCharacteristic6Properties可读可写(声明而已,只是能让lightblue在列表中显示为可读可写或通知,真正要改在属性表那里改。Props=Properties,Desp=Description,)staticuint8simpleProfileChar6Props=GATT_PROP_READ
4、GATT_PROP_WRITE;//Characteristic6Value//simpleProfileChar6是个5位数组,接收数据后存在这staticuint8si
5、mpleProfileChar6[SIMPLEPROFILE_CHAR6_LEN]={0,0,0,0,0};//SimpleProfileCharacteristic6UserDescriptionstaticuint8simpleProfileChar6UserDesp[17]="Characteristic6 ";2、属性表(ProfileAttributes-Table)最重要,添加了这个才会在lightblue中列表出来staticgattAttribute_tsimpleProfileAttrTbl[SERVAPP_NUM_ATTR_SUPPORTED]这里要把数组改
6、为#defineSERVAPP_NUM_ATTR_SUPPORTED20原来是17(//添加了3组结构体数组CHAR6)simpleProfileAttrTbl表中,可读可写属性都是3个数组,只有char4的通知是4组,多了个//Characteristic4configuration并把CHAR6添加进去//Characteristic6Declaration(声明,没加这个lightblue属性表找不到){{ATT_BT_UUID_SIZE,characterUUID},GATT_PERMIT_READ,0,&simpleProfileChar6Props},//Charac
7、teristicValue6(特征值)!!!{{ATT_BT_UUID_SIZE,simpleProfilechar6UUID},GATT_PERMIT_READ
8、GATT_PERMIT_WRITE,//设置可读可写0,simpleProfileChar6//由于值是5位数组,不用&,一个字节就用},//Characteristic6UserDescription//描述{{ATT_BT_UUID_SIZE,charUserDescUUID},GATT_PERMIT_READ,0,simpleProfileChar6UserDesp},能列出来了但是点进去会报错,还没设置读写参数
9、simpleProfile_WriteAttrCB, 和simpleProfile_ReadAttrCB4、设置参数函数(SimpleProfile_SetParameter函数)bStatus_tSimpleProfile_SetParameter(uint8param,uint8len,void*value)中://即修改SimpleProfile_SetParameter();函数添加以下代码:caseSIMPLEPROFILE_CHAR6:if(len==SIMPLEPR