This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AOA 多设备连接问题

有一下几个问题请教一下:

1.按照BLE5.1中关于AOA的方式,应该有两种模式,一种是广播模式,一种是连接模式。请问现在的例程里是连接模式的吗?

2.实际测试,当发完RTLS_CMD_CONNECT指令之后,需要等待5-10秒的时间,才会回复连接成功。这个比蓝牙连接的时间要的多。

[18:25:34.652]发→◇FE 09 00 39 03 00 8D 07 75 03 EE 04 90 01 B4 □
[18:25:34.704]收←◆FE 01 00 79 03 00 7B
[18:25:34.790]收←◆FE 1B 00 59 02 00 00 68 AE BA 08 20 03 07 00 00 07 FF FF FF FF 1F 97 06 3D 00 8D 07 75 03 EE 04 B2
[18:25:40.282]收←◆FE 03 00 59 03 00 00 00 59

3.我们现在测试,同时连接6台设备的情况下,并让设备一直输出IQ数据,过一段时间之后蓝牙设备会死机。实测2台设备的情况下不会。这个有可能是哪个方便原因。python相应的配置如下:

connect_interval_mSec = 500

rtlsUtil.aoa_start(cte_length=20, cte_interval=0)
  • 1、是连接模式
    2、每个节点都需要这么长时间吗?
    3、怀疑是处理能力的原因,虽然测试可以同时测量8个AOA 从机,但由于实际应用不同,有可能出现处理不过来的情况
  • 1.请问现在的广播模式,是否已经有实现的例程?
    2.是的,每个节点在都至少需要5秒的时间。虽然可以同时发送多个设备的RTLS_CMD_CONNECT,和RTLS_CMD_SET_PARAMTERS,RTLS_CMD_ENABLE命令,但每个设备至少要收到FE 03 00 59 03 00 00 00 59命令后才可以突出IQ数据。
    3.关于debug找原因,有没有比较完整的指导文章。

    补充:
    现在想实现多设备的测量。由于2的情况RTLS_CMD_CONNECT时间特别长,通过多设备之间的切换时间就太长了。有没有什么办法可以实现长期稳定的多设备测量?广播模式是不是会更好?
  • 目前没有广播模式的例程,多设备的稳定性可能还需要自行完善代码,一个建议是减少数据收发量,避免多设备同时发数据。AOA例程毕竟只是一个功能展示,实际应用肯定要改进的
  • 好的。那再请教一下,第2点的情况,连接的回复确认,为什么需要这么长的时间?中间做了哪些工作?可不可以简化?蓝牙的连接应该是不需要这么长时间的。
  • 请问你有没有改过例程?例程不需要这么长的时间,log信息如下:

    [2020-11-04 15:58:54,948] serialnode - DEBUG - >>> UNPIMessage(originator=Ap type=SyncReq, subsystem=25, command=RTLS_CMD_CONNECT, data=00:B2:BA:EE:B0:6F:80:50:00)
    [2020-11-04 15:58:54,948] serialnode - DEBUG - >>> FE:09:00:39:03:00:B2:BA:EE:B0:6F:80:50:00:DA
    [2020-11-04 15:58:55,004] serialnode - DEBUG - <<< FE:01:00:79:03:00:7B
    [2020-11-04 15:58:55,004] serialnode - DEBUG - <<<
    [2020-11-04 15:58:55,004] serialnode - DEBUG - <<< UNPIMessage(originator=Nwp type=SyncRsp, subsystem=RTLS, command=RTLS_CMD_CONNECT, data=00)
    [2020-11-04 15:58:55,004] serialnode - DEBUG - <<<
    [2020-11-04 15:58:55,004] rtlsnode - DEBUG - Have 0 subscribers for UNPIMessage(originator=Nwp type=SyncRsp, subsystem=RTLS, command=RTLS_CMD_CONNECT, data=00)
    [2020-11-04 15:58:55,004] root - INFO - MASTER : 80:6F:B0:1E:3A:34 --> {'type': 'Response', 'command': 'RTLS_CMD_CONNECT', 'payload': {'status': 'RTLS_SUCCESS'}}
    [2020-11-04 15:58:55,004] asyncio - DEBUG - poll 9125.000 ms took 156.000 ms: 1 events
    [2020-11-04 15:58:55,020] websockets.protocol - DEBUG - server > Frame(fin=True, opcode=1, data=b'{"identifier": "80:6F:B0:1E:3A:34", "message": {"originator": "Nwp", "type": "SyncRsp", "subsystem": "RTLS", "command": "RTLS_CMD_CONNECT", "payload": {"status": "RTLS_SUCCESS"}}}', rsv1=False, rsv2=False, rsv3=False)
    [2020-11-04 15:58:55,116] serialnode - DEBUG - <<< FE:1B:00:59:02:00:00:4A:F6:93:33:A0:00:07:00:00:07:FF:FF:FF:FF:1F:FB:42:77:00:B2:BA:EE:B0:6F:80:94
    [2020-11-04 15:58:55,116] serialnode - DEBUG - <<<
    [2020-11-04 15:58:55,116] serialnode - DEBUG - <<< UNPIMessage(originator=Nwp type=AsyncReq, subsystem=RTLS, command=RTLS_CMD_CONN_PARAMS, data=00:00:4A:F6:93:33:A0:00:07:00:00:07:FF:FF:FF:FF:1F:FB:42:77:00:B2:BA:EE:B0:6F:80)
    [2020-11-04 15:58:55,116] serialnode - DEBUG - <<<
    [2020-11-04 15:58:55,116] rtlsnode - DEBUG - Have 0 subscribers for UNPIMessage(originator=Nwp type=AsyncReq, subsystem=RTLS, command=RTLS_CMD_CONN_PARAMS, data=00:00:4A:F6:93:33:A0:00:07:00:00:07:FF:FF:FF:FF:1F:FB:42:77:00:B2:BA:EE:B0:6F:80)
    [2020-11-04 15:58:55,116] rtlsnode - INFO - PASSIVE : 80:6F:B0:EE:B6:1B <-- {'type': 'Command', 'command': 'RTLS_CMD_CONN_PARAMS', 'payload': {'connHandle': 0, 'accessAddress': 865334858, 'connInterval': 160, 'hopValue': 7, 'mSCA': 0, 'currChan': 7, 'chanMap': [255, 255, 255, 255, 31], 'crcInit': 7815931}}
    [2020-11-04 15:58:55,116] root - INFO - MASTER : 80:6F:B0:1E:3A:34 --> {'type': 'Event', 'command': 'RTLS_CMD_CONN_PARAMS', 'payload': {'connHandle': 0, 'accessAddress': 865334858, 'connInterval': 160, 'hopValue': 7, 'mSCA': 0, 'currChan': 7, 'chanMap': [255, 255, 255, 255, 31], 'crcInit': 7815931, 'peerAddr': '80:6F:B0:EE:BA:B2'}}
    [2020-11-04 15:58:55,116] asyncio - DEBUG - poll 8953.000 ms took 93.000 ms: 1 events
    [2020-11-04 15:58:55,124] websockets.protocol - DEBUG - server > Frame(fin=True, opcode=1, data=b'{"identifier": "80:6F:B0:1E:3A:34", "message": {"originator": "Nwp", "type": "AsyncReq", "subsystem": "RTLS", "command": "RTLS_CMD_CONN_PARAMS", "payload": {"connHandle": 0, "accessAddress": 865334858, "connInterval": 160, "hopValue": 7, "mSCA": 0, "currChan": 7, "chanMap": [255, 255, 255, 255, 31], "crcInit": 7815931, "peerAddr": "80:6F:B0:EE:BA:B2"}}}', rsv1=False, rsv2=False, rsv3=False)
    [2020-11-04 15:58:55,172] serialnode - DEBUG - >>> UNPIMessage(originator=Ap type=SyncReq, subsystem=25, command=RTLS_CMD_CONN_PARAMS, data=00:00:4A:F6:93:33:A0:00:07:00:00:07:FF:FF:FF:FF:1F:FB:42:77:00)
    [2020-11-04 15:58:55,172] serialnode - DEBUG - >>> FE:15:00:39:02:00:00:4A:F6:93:33:A0:00:07:00:00:07:FF:FF:FF:FF:1F:FB:42:77:00:43
    [2020-11-04 15:58:55,227] serialnode - DEBUG - <<< FE:01:00:79:02:00:7A
    [2020-11-04 15:58:55,227] serialnode - DEBUG - <<<
    [2020-11-04 15:58:55,227] serialnode - DEBUG - <<< UNPIMessage(originator=Nwp type=SyncRsp, subsystem=RTLS, command=RTLS_CMD_CONN_PARAMS, data=00)
    [2020-11-04 15:58:55,227] serialnode - DEBUG - <<<
    [2020-11-04 15:58:55,227] rtlsnode - DEBUG - Have 0 subscribers for UNPIMessage(originator=Nwp type=SyncRsp, subsystem=RTLS, command=RTLS_CMD_CONN_PARAMS, data=00)
    [2020-11-04 15:58:55,227] root - INFO - PASSIVE : 80:6F:B0:EE:B6:1B --> {'type': 'Response', 'command': 'RTLS_CMD_CONN_PARAMS', 'payload': {'status': 'RTLS_SUCCESS'}}
    [2020-11-04 15:58:55,227] asyncio - DEBUG - poll 8844.000 ms took 94.000 ms: 1 events
    [2020-11-04 15:58:55,227] websockets.protocol - DEBUG - server > Frame(fin=True, opcode=1, data=b'{"identifier": "80:6F:B0:EE:B6:1B", "message": {"originator": "Nwp", "type": "SyncRsp", "subsystem": "RTLS", "command": "RTLS_CMD_CONN_PARAMS", "payload": {"status": "RTLS_SUCCESS"}}}', rsv1=False, rsv2=False, rsv3=False)
    [2020-11-04 15:58:55,619] serialnode - DEBUG - <<< FE:03:00:59:03:00:00:00:59

  • 我用simplelink_cc13x2_26x2_sdk_4_30_00_54这个SDK的原始例程试了一下。还是一样情况。方便的话,您测试的master和slave的hex文件发我邮箱我测试一下。zhaowenjian@px-tech.com
  • 我用simplelink_cc13x2_26x2_sdk_4_30_00_54这个SDK的原始例程试了一下。还是一样情况。方便的话,您测试的master和slave的hex文件发我邮箱我测试一下。zhaowenjian@px-tech.com
  • 不用了,已经确认,是connInterval这个参数也会影响连接时间,之间理解认为只是设置两次采集的时间间隔。
    struct = Struct(
    'addrType' / Enum(Int8ul),
    'peerAddr' / NiceBytes(ReverseBytes(Byte[6])),
    'connInterval' / Int16ul,
    )
  • 反馈已收到,我用的就是4.30的例程,应该是改参数造成的
  • 请教下,log打印要怎么实现。我现在用的是SimpleLink™ CC26x2R LaunchPad™,上面USB的两个UART口,一个作为通讯口,另外一个可以作为log口吗?

    现在参考的是这份文档dev.ti.com/.../debugging_output.html
    通过配置的rtls_master.syscfg,尝试用IDE(CCS)和UART配置log打印都没有实现。
  • 你那份文档链接打不开,打印请参考:dev.ti.com/.../node
  • Display_printf已经可以用了。

    请教下,rtls_master中的项目中osal.h中的这三个打印要怎么配置才可以打开。

    #define BLE_LOG_INT_INT(handle, type, format, param1, param2)         bleLog_int_int(handle, type, format, param1, param2)
    #define BLE_LOG_INT_STR(handle, type, format, param1, param2)         bleLog_int_str(handle, type, format, param1, param2)
    #define BLE_LOG_INT_TIME(handle, type, start_str, param1)             bleLog_int_time(handle, type, start_str, param1)
    现在只打开这个宏#define BLE_LOG的情况下,还是会报下面这个错误。

    undefined                   first referenced
    symbol                         in file
    --------- ----------------
    bleLog_int_int            <whole-program>
    bleLog_int_str            <whole-program>
    bleLog_int_time         <whole-program>

    error #10234-D: unresolved symbols remain
    error #10010: errors encountered during linking; "rtls_master_CC26X2R1_LAUNCHXL_tirtos_ccs.out" not built

  • 这个我们有总结文档,请看这里:e2e.ti.com/.../939054