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.

[参考译文] CC3100:被动扫描实施

Guru**** 2587365 points
Other Parts Discussed in Thread: CC3100, CC31XXEMUBOOST, CC3100BOOST

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/762701/cc3100-the-passive-scan-implementation

器件型号:CC3100
主题中讨论的其他器件: CC31XXEMUBOOST

大家好、

是我 询问被动扫描的线程的继续部分。 最后、我能够在研究期间探索802.11的一些要点并实施概念验证。

我写信分享这一经验以及 在 GitHub 上发布的代码

我遇到 了问题中描述的收发器模式的一些不稳定行为。 如我在 Include\socket.h 中看到的那样、返回代码(-100)缺失、我想知道为什么以及如何在我的实际项目中避免此错误。


此外、如果能够将此功能完全移至 CC3100、我会感到很有趣?

当前驱动程序 API 似乎允许此扩展、例如:

#define SL_SCAN_POLICE_DISBALE (0)
#define SL_SCAN_POLICE_ACTIVE (1)
#define SL_SCAN_POLICE_passive (2)

...

_i32 intervalInSeconds = 60;
sl_WlanPolicySet (sl_policy_scan、sl_scan_policy_passive、intervalInSeconds、sizeof (intervalInSeconds)); 

而通道掩码和 RSSI 热分流器由 sl_WlanSet 设置 、因为它当前正在工作。

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

    您好、Suhoy、

    您收到的错误不是特定于套接字操作。 这是一个一般的主机驱动程序错误、表示由于主机驱动程序检测到错误、API 已中止。

    请参阅此处"device.h"中的行:

    //
    #define SL_API_ABLETED 由于主机驱动程序检测到错误,/* API 已中止 (-100) 

    您可能需要检查主机和 CC3100之间接口上的时序、并确保未超出时序。

    无法将功能移至 CC3100器件中。


    此致、

    本·M

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

    您好 Ben、

    我将使用 SimpleLink Studio 在 CC3100Boost+CC31XXEMUBOOST 上进行测试、不知道如何检查时序。

    不过、感谢您对错误代码含义的看法。
    我在测试信标 Rx 滤波器时遇到了类似的问题。 我发现它发生在设置 REARTABREGENT-FLAG 时:

    // driver.c
    void _SlDriverHandleError (SlDeviceDriverError_e eError、_u32 Info1、_u32 info2)
    {
    //...
    G_bDeviceRestorartIsRequired = true;
    
    //在 device.c
    _SlReturnVal_t _SlDrvDeviceEventHandler (void* pEventInfo)
    {中调用
    //...
    
    switch (PHDR->GenHeader.Opcode)
    {
    //...
    案例 sl_opcode_device_abort:
    //....
    _SlDriverHandleError (sl_device_abort_error_event、// <----------------
    *((_u32*) pMsgArgs)、 /*中止类型*/
    *((_u32*) pMsgArgs + 1));/*中止数据*/ 

    其中 Info1和 infor2是 AbortType 和 AbortData:

    在监听功能(在收发器模式下打开和重新打开套接字)之间重新启动 CC3100、这似乎有所帮助。 但也许有更好的解决方案吗?


    UPD:

    我通过被动扫描跟踪了这一点、有时我在停止器件时收到中止:


    和 CMD_TIMEOUT、同时更改通道:



    也许我已经回答过自己:因此、如果发生这种类型的错误、那么只有一种解决方案-重新启动 CC3100器件(只要我无法跟踪驱动程序/服务攻击以了解导致错误的原因)。

    Ilya

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

    我强烈建议使用 CC3100 SDK 支持的 LaunchPad 之一来测试此功能。 Simplelink Studio 是为开发目的而创建的、但由于它依赖于 Visual Studio 2010、因此已被弃用。 使用其中一个 LaunchPad 运行将使您能够及时了解最新的 SDK 版本(v1.3.0和更高版本)。
    www.ti.com/.../CC3100SDK

    这一点很重要、因为主机驱动程序(处理主机和 NWP 之间的协议、其中生成了一些错误代码)和服务包(包括网络处理器 ROM 代码的修复)都已更新。

    请确认您可以/正在使用这些组件的最新版本。

    关于中止错误和超时错误、如果在生产系统中发生(虽然意外)这些错误、则需要按照您所述重新启动 CC3100来处理这些错误。

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

    您好 Ben、

    这将会购买 LaunchPad。 我想这需要一段时间、大约一个月、所以我将继续讨论这个话题

    有关最新 SDK/servicepack 的另一件事:CC3100SDK1.3.0 下载页面中有 servicepack 1.0.1.131-2.11.0.1、但对于 SDK 、只有 SimpleLink 驱动程序1.0.1.11。 从何处可以获取 SimpleLink 驱动程序1.0.1.13? 我应该关心它吗?


    附注:虽然 SimpleLink Studio 是为 VisualStudio 2010开发的、但我将其与 MinGW+Eclipse 堆栈搭配使用、我可以说它也在 Win7/Win8/Win10上运行(有时这种奇怪的行为除外)。

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

    包含更新主机驱动程序的最新 SDK、与1.0.1.13... ServicePack 即将发布。 我建议使用此服务包、因为更新对应用程序应该是透明的。 有关更多详细信息、请参阅服务包下载中的版本说明。

    现在我将关闭此主题、尽管您将返回到此主题。 当您准备好再次跟进时、只需添加新的回复、它将打开备份。 如果之前"锁定"、请使用顶部的"+提出相关问题"按钮打开新主题、继续讨论、并引用该主题。

    最棒的
    本·M