我使用 simple_observer 的示例代码创建一个程序。 但是、无需任何器件即可获取扫描数据和 RSSI 值。
我必须通过 eddystone 信标的 InstanceID、命名空间和 RSSI 值通过观测器进行通知。
我如何修改它、以便在观测器示例中读取该值
如果有好方法、请建议
静态空 SimpleObserver_processRoleEvent (gapObserverRoleEvent_t * pEvent)
{
switch ( pEvent->gap.opcode )
{
案例 GAP_DEVICE_INIT_DONE_EVENT:
{
Display_print0 (dispHandle、1、0、Util_convertBdAddr2Str (pEvent->initDone.devAddr));)
display_print0 (dispHandle、2、0、"initialized");
//提示用户开始扫描。
Display_print0 (dispHandle、5、0、"Discover ->");
}
中断;
案例 GAP_DEVICE_INFO_EVENT:
{
SimpleObserver_addDeviceInfo (pEvent->deviceInfo.addr、
pEvent->deviceInfo.addrType);
}
中断;
案例 GAP_DEVICE_DISCOVERY_EVENT:
{
if (pEvent->GAP.HDR.STATUS ==成功)
{
//发现完成。
扫描= false;
if (ENABLE_UNLIMITE_SCAN_RES == false)
{
//复制结果。
scanRes = pEvent->discCmpl.numDevs;
memcpy (devList、pEvent->discCmpl.pDevList、
(sizeof (gapDevRec_t)* pEvent->discCmpl.numDevs);
}
Display_Print1 (dispHandle、2、0、"Devices found %d"、scanRes);
如果( scanRes >0)
{
Display_print0 (dispHandle、3、0、"<- to Select");
}
//初始化扫描索引。
scanIdx =-1;
//提示用户可以在此状态下重新执行扫描。
Display_print0 (dispHandle、5、0、"Discover ->");
}
否则
{
if (pEvent->GAP.HDR.STATUS == GAP_LLERROR_INVALID_PARAMETERS)
{
display_print0 (dispHandle、3、0、"invalid parameters");
}
否则为(pEvent->GAP.HDR.STATUS == GAP_LLERROR_COMMAND_DISAVLED)
{
display_print0 (dispHandle、3、0、"命令被禁止");
}
否则
{
display_print0 (dispHandle、3、0、"error");
}
}
}
中断;
默认值:
中断;
}
}