BLE CC2540之自定义广播数据

BLE在从机模式下,可以向外发送广播。

首先先了解一下,BLE广播相关信息。

广播相关的参数大致有以下几种:

1.Advertising interval  (广播间隔)

2.Advertising_Type (广播类型)

3.Own_Address_Type(自身地址类型)

4.Direct_Address_Type(定向地址类型)

5.Direct_Address(定向地址)

6.Advertising_Channel_Map(广播信道)

7.Advertising_Filter_Policy(广播过滤策略)(白名单)

8.Advertising Data(广播数据)

9.ScanReponse Data(扫描回应数据)


广播一个包31个字节,第一个字节表示有几个有效数据。第二个字节表示数据类型AD Type之后才是数据。

广播间隔,是两次广播事件之间的最小时间间隔,一般值范围在 20ms~10.24s 之间。



// GAP - SCAN RSP data (max size = 31 bytes)
static uint8 scanRspData[] =
{
	// complete name
	0x11,	// length of this data
	GAP_ADTYPE_LOCAL_NAME_COMPLETE,
	0x42,	// 'B'
	0x6c,	// 'l'
	0x65,	// 'e'
	0x42,	// 'B'
	0x6c,	// 'l'
	0x65,	// 'e'
	0x65,	// 'e'
	0x6C,	// 'l'
	0x6C,	// 'l'
	0x00,	  
	
  // 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
  */
};

// GAP - Advertisement data (max size = 31 bytes, though this is
// best kept short to conserve power while advertisting)
static uint8 advertData[] =
{
	// Flags; this sets the device to use limited discoverable     最大广播31个字节
	// 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,

	0x09,                      //
	GAP_ADTYPE_MANUFACTURER_SPECIFIC ,
	0x00,//6 mac
	0x00,
	0x00,
	0x00,
	0x00,
	0x00,
	0x01,//从机
	0xA5,//正常状态,5A--配对状态

	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 ) 

};


    GAPRole_SetParameter( GAPROLE_SCAN_RSP_DATA, sizeof ( scanRspData ), scanRspData );	
    GAPRole_SetParameter( GAPROLE_ADVERT_DATA, sizeof( advertData ), advertData );



猜你喜欢

转载自blog.csdn.net/qq_37565330/article/details/79459929
今日推荐