各位好:
本人初次接触BLE,很多基础东西不太明白,最近在搞主机和从机连接的DEMO,主机和从机用的都是TI官方的keyfob板,从机下载的是官方给的keyfob代码,主机用的SimpleBLECentral代码,在主机里添加了keyfob端的服务UUID,但keyfob广播包里发送了3个服务UUID:
// Proximity Profile Service UUIDs
//#define LINK_LOSS_SERVICE_UUID 0x1803
//#define IMMEDIATE_ALERT_SERVICE_UUID 0x1802
//#define TX_PWR_LEVEL_SERVICE_UUID 0x1804
我在Central代码里添加了LINK_LOSS_SERVICE_UUID如下:
static void simpleBLECentralStartDiscovery( void )
{
uint8 uuid[ATT_BT_UUID_SIZE] = { LO_UINT16( LINK_LOSS_SERVICE_UUID ), // Link Loss Service (Proximity Profile)
HI_UINT16( LINK_LOSS_SERVICE_UUID ) };
.....}
主机怎样通过服务UUID查找到从机的,这个流程哪里有说明??
接下来我又分别添加从机另外两个服务UUID,主机都能查找到从机,主机通过这三个UUID查找从机有没有区别,handle分配是不是不同??
稍微修改下按键,主机已经能和从机连接,但是我想让主机向从机写数据,把keyfob的报警功能打开,我在GATT查找函数加了个写入函数,但是有错:
static void simpleBLEGATTDiscoveryEvent( gattMsgEvent_t *pMsg )
{
attReadByTypeReq_t req_LLAlertLevel;
req_LLAlertLevel.handle = LLAlertLevelHdl;
req_LLAlertLevel.len = 1;
req_LLAlertLevel.value[0] = PP_ALERT_LEVEL_HIGH;
req_LLAlertLevel.sig = 0;
req_LLAlertLevel.cmd = 0;
GATT_WriteCharValue( simpleBLEConnHandle, *req_LLAlertLevel, simpleBLETaskId );
写入时必须要操作的handle才可以吗,主机读写有没有什么范例代码可以参考??API上说明好像不是很清楚