FreeRTOS Wifi down 事件不调用 vApplicationIPNetworkEventHook

FreeRTOS Wifi down event does not call vApplicationIPNetworkEventHook

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

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

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

我的问题是驱动程序应该如何通知 TCPIP 堆栈?驱动程序会记录网络中断事件(除此之外不会做更多事情),因此我可以在其中添加一些代码来提醒 TCPIP 堆栈,但应该如何完成呢?我找不到有关如何进行此更改的任何说明,非常感谢任何帮助或建议。

亚马逊免费版:https://github.com/MicrochipTech/amazon-freertos MCU测试板:Microchip curiosity_pic32mzw1

添加我认为这应该是实现它的地方(iot_wifi.c):

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

问题是如何。

谢谢, 马库斯

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