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.

[参考译文] CC3100SDK:AP -配置

Guru**** 2390755 points
Other Parts Discussed in Thread: CC3100, CC3200

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/578331/cc3100sdk-ap---provisioning

器件型号:CC3100SDK
主题中讨论的其他器件:CC3100CC3200

您好!

我正在尝试在 CC3100 WiFi 设备上启动 AP 配置功能。

我能够使用 SDK 中的配置库成功编译我的固件。

在我的固件中调用 startProvisioning()后,"SimpleLink Starter Pro" Android 应用程序能够成功地检查设备是否为 simplelink 设备。

在固件端、代码能够检测它可以看到的所有 WiFi 节点(AP)、并将其放入"g_Networks"变量列表中。 我可以看到办公室中安装的所有 SSID。

问题是、该列表是如何发送到我的 Android 手机上的应用程序的、因此它可以显示并允许我从列表中选择 WiFi 网络、从而告诉设备它应该连接到哪个 WiFi 网络。

是否有任何异步中断需要在哪个点生成?如果是、应该在哪个点生成?

什么是事件处理程序以及如何/在何处注册它们。

谢谢、

高级

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

    event_handler.c 中的 sl_Provisioning_HttpServerEventHdl()将被调用并发送发现的网络列表。 这基于接收用户定义的 Get 令牌。

    当您将设备设置为在移动应用程序中配置或打开网络列表时、将生成一次。

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

    sl_Provisioning_HttpServerEventHdl()如何真正调用? 它是否假设根据 CC3100生成的 SPI 中断进行调用?
    我们是否打算在代码中的任何位置注册此处理程序? 如果是、请告诉我在哪里执行此操作。 现在只有 sl_Provisioning_HttpServerEventHdl()函数的定义存在,并且不会从代码中的任何位置调用此函数。

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

    您好、Prm、

    SimpleLink 主机驱动程序将以调用应用程序回调的相同方式调用它。 您无需自己在代码中注册、只需确保在 user.h 顶部定义了以下内容:

    #define SL_EXT_LIB_1 SL_Provisioning 

    然后重新构建 SimpleLink 主机驱动程序并将其链接到您的应用程序。 实际的配准在 simplelink.h 中完成 请注意,sl_Provisioning_HttpServerEventHdl()回调仅在配置期间运行,同时设置了 g_UseProvisioningLibHandlers。 否则,事件将传播到应用程序处理程序。


    此致、

    本·M

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

    您好 Ben、

    我分别从 SimpleLinkHttpServerCallback()、SimpleLinkWlanEventHandler()和 SimpleLinkNetAppEventHandler()函数中调用 sl_Provisioning_HttpServerEventHdl()。

    此更改使 AP-Provisioning 适用于我。

    您可以关闭此主题。

    谢谢、

    高级

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

    这可能是一种权变措施、但如果使用正确的定义重新编译 SimpleLink 库和配置库并正确链接到工程、则不需要这样做。 启用配置后、应在配置处于活动状态时调用配置处理程序来代替应用程序回调。

    如果您遇到此方法的任何问题、请考虑重新调查。

    此致、
    本·M
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在 SDK 1.3中遇到了同样的问题。 我在 user.h 中进行了更改、重新编译了 simplelink (适用于 TI-RTOS)、并重建了我的项目。 不调用 sl_Provisioning__*事件处理程序,也不能在其中设置断点,这表明它们未在编译中。 Prem 的权变措施对我有效(除了没有任何 HTTP 事件流入)、但我想正确解决这个问题。 欢迎提出建议。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的克林顿:

    SDK 1.3版不适用于 CC3200。 您正在使用的是这种器件吗? 此外、您是否正在关闭默认的 PROVISIONING_ap 示例或将 AP 配置添加到另一个项目?

    谢谢、
    本·M
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你(们)好、Ben。 是的、我使用的是 CC3200的 SDK 1.3。 我尝试了不使用 TI-RTOS 的 PROVISIONING_ap 示例、虽然它可以正常工作、但无论在 PROVISIONING_defs.h 中启用调试模式、我都看不到任何事件流过该示例

    但我需要一个支持 AP 配置的 TI-RTOS 应用程序、因此我从 SDK 中的空 TI-RTOS 示例开始、并添加了配置代码。 通过 Prem 针对事件的权变措施、我得到了以下输出。 请注意缺少 HTTP 事件、即使输入了有效的配置文件并且在超时之前建立了连接、配置代码也会以超时的方式返回。 我宁愿不采取另一种变通办法!

    克林顿

    主机驱动程序版本:1.0.1.11
    编译版本2.0.7.0.31.0.4.1.1.5.3.3
    正在启动配置..
    [INFO ProvLib]配置参数:启用自动启动1.
    [DEBUG ProvLib] startApProvisioning:启动 AP 配置
    [INFO ProvLib]器件名称 mysimplelink、默认器件名称 F4B85E49A45D@mysimplelink 长度25
    [DEBUG ProvLib] networksListScan:扫描模式1 (1 STA、0 AP)
    [debug ProvLib] provisionRun:G_libraryTimeout 3000
    [调试 ProvLib] provisionRun:RetVal -1 g_ucRxTokensBitMask 0x0 g_ucSlEventBitMask 0x0 g_ucProvisioningState 1 g_ NetListHandlingState 1
    [DEBUG ProvLib]扫描完成、有5个网络
    [DEBUG ProvLib][0] SSID Tievoli [-80]
    [DEBUG ProvLib][1] SSID ATT9aMK5ct [-76]
    [DEBUG ProvLib][2] SSID 骑士[-72]
    [DEBUG ProvLib][3] SSID ATTUB7Bck2 [-86]
    [DEBUG ProvLib][4] SSID 摄像机[-87]
    [DEBUG ProvLib] SetDeviceMode:将器件设置为2
    [INFO ProvLib] Provisioning_NetAppHdl:IP 已获取0xc0a80101 signalNeed0
    [NetApp 事件]获取的 IP:IP=192.168.1.1,Gateway=192.168.1.1
    [DEBUG ProvLib] SetDeviceMode:器件设置为2
    [DEBUG ProvLib] continueApProvisioning
    [DEBUG ProvLib] startApProvisioning 等待用户命令300000毫秒
    [debug ProvLib] ProvisioningRun()= 2.
    [debug ProvLib] provisionRun:G_libraryTimeout 300000
    [INFO ProvLib] Provisioning_WlanEventHdl:STA e0-C7-67-83-1c-98连接到 SL AP、配置为300000
    [WLAN 事件] STA 已连接到 SimpleLink AP
    [调试 ProvLib] provisionRun:RetVal 0 g_ucRxTokensBitMask 0x0 g_ucSlEventBitMask 0x0 g_ucProvisioningState 1 g_N etListHandlingState 2.
    [debug ProvLib] ProvisioningRun()= 2.
    [debug ProvLib] provisionRun:G_libraryTimeout 300000
    [NetApp 事件]租用的 IP
    [info ProvLib] Provisioning_WlanEventHdl:STA 已从 SL AP 断开
    [WLAN 事件]意外事件[0x6]
    [调试 ProvLib] provisionRun:RetVal 0 g_ucRxTokensBitMask 0x0 g_ucSlEventBitMask 0x0 g_ucProvisioningState 1 g_N etListHandlingState 2.
    [debug ProvLib] ProvisioningRun()= 2.
    [debug ProvLib] provisionRun:G_libraryTimeout 300000
    [调试 ProvLib] provisionRun:RetVal -1 g_ucRxTokensBitMask 0x0 g_ucSlEventBitMask 0x0 g_ucProvisioningState 1 g_ NetListHandlingState 2.
    [DEBUG ProvLib] handleTimeout:等待用户命令、切换到模式0并退出时超时
    [DEBUG ProvLib] SetDeviceMode:将器件设置为0
    [DEBUG ProvLib] S[INFO ProvLib] Provisioning_WlanEventHdl:SL STA 连接到 knight
    [WLAN 事件] STA 连接到 AP:Knight、BSSID:28:cf:da:b9:A8:7b
    etDeviceMode:器件被设定为0
    [debug ProvLib] ProvisioningRun()= 3.
    函数[startProvisioning]中第[618]行的错误[-3]
    函数[inet_Initialize]中第[390]行的错误[-3]
    [NetApp 事件]获得的 IP:IP=10.0.1.29,Gateway=10.0.1.1
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的克林顿:

    我建议您首先确保 SDK 中的示例正常工作、然后再继续。 无需将配置处理程序放入应用程序处理程序中。

    请注意、请确保您已执行以下所有步骤:

    1. 通过修改 PROVISIONING_defs.h 启用调试后、需要重新编译 Provisioninglib。 (导入工作区并重建)
      1. 注-导入时可能会使用略微错误的包含路径、这会导致生成错误。 进入项目属性->包含选项并将"${PROJECT_LOC}\.\"更改为"${ORIGINAL_PROJECT_ROOT}\.\"
    2. 此外、请确保在对 user.h 文件进行更改后、导入并重建了用于 NON_OS_DEBUG 配置的 simplelink 项目
    3. 接下来、更改 PROVISIONING_ap 示例以链接到工作区中库的构建、而不是 SDK 中的默认库构建
    4. 最后、重新生成 PROVISIONING_ap 示例

    只要器件未存储配置文件、配置就会运行并允许您添加新的配置文件。