Parcourir la source

取消sshd服务操作4G模块获取IMEI号的设计, 改为由业务模块输出/var/device_imei.txt的方案, 避免与业务模块同时操作4G模块引起打架, 导致相互影响

niujiuru il y a 2 semaines
Parent
commit
d9eb239577
2 fichiers modifiés avec 17 ajouts et 3 suppressions
  1. 13 0
      main.go
  2. 4 3
      sshd/sshd.go

+ 13 - 0
main.go

@@ -3,6 +3,7 @@ package main
 import (
 	"fmt"
 	"os"
+	"strings"
 	"time"
 
 	gps "hnyfkj.com.cn/rtu/linux/air530z"
@@ -108,6 +109,7 @@ func main() {
 	// 03, 初始化网络管理模块
 	netmgrd.ModuleInit()
 	netmgrd.WaitAllOK(time.Duration(10) * time.Second) // 等待联网成功和网路时间同步成功
+	go writeDeviceIMEI()
 
 	// 04, 初始化相机拍照模块
 	if !camera1.ModuleInit(true, "192.168.100.123/24", "192.168.100.100/24") {
@@ -140,3 +142,14 @@ func help() {
 
 	fmt.Println(h)
 }
+
+func writeDeviceIMEI() {
+	for {
+		imei := netmgrd.GetIMEI()
+		if imei == netmgrd.ErrUnknownModemTypeMsg || imei == "" {
+			continue
+		}
+		os.WriteFile("/var/device_imei.txt", []byte(strings.TrimSpace(imei)+"\n"), 0644)
+		break
+	}
+}

+ 4 - 3
sshd/sshd.go

@@ -3,6 +3,7 @@ package sshd
 import (
 	"context"
 	"errors"
+	"os"
 	"strings"
 	"sync"
 	"sync/atomic"
@@ -108,12 +109,12 @@ func ModuleExit() {
 }
 
 func (c *MQTTCoupler) init2() error {
-	netmgrd.ModemInit()
-	c.imei = netmgrd.GetIMEI()
+	imeiBytes, _ := os.ReadFile("/var/device_imei.txt")
+	c.imei = strings.TrimSpace(string(imeiBytes))
 	if c.imei == netmgrd.ErrUnknownModemTypeMsg || c.imei == "" {
 		return ErrIMEINotAvailable
 	}
-	netmgrd.ModemExit()
+	baseapp.Logger.Infof("[%s] ☺✔设备IMEI: %s", MODULE_NAME, c.imei)
 
 	template := "/yfkj/device/rpc/imei"
 	c.subTopic = strings.ReplaceAll(template+"/cmd", "imei", c.imei)