亲爱的支持团队,
我用DA14531MOD dev.kit安装了带有子板的SDK。我成功地闪过codeless_531_set_two_standalone.bin
发出指令:
在+ advstop At + central At + gapstatus 1,0 ok在+ gapscan扫描扫描完成ok
它没有发现任何东西,但是我们有3-4个蓝牙设备。
我们想要读取的设备之一是Ruuvi标签BLE Beacon
https://ruuvi.com/ruuvitag-specs/
谢谢……
嗨janosN,
感谢您的在线问题,以及您对out TINY模块BLE解决方案的兴趣。
看起来AT命令的顺序是正确的。你能在BLE通用应用程序中找到这些设备吗?
可以和另外一个DA14531核对一下吗?
谢谢,PM_Dialog
嗨,对话框的员工,
谢谢你的回答。关于你的第一个问题:是的,我可以用另一个扫描仪找到我的设备。我拿起我的树莓派,安装了一个bler扫描仪。结果如下:
如您所见,它找到三个设备,而我的DA14531MOD_devkit没有找到任何设备。
关于你与其他DA14531模块的第二次问题检查;我们已经订购了10件DA14531 TINY Modules。我想闪几个模块来测试AT+GAPSCAN功能。我会尝试所有三款无代码fw。我将把结果报告给你....
谢谢你的支持。
嗨janosN,
是的,请尝试配置一个TINY模块作为GAP外围设备,并让我知道作为GAP中心的模块是否可以通过空中找到它。
谢谢,PM_Dialog
亲爱的PM_Dialog,
现在,我可以编写TINY模块(感谢用户:cole),我按照您的建议进行了配置;一个作为中心,一个作为外围现在中心可以扫描外围模块:
因此,DA14531模块到另一个模块的工作。但它仍然不能扫描其他任何东西。正如我之前提到的,我需要扫描BLE传感器,温度,压力,湿度编码在制造商的代码如下:
传感器协议描述如下:
https://github.com/ruuvi/ruuvi-sensor-protocols/blob/master/dataformat_0..。
我几乎不相信没有无代码AT命令解决方案。我们甚至不需要用ble连接这些传感器,只需要扫描它们。对于无代码AT,只有3个fw版本,我尝试了所有的版本。
如果无代码扫描不可能,那么接下来会发生什么?
先谢谢你。
嗨janosN,
你能不能在无代码固件上做个小改动,重新构建并运行它?
在user_on_adv_report_ind()中,请在if-statement中做以下更改显示& &
初始:
修改:
谢谢,PM_Dialog
亲爱的PM_Dialog,
多亏了这个建议。我修改了文件:user_codeless.c
编译项目没有错误。但是链接器报告了代码大小超过限制的错误。
我编译与最大优化O3(级别3)。
要么我需要从Keil的许可证,或者另一个选择是,Dialog是如此友好,并发送我的hex文件。
先谢谢你。
嗨janosN,
让我查一下,然后给你答复。
谢谢,PM_Dialog
有解决方案吗?
嗨sfuentes-digi,
请参阅我之前的评论。应该在user_on_adv_report_ind()中进行修改。
谢谢,PM_Dialog
嗨PM_Dialog,
谢谢你反应这么快,但我的意思是,如果有任何解决方案来编译文件。
我有同样的错误,有其他程序编译或其他方式吗?
谢谢。
亲爱的PM-Dialog,
亲爱的Sfuentes-digi,
下面我将详细介绍无代码在+ GAPSCAN问题。我一开始遇到的问题如下:
Nr.1解决对话建议省略的内容显示& &如:
如果(& & (param - >报告。Evt_type == 0x00 || param->报告。evt_type == 0x04)) //只有ADV_IND和SCAN_RESPONSE*/
:
如果((param - >报告。Evt_type == 0x00 || param->报告。evt_type == 0x04)) //只有ADV_IND和SCAN_RESPONSE*/
为了解决Nr.2:
检查上面的代码可以清楚地看到param - > report.evt_type负责AT+GAPSCAN接受什么样的广告。我在找另一个描述这些类型的文件。很难找到下面的头文件:…\ \ co_bt.h常见\ api;这里是第1340-1355行:
/ / /广告HCI类型
枚举
{
/ / /接入无向广告
ADV_CONN_UNDIR = 0 x00,
///可连接的高负载周期定向广告
ADV_CONN_DIR,
/ / /发现的无向广告
ADV_DISC_UNDIR,
/ / / Non-connectable无向广告
ADV_NONCONN_UNDIR,
///可连接的低占空比定向广告
ADV_CONN_DIR_LDC,
///广告类型值检查的枚举结束值
ADV_END
};
在这个0x00-0x05的枚举中,我们可以选择不同的类型。所以,我只需要ADV_NONCONN_UNDIR(0x03值),因为遥测信标发布不可连接的无向包。你可以阅读更多关于广告类型:
https://www.novelbits.io/bluetooth-low-energy-advertisements-part-1/(滚动到页面中间…)所以,我进一步修改了这个函数:
如果((param - >报告。//只有ADV_NONCONN_UNDIR . evt_type == 0x03)
现在所有的信标设备都被列出了,其他的也被过滤掉了。
最后一个问题,我的原始数据信标应该传输的数据在哪里比如温度,气压,湿度,x-y-z加速度,电池电压?
为了解决Nr.3:
为此,您需要进一步修改该函数
你看到这里的param->报告。数据[30]是原始数据数组中的最后一个字节。当然,adv_rep_str[40]的原始大小是不够的,它现在是260
char adv_rep_str [260];/ * 40 * /
上面的代码有点难看;我本可以用更优雅的方式在循环中编写,但它管用,我稍后再做……
为了解决Nr.4:我从Keil那里拿到的30天的驾照已经过期了。我需要一种减少代码大小的方法。参见我之前的主题:无代码项目规模减少-问题解决....
这里我发现了两行user_at_commands.h你可以将其注释掉以获得更多空间:
”/ / #定义USE_AT_CONPAR和/ / #定义USE_AT_BND是有效的,链接后,报告的代码大小为:27812(codeless_531_datapump)。所以,我现在可以编写项目,没有额外的Keil许可证。”
这是一个很长的解释,但我认为你可以解决你的AT+GAPSCAN问题。我压缩了整个修改过的函数,并将其与显示结果的截屏放在一起。
感谢Dialog的支持。
祝好运、健康!
问候,
Janos N。
非常感谢你的帮助。现在我可以看到我的设备了。
为了编译,我不得不在user_at_command.h中注释更多的行,只注释您指出的两行会增加程序的大小。
我非常感谢你花时间回复你的信息,这很有帮助。
的问候。