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.

[参考译文] LAUNCHCC3220MODASF:是否在加电时获取配置状态?

Guru**** 2584575 points


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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/813246/launchcc3220modasf-get-provisioning-status-at-power-up

器件型号:LAUNCHCC3220MODASF

我注意到,如果配置过程中断,sl_FsOpen(),例如,加电时-2014 (Provisioning_in_process)将失败。  复位无法修复它、因此我猜是在闪存 ROM 中为此设置了一个标志。  我要做的是检查并尽可能清除它。

现在,我想我可以测试 SD_FsOpen()返回的-2014错误,然后尝试发布  

 SL_WlanProvisioning (sl_WLAN_PROVISIONING_CMD_STOP、0xFF、0、NULL、0x0);

 (希望如此)清除标志。  

这是正确的方法吗?

谢谢!

Chris

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

    尊敬的 Chris:

    您所采用的方法是正确的。 如果您看 out_for_box 示例,它在 ProvisioningStop()中具有相同的想法,即 Provisioning_task.c 在该函数中、它会调用一个简单的 API 来获取 NWP 固件版本号、但实际上可以检查-2014 PROVISIONING_IN_PROCESS 错误、然后在以下情况下关闭配置:

    SlDeviceVersion_t ver ={0};
    uint8_t configOpt = 0;
    uint16_t configLen = 0;
    
    /*检查配置是否正在运行*/
    configOpt = sl_device_General_version;
    configLen = sizeof (ver);
    RetVal =
    SL_DeviceGet (SL_DEVICE_General、&CONFIGOpt、&CONFIGLen、
    (uint8_t *)(&V));
    if (sl_RET_CODE_PROVISIONING_IN_PROGRESS = RetVal)
    {
    UART_PRINT (
    "[Provisioning Task] Provisioning is already running,"
    "正在停止...\r\n");
    RetVal =
    SL_WlanProvisioning (sl_WLAN_PROVISIONING_CMD_STOP、Role_STA、0、NULL、
    0);
    
    /*等待停止的事件到达-等待 PrvnState_Init */
    操作
    {
    ProvisioningState = GetProvisioningState();
    usleep(1000);
    }
    while (provisioningState!= PrvnState_Init);
    
    pCtx->provisioningStatus = PrvsnStatus_Stopped;
    
    RetVal = sl_RET_CODE_PROVISIONING_IN_PROGRESS
    ;} 

    请告诉我您是否需要进一步澄清或对该主题有进一步的问题。

    此致、
    Michael

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

    Michael、非常感谢您的回复!

    Chris