|
下面我具体说一下我对官方例程的修改。我用的是S132\13.0.0版本的例程。
1,修改函数is_uuid_present。
我按照青风PDF 在 case BLE_GAP_EVT_ADV_REPORT: 处打印了 收到了广播包:
p_adv_report->type = 0;
adv_report->scan_rsp = 0 ;
data is : 0x02 , 0x01,0x06, 0x02 ,0x 0a ,0xf6, 0x05, 0xff ,0x21,0x26,0x50,0x01
然后在函数is_uuid_present内部修改:
// if ( (field_type == BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_MORE_AVAILABLE)
// || (field_type == BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_COMPLETE))
if(field_type == BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA)
总之就是直接确认了0XFF后面是不是0X2621。如果是就返回成功然后建立连接。
但是0X2621并不是产品的UUID。而是下图所示的东西:
我对于在这里调用sd_ble_uuid_decode会不会把0X2621作为UUID传进去也感到不安,但是也不懂,也就放在那里了。
|
|