I wanted to deploy 'telink_adv_trigger_paring_8258' special packet, shown in the 825x_master_kma_dongle demo, for my application taking 2 8251 modules as Master and slave, and deploy SMP, to trigger Master/Slave pairing/bonding. My understanding is that I should use bls_ll_setAdvData to set Adv Data with the same special trigger packet on Slave side(although any demo in slave role didn't show this kind of codes), but could not successfully get the right packet on Master side, and data in the event_adv_report_t always show the data len is 1, while the telink_adv_trigger_paring_8258[] is 8-byte long. What may be wrong with this trigger-pairing codes? Could you give me an example of this method?
hi,
Your operation is OK. You can use mobile phone software to see whether the data sent by the slave device is normal.
Soyo, thanks for your quick response.This problem still exists. I have found nRFConnect only shows contents of default tbl_scanRsp[], so it's response data, not Adv data. On Master side by BDT the event_adv_report_t data buf still shows data len is 1 byte.And after that byte it's rssi, and my tests shows the rssi reflects real signal strength.
What other reason may cause the problem?
Hi Soyo, it seems after disabling SMP on slave side, the adv data buffer on Master side shows right data.But the link is not SMP managed at this time.
Could you figure out a plan to fix it?
It has nothing with SMP,try use the unmodified protocol stack and look the broadcast packet in master.
What is unmodified protocal stack. I use Version 3.4.2.1 patch0005 of 825x,and see the problem. If SMP is disabled on slave side, Master side shows right Adv length and contents, and after enabling SMP, the len shown in BDT is always 1 and content is 0x00.
In the example codes, in blm_host.c, if you only keep 'user_manual_paring = (memcmp(pa->data, telink_adv_trigger_paring_8258, sizeof(telink_adv_trigger_paring_8258)) == 0) && (rssi > -56)'; and remove 'user_manual_paring = dongle_pairing_enable && (rssi > -56); ', you may see the issue.