无代码AT+GAPSCAN没有发现任何东西....

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.wsdof.com/support.我们将在未来几天修复bug /优化搜索和标记。
13个帖子/ 0个新
最后发表
janosN
离线
最后看到:5个月前
加入:2020-11-16 14:59
无代码AT+GAPSCAN没有发现任何东西....

亲爱的支持团队,

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

谢谢……

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

嗨janosN,

感谢您的在线问题和您对我们的微型模块BLE解决方案的兴趣。

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

能否与另一个DA14531核对一下?

谢谢,PM_Dialog

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

嗨,对话框的员工,

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

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:~ $ . dBm = 0

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

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

谢谢你的支持。

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

嗨janosN,

好的,请试着配置一个TINY模块作为GAP外设,如果作为GAP中心的模块可以通过无线电找到它,请告诉我。

谢谢,PM_Dialog

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

亲爱的PM_Dialog,

现在,由于我可以编写TINY模块(感谢用户:cole),我按照您的建议进行了配置;一个作为中心,一个作为外设,现在中央可以扫描外设模块:

P, Type: ADV, RSSI:-21 (*) 48:23:35:00:72:77,P, Type: ADV, RSSI:-22 SCAN COMPLETE OK . (*, Type: ADV, RSSI:-22 SCAN COMPLETE OK .

所以,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:~ $ . dBm Flags: <06> Manufacturer: <990405146e4272beeafc48010cff40adb6013940dfc7960d3189> pi@raspberrypi:~ $

传感器协议描述如下:

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

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

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

非常感谢。

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

嗨janosN,

你能对无代码固件做一个小的改变,重新构建并运行它吗?

在user_on_adv_report_ind()中,请对if-statement做如下修改显示& &

初始:

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

修改:

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

谢谢,PM_Dialog

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

亲爱的PM_Dialog,

谢谢你的建议。我修改了文件user_codeless.c

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

链接…\ out_531 \ codeless_531_datapump。错误:L6050U:这个图像的代码大小(32792字节)超过了这个版本的链接器允许的最大大小。没有足够的信息来生成一个SYMDEFs文件。完成:1条信息,0条警告,0条错误和1条致命错误消息。

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

要么我需要Keil的许可,要么另一个选择是Dialog非常友好,并发送给我十六进制文件。

非常感谢。

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

嗨janosN,

让我查一下,然后再回复你。

谢谢,PM_Dialog

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

有解决方案吗?

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

嗨sfuentes-digi,

请看我之前的评论。应该对user_on_adv_report_ind()进行修改。

谢谢,PM_Dialog

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

嗨PM_Dialog,

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

我有同样的错误,有没有另一个程序编译或其他方式?

谢谢。

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

亲爱的PM-Dialog,

亲爱的Sfuentes-digi,

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

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

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:

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

char adv_rep_str [260];原始/ * 40 * / / *源自* / / *”(% c) % 02 x: % 2 x: % 2 x: % 2 x: % 2 x: % 2 x % c类型:% s, RSSI: % d \ r \ n”* / / *了* / / *”(% c) % 02 x: % 2 x: % 2 x: % 2 x: % 2 x: % 2 x % c类型:% s, RSSI: % d \ r \ nRawData-length: \ r \ n % d \ r \ n”* / arch_sprintf (adv_rep_str,”(% c) % 02 x: % 2 x: % 2 x: % 2 x: % 2 x: % 2 x % c类型:% s, RSSI: % d, RawData-lenght: % d \ r \ n”“RawData(十六进制):% 02 x, x % 02; % 02 x; % 2 x, x % 02; % 2 x, x % 02; % 2 x, x % 02; % 2 x, x % 02; % 2 x, x % 02; % 2 x, x % 02;““% 2 x, x % 02; % 02 x; % 02 x; % 02 x; % 02 x; % 02 x; % 02 x; % 02 x; % 02 x; % 02 x; % 02 x; % 02 x; % 02 x; % 02 x; x % 02”“\ 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->报告。Rssi - 255, sizeof(param->report.data), param->report.data。数据[0],param - >报告。数据[1],param - >报告。数据[2],param - >报告。数据[3],param - >报告。数据[4],param - >报告。[5]的数据,参数- >报告。数据[6],param - >报告。数据[7],param - >报告。数据[8],param - >报告。数据[9],param - >报告。数据[10],param - >报告。数据[11],param - >报告。数据[12],param - >报告。数据[13],param - >报告。数据[14],param - >报告。数据[15],param - >报告。数据[16],param - >报告。数据[17],param - >报告。数据[18],param - >报告。数据[19],param - >报告。数据[20],param - >报告。数据[21],param - >报告。数据[22],param - >报告。数据[23],param - >报告。数据[24],param - >报告。[25]的数据,参数- >报告。数据[26],param - >报告。数据[27],param - >报告。数据[28],param - >报告。数据[29],param - >报告。数据[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
离线
最后看到:4个月,3个星期前
加入:2021-01-18 09:26
非常感谢你的帮助。

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

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

的问候。