libnetif - libnetif 控制网络优先级(以太网->WIFI->4G)根据优先级选择上网的网卡。简化开启多网融合的操作,4G作为数据出口给WIFI,以太网设备上网,以太网作为数据出口给WIFI,Air8000上网,WIFI作为数据出口给Air8000,以太网上网。#
示例
本文件的对外接口有4个:
1、libnetif.set_priority_order(networkConfigs):设置网络优先级顺序并初始化对应网络(需要在task中调用)
2、libnetif.notify_status(cb_fnc):设置网络状态变化回调函数
3、libnetif.setproxy(adapter, main_adapter,other_configs):配置网络代理实现多网融合(需要在task中调用)
4、libnetif.check_network_status(interval),检测间隔时间ms(选填),不填时只检测一次,填写后将根据间隔时间循环检测,会提高模块功耗
libnetif.set_priority_order(new_priority)#
设置网络优先级,相应网卡获取到ip且网络正常视为网卡可用,丢失ip视为网卡不可用.(需要在task中调用)
参数
传入值类型 |
解释 |
---|---|
table |
网络优先级列表 |
返回值
返回值类型 |
解释 |
---|---|
boolean |
成功返回true,失败返回false |
例子
libnetif.set_priority_order({
{ -- 最高优先级网络
WIFI = { -- WiFi配置
ssid = "your_ssid", -- WiFi名称(string)
password = "your_pwd", -- WiFi密码(string)
ping_ip = "112.125.89.8", -- 连通性检测IP(选填参数),默认使用httpdns获取baidu.com的ip作为判断条件,
-- 注:如果填写ip,则ping通作为判断网络是否可用的条件,
-- 所以需要根据网络环境填写内网或者外网ip,
-- 填写外网ip的话要保证外网ip始终可用,
-- 填写局域网ip的话要确保相应ip固定且能够被ping通
ping_time = 10000 -- 填写ping_ip且未ping通时的检测间隔(ms, 可选,默认为10秒)
-- 定时ping将会影响模块功耗,使用低功耗模式的话可以适当延迟间隔时间
}
},
{ -- 次优先级网络
ETHERNET = { -- 以太网配置
pwrpin = 140, -- 供电使能引脚(number)
ping_ip = "112.125.89.8", -- 连通性检测IP(选填参数),默认使用httpdns获取baidu.com的ip作为判断条件,
-- 注:如果填写ip,则ping通作为判断网络是否可用的条件,
-- 所以需要根据网络环境填写内网或者外网ip,
-- 填写外网ip的话要保证外网ip始终可用,
-- 填写局域网ip的话要确保相应ip固定且能够被ping通
ping_time = 10000 -- 填写ping_ip且未ping通时的检测间隔(ms, 可选,默认为10秒)
-- 定时ping将会影响模块功耗,使用低功耗模式的话可以适当延迟间隔时间
tp = netdrv.CH390 -- 网卡芯片型号(选填参数),仅spi方式外挂以太网时需要填写。
opts = { spi = 1, cs = 12 } -- 外挂方式,需要额外的参数(选填参数),仅spi方式外挂以太网时需要填写。
}
},
{ -- 最低优先级网络
LWIP_GP = true -- 启用4G网络
}
})
libnetif.notify_status(cb_fnc)#
设置网络状态变化回调函数。触发条件:网卡切换或者所有网卡都断网。返回值为:1. 当有可用网络的时候,返回当前使用网卡、网卡id;2. 当没有可用网络的时候,返回 nil、-1 。
参数
传入值类型 |
解释 |
---|---|
function |
回调函数 |
返回值
无
例子
libnetif.notify_status(function(net_type,adapter)
log.info("可以使用优先级更高的网络:", net_type,adapter)
end)
libnetif.setproxy(adapter, main_adapter,other_configs)#
设置多网融合模式,例如4G作为数据出口给WIFI或以太网设备上网(需要在task中调用)
参数
传入值类型 |
解释 |
---|---|
adapter |
需要使用网络的网卡,例如socket.LWIP_ETH |
adapter |
提供网络的网卡,例如socket.LWIP_GP |
table |
其他设置参数(选填参数), |
返回值
无
例子
无
libnetif.check_network_status(interval),#
对正常状态的网卡进行ping测试
参数
传入值类型 |
解释 |
---|---|
int |
检测间隔时间ms(选填),不填时只检测一次,填写后将根据间隔时间循环检测,会提高模块功耗 |
返回值
无
例子
无