exnetif作为实现多网卡协同工作的核心组件,提供了强大的网络代理与智能选路能力。本文将结合Air8000、Air780EPM等典型开发平台,手把手教你如何利用exnetif.setproxy等关键接口,将以太网设备的数据流无缝引导至4G或Wi-Fi通道,实现网络资源的最优利用。

专为多网络环境设计,用简洁的API帮你轻松搞定网络优先级管理和多网融合,无论是智能网关、工业路由器,还是其他需要多网备份与共享的物联网设备,都能从中受益。

一、exnetif是什么?

exnetif是一个用于简化多网络环境管理的LuatOS扩展库。主要提供两大核心能力:

网络优先级管理:可灵活设置以太网、Wi-Fi、4G等网络的优先级(例如:以太网 > Wi-Fi > 4G),模块会自动选择当前优先级最高且连通性最好的网卡上网,实现智能切换。

多网融合功能:支持配置网络代理,实现网络共享(例如将4G作为数据出口,供Wi-Fi/以太网设备接入);模块最多同时挂载5个以太网网口,支持LAN、WAN随意组合使用。

二、核心函数速览

exnetif扩展库目前提供了四个主要API,覆盖了从网络初始化、状态回调到多网融合的全流程。

2.1、exnetif.set_priority_order(networkConfigs)

函数功能:设置网络优先级并初始化网络。

注意事项:

可以开启单网络或多网优先级,单网时不会判断网络连通性,多网络时根据table中的顺序确定联网优先级。

简要示例:

2.2、exnetif.notify_status(cb_fnc)

函数功能:设置网络状态变化回调函数。

注意事项:

可选配置,设置回调函数后可以通过回调函数获取网络状态的变化。

简要示例:

2.3、exnetif.setproxy(adapter, main_adapter, other_configs)

函数功能:配置网络代理实现多网融合。

注意事项:

注意区分adapter和main_adapter的参数:

adapter:使用网络的网卡(如socket.LWIP_AP);

main_adapter:提供网络的网卡(如socket.LWIP_ETH)。

简要示例:

2.4、exnetif.check_network_status(interval)

函数功能:主动触发网络状态检测。

注意事项:

可选配置,检测一次或者定时检测所有可用网络的网络连通性,当网络显示可用但是业务代码数据收发异常时可以重新检测网络连通性,如果配置定时检测会增加模块功耗。

简要示例:

三、快速上手:多网融合示例

目前exnetif库已全面支持LuatOS开发系列主流产品,同时提供相关应用示例demo,方便开发者快速上手,可结合项目实际需求灵活运用。

注意:

多网融合功能需硬件支持,如双网卡设备;

以Air8000系列多功能工业引擎/开发板为例:

核心示例代码如下图示,完整demo详见源码仓库最新文件:

3.1  4G连接外部网络

开启多网融合模式,4G连接外部网络,生成Wi-Fi热点为Wi-Fi终端设备提供接入,支持以太网Lan模式为其他以太网设备提供接入;网络监控,每5秒进行HTTPS连接测试,实时监测4G网络的连接状态。

3.2  以太网连接外部网络

开启多网融合模式,以太网连接外部网络,生成Wi-Fi热点为WiFi终端设备提供接入,支持以太网Lan模式为其他以太网设备提供接入;网络监控,每5秒进行HTTPS连接测试,实时监测以太网网络的连接状态。

3.3  Wi-Fi连接外部网络

开启多网融合模式,Wi-Fi连接外部网络,支持以太网Lan模式为其他以太网设备提供接入,支持生成Wi-Fi热点为Wi-Fi终端设备提供接入;网络监控,每5秒进行HTTPS连接测试,实时监测Wi-Fi网络的连接状态。

今天的内容就分享到这里了~

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐