|

楼主 |
发表于 2019-10-22 11:30:20
|
显示全部楼层
独立一个检测任务来处理:
- /*
- *********************************************************************************************************
- * 函 数 名: AppTaskEthCheck
- * 功能说明: 检查网线插拔状态。
- * 形 参: 无
- * 返 回 值: 无
- * 优 先 级: osPriorityHigh3
- *********************************************************************************************************
- */
- void AppTaskEthCheck(void *argument)
- {
- /* 初始化网络 */
- netInitialize();
-
- /* 初始化完毕后再创建应用任务 */
- ThreadIdTaskMsgPro = osThreadNew(AppTaskMsgPro, NULL, &ThreadMsgPro_Attr);
- while(1)
- {
- /* 这里是查询的网线插拔标志,方便移植,大家也可以根据需要发送任务事件标志做处理 */
- if(g_ucEthLinkStatus == 3)
- {
- g_ucEthLinkStatus = 0;
-
- /* 释放所有网络资源,含TCPnet内核任务和ETH接口任务 */
- netUninitialize();
-
- /* 删除TCPnet应用任务 */
- osThreadTerminate(ThreadIdTaskMsgPro);
-
- /* 重新初始化 */
- netInitialize();
-
- /* 重新创建应用任务 */
- ThreadIdTaskMsgPro = osThreadNew(AppTaskMsgPro, NULL, &ThreadMsgPro_Attr);
- }
-
- osDelay(10);
- }
- }
复制代码
|
|