【问题标题】:FreeRTOS Wifi down event does not call vApplicationIPNetworkEventHookFreeRTOS Wifi 关闭事件不调用 vApplicationIPNetworkEventHook
【发布时间】:2021-11-04 19:51:06
【问题描述】:

我一直在尝试找到一种解决方案,让 amazon-freertos 检测到 WIFI 网络关闭,以便我可以重新连接。我不得不说我还没有完全理解这一切应该如何运作。

从阅读看来,预期的方法是等待回调到 vApplicationIPNetworkEventHook,程序员应该在其中实现必要的重新连接。然而问题是这个回调函数不会被网络宕机事件调用,它只会被网络启动事件调用。

阅读 FreeRTOS 指南我看到,对于 vApplicationIPNetworkEventHook 要获得网络故障事件的回调,底层驱动程序必须首先告诉 TCPIP 堆栈此事件,并且继续说并非所有驱动程序都实现了这一点,所以我想我已经找到现在的问题。

我的问题是驱动程序应该如何通知 TCPIP 堆栈?驱动程序记录网络关闭事件(它并没有做更多的事情),所以我可以在那里添加一些代码来提醒 TCPIP 堆栈,但是应该怎么做呢?我找不到有关如何进行此更改的任何说明,非常感谢任何帮助或建议。

amazon-freertos:https://github.com/MicrochipTech/amazon-freertos MCU测试板:Microchip好奇心_pic32mzw1

补充一下,我认为这应该是实现它的地方(iot_wifi.c):

WIFIReturnCode_t WIFI_RegisterNetworkStateChangeEventCallback( IotNetworkStateChangeEventCallback_t xCallback  )
{
    /** Needs to implement dispatching network state change events **/
    return eWiFiNotSupported;
}

问题是如何。

谢谢, 马库斯

【问题讨论】:

    标签: freertos microchip pic32


    【解决方案1】:

    您可以使用 eNetworkDown 作为参数添加对vApplicationIPNetworkEventHook() 的调用。

    【讨论】:

    • 谢谢,这行得通,然后我添加了对 FreeRTOS_NetworkDown() 的调用,它触发 IP 任务重新连接。然而,由于 DRV_HANDLE_INVALID,现在它在 WIFI_On 上失败了,这似乎取决于硬件,所以我为此向 Microchip 提出了一个案例。将在解决方案可用时更新。
    • Microchip 现在添加了对网络事件回调的支持,这在 pic32mzw1 之前是缺失的。
    猜你喜欢
    • 1970-01-01
    • 2021-06-13
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多