Quellcode durchsuchen

优化修改代码

niujiuru vor 1 Monat
Ursprung
Commit
6e6b474a86
4 geänderte Dateien mit 14 neuen und 10 gelöschten Zeilen
  1. 1 1
      air720u/air720u.c
  2. 6 4
      air720u/air720u.go
  3. 1 1
      ec200u/ec200u.c
  4. 6 4
      ec200u/en200u.go

+ 1 - 1
air720u/air720u.c

@@ -171,7 +171,7 @@ int Air720U_ComInit()
   {
     sw_log_error("[%s] failed to open the \"%s:%d(%s parity)\" device!!", \
                  MODULE_NAME, serialName, baudrate, parityCheck);
-    sw_mutex_destroy(s_myCom.do_cmd_mutex); return -1;
+    Air720U_ComExit(); return -1;
   }
 
   SATCmdTrans trans; memset(&trans, 0, sizeof(SATCmdTrans));

+ 6 - 4
air720u/air720u.go

@@ -46,13 +46,15 @@ func ModuleInit(bForceRepower bool /*是否强制重启*/) bool {
 			goto openOK
 		}
 		switch ret {
-		case -1: // 串口被占用(或不存在, 正常情况下只能是被占用)
-			freeTTYUSB0()
-		case -3: // 设备无应答(初始化时会发送一条关闭回显的指令)
+		case -1, -3: // -1: 串口被占用或不存在(驱动有问题时)
+			// -3: 设备无应答(初始化时会发送一条关闭回显的指令)
+			if ret == -1 {
+				freeTTYUSB0()
+			}
 			air720U_Repower() // 重新上电
 			bExists = false   // 等待复位, 标记设备已不存在
 		}
-	} else { // 设备不存在或函数调用明确要求强制模块重新启动时
+	} else { // 设备不存在, 或调用该函数时明确要求强制重启/
 		air720U_Repower() //// 重新上电
 		bExists = false   //// 等待复位, 标记设备已不存在
 	}

+ 1 - 1
ec200u/ec200u.c

@@ -174,7 +174,7 @@ int EC200U_ComInit()
   {
     sw_log_error("[%s] failed to open the \"%s:%d(%s parity)\" device!!", \
                  MODULE_NAME, serialName, baudrate, parityCheck);
-    sw_mutex_destroy(s_myCom.do_cmd_mutex); return -1;
+    EC200U_ComExit(); return -1;
   }
 
   SATCmdTrans trans; memset(&trans, 0, sizeof(SATCmdTrans));

+ 6 - 4
ec200u/en200u.go

@@ -46,13 +46,15 @@ func ModuleInit(bForceRepower bool /*是否强制重启*/) bool {
 			goto openOK
 		}
 		switch ret {
-		case -1: // 串口被占用(或不存在, 正常情况下只能是被占用)
-			freeTTYUSB0()
-		case -3: // 设备无应答(初始化时会发送一条关闭回显的指令)
+		case -1, -3, -4, -5: // -1: 串口被占用或不存在(驱动有问题时)
+			// -3, -4, -5: 设备无应答(初始化时会发送的三条关键配置指令)
+			if ret == -1 {
+				freeTTYUSB0()
+			}
 			ec200U_Repower() // 重新上电
 			bExists = false  // 等待复位, 标记设备已不存在
 		}
-	} else { // 设备不存在或函数调用明确要求强制模块重新启动时
+	} else { ///// 设备不存在, 或调用该函数时明确要求强制重启 ////
 		ec200U_Repower() //// 重新上电
 		bExists = false  //// 等待复位, 标记设备已不存在
 	}