无代码AT+GAPSCAN没有找到....

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
13个员额/ 0个新员额
最后发表
janosN
离线
最后看到:7个月3个星期前
加入:2020-11-16 14:59
无代码AT+GAPSCAN没有找到....

亲爱的支持团队,

我用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/

谢谢....

PM_Dialog
离线
最后看到:2小时1分钟前
工作人员
加入:2018-02-08 11:03
嗨janosN,

嗨janosN,

感谢您的在线问题,以及您对out TINY模块BLE解决方案的兴趣。

看起来AT命令的顺序是正确的。你能在BLE通用应用程序中找到这些设备吗?

可以和另外一个DA14531核对一下吗?

谢谢,PM_Dialog

janosN
离线
最后看到:7个月3个星期前
加入:2020-11-16 14:59
嗨,对话框的员工,

嗨,对话框的员工,

谢谢你的回答。关于你的第一个问题:是的,我可以用另一个扫描仪找到我的设备。我拿起我的树莓派,安装了一个bler扫描仪。结果如下:

pi@raspberrypi:~ $ sudo blescan扫描设备…设备(新):64:1c: b0:89:2b: 0 e(公共),-94年dBm(不可连接)制造商:< 75004204018060641 cb0892b0e661cb0892b0d01b91baea59500 >设备(新):28:39:5e: 3 f: 79:8e(公共),-48 dBm短本地名称:“(电视)三星5系列(43)标记:< 1 >制造商:< 7500420401014128395 e3f798e2a395e3f798dff000000000000 >设备(新):df:c7:96:0d:31:89 (random), -57 dBm (not connectable) Flags: <06> Manufacturer: <990405146e4272beeafc48010cff40adb6013940dfc7960d3189> pi@raspberrypi:~ $

如您所见,它找到三个设备,而我的DA14531MOD_devkit没有找到任何设备。

关于你与其他DA14531模块的第二次问题检查;我们已经订购了10件DA14531 TINY Modules。我想闪几个模块来测试AT+GAPSCAN功能。我会尝试所有三款无代码fw。我将把结果报告给你....

谢谢你的支持。

PM_Dialog
离线
最后看到:2小时1分钟前
工作人员
加入:2018-02-08 11:03
嗨janosN,

嗨janosN,

是的,请尝试配置一个TINY模块作为GAP外围设备,并让我知道作为GAP中心的模块是否可以通过空中找到它。

谢谢,PM_Dialog

janosN
离线
最后看到:7个月3个星期前
加入:2020-11-16 14:59
亲爱的PM_Dialog,

亲爱的PM_Dialog,

现在,我可以编程的小模块(感谢用户:油菜),我设置为你的建议;一个中央,一个作为外周和现在的中心可以扫描外围模块:

AT+GAPSCAN SCAN (*) 48:23:35:00:72:77,P, Type: ADV, RSSI:-24 (*) 48:23:35:00:72:77,P, Type: ADV, RSSI:-21 (*

因此,DA14531模块到另一个模块的工作。但它仍然不能扫描其他任何东西。正如我之前提到的,我需要扫描BLE传感器,温度,压力,湿度编码在制造商的代码如下:

pi@raspberrypi:~ $ sudo blescan扫描设备…Device (new): df:c7:96:0d:31:89 (random), -57 dBm (not connectable) Flags: <06> Manufacturer: <990405146e4272beeafc48010cff40adb6013940dfc7960d3189> pi@raspberrypi:~ $

传感器协议描述如下:

https://github.com/ruuvi/ruuvi-sensor-protocols/blob/master/dataformat_0..。

我几乎不相信没有无代码AT命令解决方案。我们甚至不需要用ble连接这些传感器,只需要扫描它们。对于无代码AT,只有3个fw版本,我尝试了所有的版本。

如果无代码扫描不可能,那么接下来会发生什么?

先谢谢你。

PM_Dialog
离线
最后看到:2小时1分钟前
工作人员
加入:2018-02-08 11:03
嗨janosN,

嗨janosN,

你能不能在无代码固件上做个小改动,重新构建并运行它?

在user_on_adv_report_ind()请不要在if语句如下变化:删除展示 &&

初始:

如果(显示&&(param-> report.evt_type == 0×00 || param-> report.evt_type == 0×04))//只ADV_IND和SCAN_RESPONSE

修改:

如果((param - >报告。Evt_type == 0x00 || param->报告。evt_type == 0x04)) //只有ADV_IND和SCAN_RESPONSE

谢谢,PM_Dialog

janosN
离线
最后看到:7个月3个星期前
加入:2020-11-16 14:59
亲爱的PM_Dialog,

亲爱的PM_Dialog,

多亏了这个建议。我修改了文件:user_codeless.c

编译项目没有错误。但是链接器报告了代码大小超过限制的错误。

链接…\ out_531 \ codeless_531_datapump。axf: error: L6050U: The code size of this image (32792 bytes) exceeded The maximum allowed for this version of The linker.错误:没有足够的信息来生成一个SYMDEFs文件。完成:1个信息,0个警告,0个错误和1个致命错误消息。

我编译与最大优化O3(级别3)。

要么我需要从Keil的许可证,或者另一个选择是,Dialog是如此友好,并发送我的hex文件。

先谢谢你。

PM_Dialog
离线
最后看到:2小时1分钟前
工作人员
加入:2018-02-08 11:03
嗨janosN,

嗨janosN,

让我查一下,然后给你答复。

谢谢,PM_Dialog

sfuentes-digi
离线
最后看到:7个月1个星期前
加入:2021-01-18 09:26
有解决方案吗?

有解决方案吗?

PM_Dialog
离线
最后看到:2小时1分钟前
工作人员
加入:2018-02-08 11:03
嗨sfuentes-digi,

嗨sfuentes-digi,

请参阅我之前的评论。应该在user_on_adv_report_ind()中进行修改。

谢谢,PM_Dialog

sfuentes-digi
离线
最后看到:7个月1个星期前
加入:2021-01-18 09:26
嗨PM_Dialog,

嗨PM_Dialog,

谢谢你反应这么快,但我的意思是,如果有任何解决方案来编译文件。

我有同样的错误,有其他程序编译或其他方式吗?

谢谢。

janosN
离线
最后看到:7个月3个星期前
加入:2020-11-16 14:59
亲爱的PM-Dialog,

亲爱的PM-Dialog,

亲爱的Sfuentes,数码网络,

下面我将详细介绍无代码在+ GAPSCAN问题。我一开始遇到的问题如下:

  1. 它只扫描了其他对话框外围设备
  2. 在收到Dialog的修改建议后,它扫描了更多的外围设备。但它没有扫描我需要的遥测数据信标设备。
  3. 它没有显示测量数据编码的实际原始数据。它只列出了地址、类型和RSSI数据。
  4. 如何用Keil-demo许可证编译项目,即使是原始的无代码项目对Keil链接器来说也太大了。

Nr.1解决:什么对话建议漏下展示 &&如:

如果(显示&&(param-> report.evt_type == 0×00 || param-> report.evt_type == 0×04))//只ADV_IND和SCAN_RESPONSE*/

:

如果((param - >报告。Evt_type == 0x00 || param->报告。evt_type == 0x04)) //只有ADV_IND和SCAN_RESPONSE*/

为了解决Nr.2:

检查上面的代码,很明显,param - > report.evt_type负责AT+GAPSCAN接受什么样的广告。我在找另一个描述这些类型的文件。很难找到下面的头文件:... \ COMMON \ API \ co_bt.h;这里是第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:

为此,您需要进一步修改该函数

char adv_rep_str [260];/ *原来的40 * / / *原稿* / / *“(%C)%02X:%02X:%02X:%02X:%02X:%02X,%C,类型:%S,RSSI:%d \ r\ n “个* / / *改变* / / *”(%C)%02X:%02X:%02X:%02X:%02X:%02X,%C,类型:%S,RSSI:%d \ r \nRawData长度:\ r \ n%d \ r \ n “个* / arch_sprintf(adv_rep_str,”(%C)%02X:%02X:%02X:%02X:%02X:%02X,%C,类型:%S,RSSI:%d,RAWDATA-长度:%d \ r \ n”个“RAWDATA(十六进制):%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X“;“%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X;%02X”为 “\ r \ n” 个,codeless_service,param-> report.adv_addr.addr [5],param-> report.adv_addr.addr [4],param-> report.adv_addr.addr [3],param-> report.adv_addr.addr [2],param-> report.adv_addr.addr [1],param-> report.adv_addr.addr [0],address_type,type_str,param-> report.rssi  -  255,的sizeof(param-> report.data),param-> report.data [0],param-> report.data [1],param-> report.data [2],param-> report.data [3],param-> report.data [4],param-> report.data [5],param-> report.data [6],param-> report.data [7],param-> report.data [8],param->不到原始t.data [9],param-> report.data [10],param-> report.data [11],param-> report.data [12],param-> report.data [13],param->report.data [14],param-> report.data [15],param-> report.data [16],param-> report.data [17],param-> report.data [18],param->report.data [19],param-> report.data [20],param-> report.data [21],param-> report.data [22],param-> report.data [23],param->report.data [24],param-> report.data [25],param-> report.data [26],param-> report.data [27],param-> report.data [28],param->report.data [29],param-> report.data [30]);send_to_local(adv_rep_str);

你看到这里的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。

附件:
sfuentes-digi
离线
最后看到:7个月1个星期前
加入:2021-01-18 09:26
非常感谢你的帮助。

非常感谢你的帮助。现在我可以看到我的设备了。

为了编译,我不得不在user_at_command.h中注释更多的行,只注释您指出的两行会增加程序的大小。
我非常感谢你花时间回复你的信息,这很有帮助。

问候。