首页 > 解决方案 > FreeRTOS Wifi 关闭事件不调用 vApplicationIPNetworkEventHook

问题描述

我一直在尝试找到一种解决方案,让 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;
}

问题是如何。

谢谢,马库斯

标签: freertosmicrochippic32

解决方案


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


推荐阅读