소스 검색

优化修改识别4G模组的代码逻辑

niujiuru 1 개월 전
부모
커밋
20f698c8ac
4개의 변경된 파일14개의 추가작업 그리고 8개의 파일을 삭제
  1. 2 2
      air720u/air720u.c
  2. 5 2
      air720u/air720u.go
  3. 2 2
      ec200u/ec200u.c
  4. 5 2
      ec200u/en200u.go

+ 2 - 2
air720u/air720u.c

@@ -190,8 +190,8 @@ int Air720U_ComInit()
   ret = comio_doCmd(&trans, WAIT_ACK_TIMEOUT);
   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;
+    if(ret < 0) sw_log_error("[%s] failed to get module model(%d)!!", MODULE_NAME, ret);
+    Air720U_ComExit(); return -99;
   }
 
   return 0;

+ 5 - 2
air720u/air720u.go

@@ -46,13 +46,16 @@ func ModuleInit(bForceRepower bool /*是否强制重启*/) bool {
 			goto openOK
 		}
 		switch ret {
-		case -1, -3, -100: // -1: 串口被占用或不存在(驱动有问题时)
-			// -3, -100: 设备无应答(初始化时会发送的两条关键配置指令)
+		case -1, -3: // -1: 串口被占用或不存在(驱动有问题时)
+			// -3: 设备无应答(初始化时会发送的单条关键配置指令)
 			if ret == -1 {
 				freeTTYUSB0()
 			}
 			air720U_Repower() // 重新上电
 			bExists = false   // 等待复位, 标记设备已不存在
+		case -99: // 模块型号不匹配, 不是合宙的 "Air720U"
+			air720U_ComExit()
+			return false
 		}
 	} else { // 设备不存在, 或调用该函数时明确要求强制重启/
 		air720U_Repower() //// 重新上电

+ 2 - 2
ec200u/ec200u.c

@@ -193,8 +193,8 @@ int EC200U_ComInit()
   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) sw_log_error("[%s] failed to get module model!!", MODULE_NAME);
-    EC200U_ComExit(); return -99+ret;
+    if(ret < 0) sw_log_error("[%s] failed to get module model(%d)!!", MODULE_NAME, ret);
+    EC200U_ComExit(); return -99;
   }
 
   memset(&trans, 0, sizeof(SATCmdTrans));

+ 5 - 2
ec200u/en200u.go

@@ -46,13 +46,16 @@ func ModuleInit(bForceRepower bool /*是否强制重启*/) bool {
 			goto openOK
 		}
 		switch ret {
-		case -1, -3, -4, -5, -100: // -1: 串口被占用或不存在(驱动有问题时)
-			// -3, -4, -5, -100: 设备无应答(初始化时会发送的四条关键配置指令)
+		case -1, -3, -4, -5: // -1: 串口被占用或不存在(驱动有问题时)
+			// -3, -4, -5: 设备无应答(初始化时会发送的多条关键配置指令)
 			if ret == -1 {
 				freeTTYUSB0()
 			}
 			ec200U_Repower() // 重新上电
 			bExists = false  // 等待复位, 标记设备已不存在
+		case -99: // 模块型号不匹配, 不是移远的 "EC200U"
+			ec200U_ComExit()
+			return false
 		}
 	} else { ///// 设备不存在, 或调用该函数时明确要求强制重启 ////
 		ec200U_Repower() //// 重新上电