Procházet zdrojové kódy

优化修改代码, 增强容错处理

niujiuru před 1 měsícem
rodič
revize
95fa483555

+ 1 - 1
air720u/air720u.c

@@ -188,7 +188,7 @@ int Air720U_ComInit()
   memset(&trans, 0, sizeof(SATCmdTrans));
   strcpy(trans.cmd.data, AT_GET_CGMM); trans.cmd.len = strlen(trans.cmd.data);
   ret = comio_doCmd(&trans, WAIT_ACK_TIMEOUT);
-  if(!(ret > 0 && strstr(trans.ack.data, ATOK) && xstrcasestr(trans.ack.data, "left", MODULE_NAME)))
+  if(!(ret > 0 && strstr(trans.ack.data, ATOK) && xstrcasestr(trans.ack.data, "left", "Air72")))
   {
     if(ret != 0) sw_log_error("[%s] failed to get module model!!", MODULE_NAME);
     Air720U_ComExit(); return -99+ret;

+ 4 - 4
air720u/air720u.go

@@ -46,8 +46,8 @@ func ModuleInit(bForceRepower bool /*是否强制重启*/) bool {
 			goto openOK
 		}
 		switch ret {
-		case -1, -3: // -1: 串口被占用或不存在(驱动有问题时)
-			// -3: 设备无应答(初始化时会发送的两条关键配置指令)
+		case -1, -3, -100: // -1: 串口被占用或不存在(驱动有问题时)
+			// -3, -100: 设备无应答(初始化时会发送的两条关键配置指令)
 			if ret == -1 {
 				freeTTYUSB0()
 			}
@@ -134,7 +134,7 @@ initOK:
 	wg1.Add(1)
 	go func() { // 启动携程循环读取4G模块的信号强度和ICCID号等信息
 		defer wg1.Done()
-		monitorAir720uInfo(exitCh1)
+		monitorAir720UInfo(exitCh1)
 	}()
 
 	isRunning1 = true
@@ -180,7 +180,7 @@ func GetSimICCID() string {
 }
 
 // 循环读取刷新信息
-func monitorAir720uInfo(exitCh <-chan struct{}) {
+func monitorAir720UInfo(exitCh <-chan struct{}) {
 	t := time.NewTicker(time.Duration(5) * time.Second)
 	defer t.Stop()
 	for {

+ 1 - 0
air720u/eth2net.go

@@ -244,5 +244,6 @@ func Is4GCableConnected() (bool, error) {
 	if err != nil {
 		return false, err
 	}
+
 	return link.Attrs().OperState == netlink.OperUp, nil // 操作状态
 }

binární
docs/Quectel_EC200U-CN_AT_Commands_Manual_V1.0.0_Preliminary_20200114.pdf


+ 2 - 2
ec200u/en200u.go

@@ -46,8 +46,8 @@ func ModuleInit(bForceRepower bool /*是否强制重启*/) bool {
 			goto openOK
 		}
 		switch ret {
-		case -1, -3, -4, -5: // -1: 串口被占用或不存在(驱动有问题时)
-			// -3, -4, -5: 设备无应答(初始化时会发送的四条关键配置指令)
+		case -1, -3, -4, -5, -100: // -1: 串口被占用或不存在(驱动有问题时)
+			// -3, -4, -5, -100: 设备无应答(初始化时会发送的四条关键配置指令)
 			if ret == -1 {
 				freeTTYUSB0()
 			}

+ 1 - 0
ec200u/usb0net.go

@@ -244,5 +244,6 @@ func Is4GCableConnected() (bool, error) {
 	if err != nil {
 		return false, err
 	}
+
 	return link.Attrs().OperState == netlink.OperUp, nil // 操作状态
 }

+ 3 - 0
readme.txt

@@ -31,6 +31,9 @@ SHELL脚本封装库, 后台守护软件运行等功能, 可以平替硬件看
 10、./mvs_g_takephoto (Todo: 待实现)
 海康机器人工业相机-G口, 通过海康提供的SDK, 封装实现拍照功能
 
+11、./ec200u
+通过串口指令控制移远-"EC200U"硬件模块, 实现移动网络通信功能
+
 二、编译说明
 1, export交叉编译工具链"gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf"的位置到PATH环境变量
 2, make target=armv7hf