亲爱的支持团队,
我用DA14531MOD dev.kit安装了带有子板的SDK。我成功地闪过codeless_531_set_two_standalone.bin
发出指令:
At + advstop At + central At + gapstatus 1,0 ok At + gapscan scan complete ok
它没有发现任何东西,但是我们有3-4个蓝牙设备。
我们想要阅读的一个设备是Ruuvi标签BLE Beacon:
https://ruuvi.com/ruuvitag-specs/
谢谢……
嗨janosN,
感谢您的在线问题和您对我们的微型模块BLE解决方案的兴趣。
看来AT命令的顺序是正确的。你能在BLE通用应用中找到这些设备吗?
能否与另一个DA14531核对一下?
谢谢,PM_Dialog
嗨,对话框的员工,
谢谢你的回答。关于你的第一个问题:是的,我可以用另一个扫描仪找到我的设备。我拿着我的树莓派,安装了一个blescanner。结果如下:
如您所见,它找到了三个设备,而我的DA14531MOD_devkit没有找到。
关于你的第二个问题,与其他DA14531模块核对;我们已经订购了10件DA14531 TINY Modules。我想flash几个模块来测试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连接这些传感器,只需扫描它们。对于CodeLess AT,只有3个fw版本,我尝试了所有的。
如果不可能进行无编码扫描,那么接下来会发生什么?
非常感谢。
嗨janosN,
你能对无代码固件做一个小的改变,重新构建并运行它吗?
在user_on_adv_report_ind()中,请对if-statement做如下修改显示& &
初始:
修改:
谢谢,PM_Dialog
亲爱的PM_Dialog,
谢谢你的建议。我修改了文件user_codeless.c
编译项目没有错误。但是链接器报告错误,代码大小超过了限制。
我编译与最大优化O3(级别3)。
要么我需要Keil的许可,要么另一个选择是Dialog非常友好,并发送给我十六进制文件。
非常感谢。
嗨janosN,
让我查一下,然后再回复你。
谢谢,PM_Dialog
有解决方案吗?
嗨sfuentes-digi,
请看我之前的评论。应该对user_on_adv_report_ind()进行修改。
谢谢,PM_Dialog
嗨PM_Dialog,
谢谢你这么快的反应,但我的意思是,如果有任何解决方案编译文件。
我有同样的错误,有没有另一个程序编译或其他方式?
谢谢。
亲爱的PM-Dialog,
亲爱的Sfuentes-digi,
下面我将详细介绍CodeLess在+ 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 - >报告。evt_type == 0x03)) //仅支持ADV_NONCONN_UNDIR
现在所有的信标设备都被列出,其他的则被过滤掉。
最后一个问题:我的原始数据在哪里信标应该传输的数据,比如温度,气压,湿度,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中注释更多的行,只注释您指出的两行会增加程序的大小。
我非常感谢您花时间回复您的信息,这很有帮助。
的问候。