我发现了iBeaCon广告的一个bug,它使芯片(BCM20736S)本质上无用;唯一的解决办法是切换
电源。问题是,我们告诉芯片用BLoopReLi可发现的广告(HuixunundTythOnDebug,NULL),最终芯片停止广告。甚至检查BLoopRixGETSimabable(),也会发现它是高非定向的,但如果使用扫描仪,它就不会出现。我们已经确定它与使用iBeaCon广告(iBeaCon .a -iBeAcOnS
tiX())和iBeAcOnStIX()方法有关,因为当我们删除该代码时,不会出现此问题。
给你一个小的背景下,我们如何编程芯片(装置)的工作和主要问题,请参阅以下:
设备和
手机流量:
一对设备与移动手持设备连接一次,我们停止广告,阅读一些特性,使一些指示(在手机侧)为我们有一个按钮,并发送任何按钮按下到手机。在上一步完成之后,手机告诉设备断开连接。然后设备等待60min开始再次广告(通过BelaPiTrimyStaseAppTimeTimeT)。然而,按下按钮将使它开始广告(转到步骤2)。在60min计时器关闭后,它将再次开始广告。然后,如果30秒的广告没有连接,设备将停止广告(转到步骤4)。如果它确实连接到重复步骤2。
***导致这个问题的原因是什么?
如果我们在以上步骤中做广告片:
BLUROPREIL可发现(高无定向可发现,NULL);
IbAcon NoStIX();
它最终会停止广告,这意味着根据任何扫描仪,你将根本看不到设备。但是,基于设备的内部日志,什么都不会出错。这通常发生在大约10个周期左右,而不是连接到手机上,但看起来是随机的。
***不引起问题的是什么?
对于上述步骤中的广告片段,如果省略iBeAcOnSistAcess()的含义,只需做:
BLUROPREIL可发现(高无定向可发现,NULL);
一切都很好。
因此,我需要帮助,因为我不知道发生了什么,不能使用iBeaCon广告,这是一个产品的主要特点,我试图创造。
以上来自于百度翻译
以下为原文
I have found a bug with iBeacon advertising that renders the chip(BCM20736S) essentially useless; The only way to fix this is to toggle the power. The problem is that we tell the chip to start advertising with bleprofile_Discoverable(HIGH_UNDIRECTED_DISCOVERABLE, NULL) and eventually the chip just ceases to actaully advertise. Even checking the bleprofile_GetDiscoverable() says that it is HIGH_UNDIRECTED_DISCOVERABLE but if you use a scanner it does not show up. We have determined it has to do with using iBeacon advertising (ibeacon.a - ibeacon_start() and ibeacon_stop() methods) as when we remove that code this problem does not arise.
To give you a little context on how we have programmed the chip (device) to work and the main problem please see below:
Device and handset flow:
- Pair device with mobile handset
- Once device is connected we stop advertising, read some characteristics, enable some indications(on the handset side) for a button we have and send any button presses to the handset.
- After previous step is done the handset tells the device to disconnect.
- The device then waits 60min to start advertising again (via bleapptimer_startAppTimer). However, pressing the button will make it start advertising (go to step 2).
- After 60min timer goes off it will start advertising again. Then if after 30 seconds of advertising it does not connect the device will stop advertising (go to step 4).
- If it does connect repeat with step 2.
**** What causes the issue ****
For the advertising piece in the above steps if we do:
bleprofile_Discoverable(HIGH_UNDIRECTED_DISCOVERABLE, NULL);
ibeacon_start();
It will eventually stop advertising, meaning according to any scanner you will not be able to see the device at all. However, nothing will seem wrong based on internal logs of the device.
This usually happens around 10 or so cycles of it not connecting to the handset but can seem random.
**** What does not cause the issue *****
For the advertising piece in the above steps if we omit the ibeacon_start() meaning just do:
bleprofile_Discoverable(HIGH_UNDIRECTED_DISCOVERABLE, NULL);
Everything works fine.
So I need help as I have no idea what is happening and cannot use ibeacon advertising which is a main feature of a product I am trying to create.