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.

[参考译文] CC1352R:TI 15.4 孤单扫描始终会在扫描确认中抛出"INVALID 参数

Guru**** 2812305 points

Other Parts Discussed in Thread: SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1623379/cc1352r-ti-15-4-orphan-scan-always-throws-invalid-parameter-in-scan-confirm

器件型号: CC1352R
主题: SysConfig 中讨论的其他器件

大家好!  

我在 CC1352R1 中使用 TI 15.4 Stack 来创建定制应用。
我尝试了以下方法来发出孤立的扫描请求:

ApiMac_mlmeScanReq_t scanReq;
memset(&scanReq, 0, sizeof(ApiMac_mlmeScanReq_t));
scanReq.phyID = CONFIG_PHY_ID; //CONFIG_PHY_ID APIMAC_250KBPS_IEEE_PHY_0
scanReq.channelPage = CONFIG_CHANNEL_PAGE; // CONFIG_CHANNEL_PAGE APIMAC_CHANNEL_PAGE_NONE
 
//  CONFIG_CHANNEL MASK = {0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}
// Therefore I am just scanning channel 11
STATIC uint8_t defaultChannelMask[APIMAC_154G_CHANNEL_BITMAP_SIZ] =
CONFIG_CHANNEL_MASK;
memcpy(scanReq.scanChannels,
defaultChannelMask,
APIMAC_154G_CHANNEL_BITMAP_SIZ);
 
scanReq.maxResults = 0;
scanReq.permitJoining = false;
scanReq.linkQuality = false;
scanReq.percentFilter = 255;
 
scanReq.scanType = ApiMac_scantype_orphan;
scanReq.scanDuration = 5

memset(&scanReq.sec, 0, sizeof(ApiMac_sec_t)); // no security

ApiMac_mlmeScanReq(&scanReq);
 
类似的参数完美地与 ED 扫描,主动或被动,它只是孤立的扫描,总是返回一个“无效的参数“状态 (232 )。  是否有任何预配置要求才能使孤立扫描正常工作?  所有参数看起来都是正确的。

注意:我正在处理 2.4GHz 频段(我知道是 Sub-1GHz 论坛、但没有 2.4GHz 论坛)

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    注:RxOnWhenIdle 也处于活动状态。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alberto:

    我无法复制它、也就是说、我的孤立请求成功。 您能给我提供您的 SDK 版本号吗? 此外,您是否尝试过位于 jdllc.c 中的 sendScanReq ()? 当您触发孤立扫描时、您的传感器是否已连接到收集器?

    COM20 | 14.636843417 | Mod_Log 模块_Module_154_App | Log_info  | C:/ti/simplelink_cc13xx_cc26xx_sdk_8_32_00_07/source/ti/ti154stack/apps/sensor/sensor.c:692 |已初始化传感器
    COM20 | 14.641116417 | Mod_Log LogModule_154_App | Log_info  | C:/ti/simplelink_cc13xx_cc26xx_sdk_8_32_00_07/source/ti/ti154stack/common/jdllc/jdllc.c:2557 | Result mlmScanReq 类型 1:结果 0
    COM20 | 14.647021750 | Mod_Log LogModule_154_App | Log_info  | C:/ti/simplelink_cc13xx_cc26xx_sdk_8_32_00_07/source/ti/ti154stack/common/jdllc/jdllc.c:2557 | Result mlmScanReq 类型 1:结果 0
    COM20 | 14.680430750 | Mod_Log Module_154_App | Log_info  | C:/ti/simplelink_cc13xx_cc26xx_sdk_8_32_00_07/source/ti/ti154stack/common/jdllc/jdllc.c:2557 | 结果 mlmScanReq 类型 3:结果 0

    此致、

    Daniel

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     Daniel Guarecuco Aguiar 
    感谢您的答复。 我正在使用的 μ`` cc13xx_cc26xx_sdk_8_32_00_07 ``就像您一样。 我确实使用了 jdllc.c 作为参考、但我没有运行任何特定的示例。 我的应用是一个协处理器应用、可直接访问 TI 15.4 Stack 的 IEEE 802.15.4 基元。 与协处理器示例略有相似、但没有端子接口。

    正如我提到的 、我能够以相同的持续时间、信道掩码参数成功执行能量检测扫描以及有源和无源扫描(因为我没有运行协调器,所以处于 NO_BEAC标志 状态)。

    理论上、在关联的器件上运行孤立扫描不应该是必需的、但无论我手动分配了短地址、在进行孤立扫描之前、PAN ID 都是如此。 结果相同。  您能想到 MAC 可能需要的任何其他配置来成功执行孤立扫描吗? (i、.e,发送协调人重新调整命令)。

    我知道我的问题可能很棘手、因为在 TI 15.4 中没有直接使用基元的示例(jdllc.c 尽可能接近)。
    非常感谢任何建议。

    此致、

    Alberto

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alberto:

    这确实有点棘手、因为我不知道您实际在运行什么。 不过、我研究了源代码以及可以返回“ApiMac_STATUS_invalidParameter = 0xE8“的情况。

    一个可能的原因是孤立扫描只能由设备执行、而不能由协调器执行。 如果未设置器件特性、MAC 将拒绝孤立扫描。 请确保您正在通话  Mac_InitDevice () 在初始化过程中,这是由 macInit()(在 macTask.c 中)完成的,但我不确定您与示例的接近程度。

    您不会遇到其他扫描类型的问题、因为它们允许用作协调器、而不会被过滤掉。 我认为 MAC 相信您的协处理器是协调器。

    请尝试一下、让我知道。

    此致、

    Daniel

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Daniel:

    感谢您发送编修。 我明白、器件角色可能是个问题。
    理想情况下、我希望设置一个全功能器件、该器件可能成为协调器或终端器件。  
    我也明白、由于职能部门的原因、可能无法在 TI 15.4 中使用。

    我同意在黑暗中很难猜测,所以我到目前为止发布了我的项目代码。
    它最初基于“Collector"示“示例、但现在进行了大量修改、因为已经有“declutter"</s>“
    我从示例中不需要的所有元素(CUI、链接控制器、csf 等)。 处理。 syscfg 文件的器件角色设置为“collector"(“(协调(协调器器件)、但我认为更改为不同的角色以使 MAC 接受孤立请求并不容易。

    我对收集器的所有注释文本和剩余代码表示歉意、正如我所说、这仍是一项正在开发中的工作、但我认为最好是展示这些代码、这样我就不会让您猜测。

    如果您发现了严重错误、请告诉我。  
    感谢您的帮助。

    e2e.ti.com/.../commonShim.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alberto:

    我想我看到了这个问题、您是从独立的“收集器“(CUI、csf.c 的收集器)开始的、而不是从“协处理器“示例(沿 STACK-GATEWAY-LINUX-SDK 主机 www.ti.com/.../8.30.00.05) 开始)开始 的。 在独立模式下、仅初始化一个角色、但在协处理器模式下、这两个角色都将初始化。

    MAC_InitDevice 和 MAC_InitCoord() 都由 macTaskInit -> macTaskFxn -> macInit 调用、但它们由#ifdef 保护

    #ifdef COPROCESSOR
      /* Initialize the MAC function tables and features */
      MAC_InitDevice();
    #ifdef FEATURE_FULL_FUNCTION_DEVICE
      MAC_InitCoord();
    #endif /* FEATURE_FULL_FUNCTION_DEVICE */
    #ifdef FEATURE_BEACON_MODE
      MAC_InitBeaconDevice();
    #ifdef FEATURE_FULL_FUNCTION_DEVICE
      MAC_InitBeaconCoord();
    #endif
    #endif /* FEATURE_BEACON_MODE */
    #else /* ! COPROCESSOR */
      /* Initialize the MAC function tables and features */
    
    #ifdef FEATURE_FULL_FUNCTION_DEVICE
      MAC_InitCoord();
    #else /* FEATURE_FULL_FUNCTION_DEVICE */
      MAC_InitDevice();
    #endif

    将以下符号添加到您的应用程序/定义/commonShim.opt 中

    -DCOPROCESSOR

     您已经 从 SysConfig 中获得了 FEATURE_FULL_FUNCTION_DEVICE。

    此致、

    Daniel

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你的帮助。

    正如您提到的、协处理器符号是主要问题、但我必须调整其他内容以适应变化。
    我还必须添加其他配套符号、如协处理器项目中所示:

    -DMAX_DEVICE_TABLE_ENTRIES=50
    -DCOMBO_MAC
    -DxCOPROCESSOR_CC2652P

    最重要的是、我不得不添加另一个全局变量、因为 api_mac.c 都期望 这样做

    //Manual definition to satisfy api_mac.c since MT folder is excluded
    uint8_t GP_Offset = 0;
    最后,我还不得不删除所有硬编码 常量,如 channel_page 和其他从 CSMA 变得不可用,一旦你选择了协处理器配置文件。
    我看到的主要问题是、“协处理器“配置文件与一个示例一起工作、因此很难删除东西以执行任何不同的操作。
    再次感谢你的帮助,你是一个救世主在一个膨胀的令人沮丧的例子。

    此致  

    Alberto



  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Alberto:

    事实上、协处理器预计将与 Linux 主机一起使用、很高兴您能够正常工作。

    感谢您为将来的读者发布解决方案的其余部分!

    此致、

    Daniel