|
|
@@ -105,11 +105,11 @@ func main() {
|
|
|
if !netmgrd.ModemInit() {
|
|
|
goto end_p
|
|
|
}
|
|
|
+ go writeDeviceIMEI() // 异步获取IMEI号并写入文件, 用于YFKJ SSHD远程运维服务的设备标识
|
|
|
|
|
|
// 03, 初始化网络管理模块
|
|
|
netmgrd.ModuleInit()
|
|
|
- netmgrd.WaitAllOK(time.Duration(10) * time.Second) // 等待联网成功和网路时间同步成功
|
|
|
- go writeDeviceIMEI()
|
|
|
+ netmgrd.WaitAllOK(time.Duration(30) * time.Second) // 等待联网成功和NTP时间同步成功
|
|
|
|
|
|
// 04, 初始化相机拍照模块
|
|
|
if !camera1.ModuleInit(true, "192.168.100.123/24", "192.168.100.100/24") {
|
|
|
@@ -144,12 +144,23 @@ func help() {
|
|
|
}
|
|
|
|
|
|
func writeDeviceIMEI() {
|
|
|
+ const path = "/var/device_imei.txt"
|
|
|
+ tmp := path + ".tmp"
|
|
|
+
|
|
|
for {
|
|
|
- imei := netmgrd.GetIMEI()
|
|
|
- if imei == netmgrd.ErrUnknownModemTypeMsg || imei == "" {
|
|
|
+ imei := strings.TrimSpace(netmgrd.GetIMEI())
|
|
|
+ if imei == "" || imei == netmgrd.ErrUnknownModemTypeMsg {
|
|
|
+ time.Sleep(time.Second)
|
|
|
continue
|
|
|
}
|
|
|
- os.WriteFile("/var/device_imei.txt", []byte(strings.TrimSpace(imei)+"\n"), 0644)
|
|
|
- break
|
|
|
+
|
|
|
+ if old, err := os.ReadFile(path); err == nil && strings.TrimSpace(string(old)) == imei {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if os.WriteFile(tmp, []byte(imei+"\n"), 0644) == nil {
|
|
|
+ _ = os.Rename(tmp, path)
|
|
|
+ }
|
|
|
+ return
|
|
|
}
|
|
|
}
|