在沁恒ch573作为从机的时候,可以根据自己的喜好修改一些特定的广播内容,例如原厂信息之类的,在初始化的时候用的
`// GAP - SCAN RSP data (max size = 31 bytes) static uint8_t scanRspData[] = { // complete name 0x12, // length of this data GAP_ADTYPE_LOCAL_NAME_COMPLETE, 't', 'e', 's', 't', '-', '1', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 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
0X05,
GAP_ADTYPE_MANUFACTURER_SPECIFIC,
0XFF,
0XFF,
0XFF,
0XFF
};
这些SCAN RSP data数据作为修改项进行改动,调用函数
GAP_UpdateAdvertisingData( 0,FALSE ,sizeof( scanRspData ),scanRspData );// false代表rsp数据,true代表adv数据
可初始化rsp数据有很多可以做为广播的数据,例如
#define GAP_ADTYPE_FLAGS 0x01
#define GAP_ADTYPE_16BIT_MORE 0x02
#define GAP_ADTYPE_16BIT_COMPLETE 0x03
#define GAP_ADTYPE_32BIT_MORE 0x04
#define GAP_ADTYPE_32BIT_COMPLETE 0x05
#define GAP_ADTYPE_128BIT_MORE 0x06
#define GAP_ADTYPE_128BIT_COMPLETE 0x07
#define GAP_ADTYPE_LOCAL_NAME_SHORT 0x08
#define GAP_ADTYPE_LOCAL_NAME_COMPLETE 0x09
#define GAP_ADTYPE_POWER_LEVEL 0x0A
#define GAP_ADTYPE_OOB_CLASS_OF_DEVICE 0x0D
#define GAP_ADTYPE_OOB_SIMPLE_PAIRING_HASHC 0x0E
#define GAP_ADTYPE_OOB_SIMPLE_PAIRING_RANDR 0x0F
#define GAP_ADTYPE_SM_TK 0x10
#define GAP_ADTYPE_SM_OOB_FLAG 0x11
#define GAP_ADTYPE_SLAVE_CONN_INTERVAL_RANGE 0x12
#define GAP_ADTYPE_SIGNED_DATA 0x13
#define GAP_ADTYPE_SERVICES_LIST_16BIT 0x14
#define GAP_ADTYPE_SERVICES_LIST_128BIT 0x15
#define GAP_ADTYPE_SERVICE_DATA 0x16
#define GAP_ADTYPE_PUBLIC_TARGET_ADDR 0x17
#define GAP_ADTYPE_RANDOM_TARGET_ADDR 0x18
#define GAP_ADTYPE_APPEARANCE 0x19
#define GAP_ADTYPE_ADV_INTERVAL 0x1A
#define GAP_ADTYPE_LE_BD_ADDR 0x1B
#define GAP_ADTYPE_LE_ROLE 0x1C
#define GAP_ADTYPE_SIMPLE_PAIRING_HASHC_256 0x1D
#define GAP_ADTYPE_SIMPLE_PAIRING_RANDR_256 0x1E
#define GAP_ADTYPE_SERVICE_DATA_32BIT 0x20
#define GAP_ADTYPE_SERVICE_DATA_128BIT 0x21
#define GAP_ADTYPE_3D_INFO_DATA 0x3D
#define GAP_ADTYPE_MANUFACTURER_SPECIFIC 0xFF
还可以改变adv的数据,
static uint8_t advertData[] = {
0x02,
GAP_ADTYPE_FLAGS,
DEFAULT_DISCOVERABLE_MODE | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED,
0x03,
GAP_ADTYPE_16BIT_MORE,
LO_UINT16(SIMPLEPROFILE_SERV_UUID),
HI_UINT16(SIMPLEPROFILE_SERV_UUID)
};
GAP_UpdateAdvertisingData( 0,TRUE,sizeof( advertData),advertData);// false代表rsp数据,true代表adv数据
只要把相应的数组数据改变,再更新到广播就可以了,后续如果要做保存,可以保存到flash内,在初始化后调用即可