|
@@ -37,11 +37,11 @@ const (
|
|
|
func (n NetType) String() string {
|
|
func (n NetType) String() string {
|
|
|
switch n {
|
|
switch n {
|
|
|
case NetEth:
|
|
case NetEth:
|
|
|
- return "有线网"
|
|
|
|
|
|
|
+ return "有线"
|
|
|
case NetLTE:
|
|
case NetLTE:
|
|
|
- return "蜂窝网"
|
|
|
|
|
|
|
+ return "蜂窝"
|
|
|
default:
|
|
default:
|
|
|
- return "无网络"
|
|
|
|
|
|
|
+ return "未知"
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -70,7 +70,7 @@ func serviceRun() {
|
|
|
if eth0CableOK && curNetType != NetEth { // 有线插入 && 当前不是有线
|
|
if eth0CableOK && curNetType != NetEth { // 有线插入 && 当前不是有线
|
|
|
baseapp.Logger.Warnf("[%s] 检测到有线接入,切换到有线网络...", MODULE_NAME)
|
|
baseapp.Logger.Warnf("[%s] 检测到有线接入,切换到有线网络...", MODULE_NAME)
|
|
|
openNetwork()
|
|
openNetwork()
|
|
|
- } else if !eth0CableOK && curNetType != NetLTE { // 有线拔出 && 当前不是蜂窝
|
|
|
|
|
|
|
+ } else if !eth0CableOK && curNetType == NetEth { // 有线拔出 && 当前还是有线
|
|
|
baseapp.Logger.Warnf("[%s] 检测到有线断开,切换到蜂窝网络...", MODULE_NAME)
|
|
baseapp.Logger.Warnf("[%s] 检测到有线断开,切换到蜂窝网络...", MODULE_NAME)
|
|
|
openNetwork()
|
|
openNetwork()
|
|
|
}
|
|
}
|
|
@@ -109,7 +109,15 @@ func serviceRun() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if offlineDuration() >= (time.Duration(60) * time.Second) {
|
|
if offlineDuration() >= (time.Duration(60) * time.Second) {
|
|
|
- baseapp.Logger.Warnf("[%s] 网络长时间的断开, 正在重新连接...", MODULE_NAME)
|
|
|
|
|
|
|
+ baseapp.Logger.Warnf("[%s] 网络长时间的断开, 尝试重新激活...", MODULE_NAME)
|
|
|
|
|
+ switch curModemType {
|
|
|
|
|
+ case Air720U: //重启合宙4G调制解调器
|
|
|
|
|
+ modem1.ModuleExit()
|
|
|
|
|
+ modem1.ModuleInit(true)
|
|
|
|
|
+ case EC200U: // 重启移远4G调制解调器
|
|
|
|
|
+ modem2.ModuleExit()
|
|
|
|
|
+ modem2.ModuleInit(true)
|
|
|
|
|
+ }
|
|
|
openNetwork()
|
|
openNetwork()
|
|
|
offlineStartTs.Store(time.Now().UnixNano()) // 重置离线开始时间
|
|
offlineStartTs.Store(time.Now().UnixNano()) // 重置离线开始时间
|
|
|
}
|
|
}
|
|
@@ -245,29 +253,20 @@ func openNetwork() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
start4GNetwork := func() bool {
|
|
start4GNetwork := func() bool {
|
|
|
|
|
+ startOK := false
|
|
|
switch curModemType {
|
|
switch curModemType {
|
|
|
case Air720U: //合宙4G调制解调器
|
|
case Air720U: //合宙4G调制解调器
|
|
|
if eth2CableOK, _ := modem1.Is4GCableConnected(); eth2CableOK {
|
|
if eth2CableOK, _ := modem1.Is4GCableConnected(); eth2CableOK {
|
|
|
- if modem1.Start4GNetwork() {
|
|
|
|
|
- return true
|
|
|
|
|
- }
|
|
|
|
|
- // 4G模组重新上电初始化后重试
|
|
|
|
|
- modem1.ModuleExit()
|
|
|
|
|
- modem1.ModuleInit(true)
|
|
|
|
|
- return modem1.Start4GNetwork()
|
|
|
|
|
|
|
+ startOK = modem1.Start4GNetwork()
|
|
|
|
|
+ enableEth0() // 恢复有线网口
|
|
|
}
|
|
}
|
|
|
case EC200U: // 移远4G调制解调器
|
|
case EC200U: // 移远4G调制解调器
|
|
|
if usb0CableOK, _ := modem2.Is4GCableConnected(); usb0CableOK {
|
|
if usb0CableOK, _ := modem2.Is4GCableConnected(); usb0CableOK {
|
|
|
- if modem2.Start4GNetwork() {
|
|
|
|
|
- return true
|
|
|
|
|
- }
|
|
|
|
|
- // 4G模组重新上电初始化后重试
|
|
|
|
|
- modem2.ModuleExit()
|
|
|
|
|
- modem2.ModuleInit(true)
|
|
|
|
|
- return modem2.Start4GNetwork()
|
|
|
|
|
|
|
+ startOK = modem2.Start4GNetwork()
|
|
|
|
|
+ enableEth0() // 恢复有线网口
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- return false
|
|
|
|
|
|
|
+ return startOK
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
if start4GNetwork() {
|
|
if start4GNetwork() {
|
|
@@ -277,7 +276,7 @@ func openNetwork() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
curNetType = NetNone
|
|
curNetType = NetNone
|
|
|
- baseapp.Logger.Warnf("[%s] ⚠️ 注意: 当前无可用网络", MODULE_NAME)
|
|
|
|
|
|
|
+ baseapp.Logger.Warnf("[%s] 当前无可用网络接口(有线/蜂窝均不可用)!", MODULE_NAME)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 得到当前联网类型: 有线、蜂窝
|
|
// 得到当前联网类型: 有线、蜂窝
|