| 
					
				 | 
			
			
				@@ -107,6 +107,35 @@ public class CommSendService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void readOneSimAtLastByDebug(Sim s) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        l.info("readOneSimAtLastByDebug"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Fault> list = faultService.listType3(s.getSimType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (Fault f : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            readOneSimOneFaultResistance(s, null, f, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public AjaxResult debugReadAllFaultResistanceBySimNum(String simNum) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // check 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 打开socket 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            AjaxResult ar1 = openSocket(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ar1.isError()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return ar1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Sim s = simService.uniqueBySimNum(simNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (s == null || !Sim.State.ONLINE.equals(s.getSimState())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return AjaxResult.error("未连接维修模拟器,请检查连接!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // todo: aj改造 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        readOneSimAtLastByDebug(s); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return AjaxResult.success("成功读取!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Async("tp-comm") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void readOneExamAtLastAsync(RealExam re) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         l.info("readOneExamAtLastAsync"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -277,18 +306,28 @@ public class CommSendService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (list != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             l.info("清除exam list = {}", list.size()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        list.forEach(ref -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Fault f = faultService.selectFaultByFaultId(ref.getFaultId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (faultService.isDisable(f.getFaultId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                l.warn("故障 {} -被禁用", f.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                throw new IllegalArgumentException("故障被禁用"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Sim s = simService.selectSimBySimId(re.getSimId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // check 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assert list != null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .forEach(ref -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Fault f = faultService.selectFaultByFaultId(ref.getFaultId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (faultService.isDisable(f.getFaultId())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        l.warn("故障 {} -被禁用", f.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        throw new IllegalArgumentException("故障被禁用"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Sim s = simService.selectSimBySimId(re.getSimId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // check 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            clearOneSimOneFault(s, ref, f); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    clearOneSimOneFault(s, ref, f); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void clearOneSimAllFaultBySim(Sim s) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        l.info("clearOneSimAllFaultBySim = {}", s); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        faultService.listType3EnableBySimType(s.getSimType()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .forEach(f -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    clearOneSimOneFault(s, null, f); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -369,7 +408,7 @@ public class CommSendService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param s 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param reF 可以为空,表示不关联考试的,单独执行的。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param reF 可以为空,表示不关联考试的,单独执行的。调试模式下为空。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param f 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void clearOneSimOneFault(Sim s, RealExamFault reF, Fault f) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -380,7 +419,12 @@ public class CommSendService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // step1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         SimMsg smS = commBuildService.buildSendMsgClearFault(s.getSimNum(), f.getBindHardwareMsg()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         SimMsg smR = send(smS, s, RETRY_COUNT_CLEAR_ONE_FAULT, SLEEP_LONG); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        simReceiveService.clearOneFault(smR, s, reF, f); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (reF != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            simReceiveService.clearOneFault(smR, s, reF, f); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            l.info("reF == null"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // step2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 下发故障独立运行。下面屏蔽。 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -427,16 +471,56 @@ public class CommSendService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * todo:尚未实现 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 实现方式类似 studentStartRealExam方法。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param simNum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param faultIds 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param checkReplace 是否进行可换件检查 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public AjaxResult debugWriteSelectedFaultBySimNum(final String simNum, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                       final String[] faultIds, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                       final Boolean checkReplace) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // check faultIds 有效性 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Sim s = simService.uniqueBySimNum(simNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // check sim 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 打开socket 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            AjaxResult ar1 = openSocket(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (ar1.isError()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return ar1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Step 2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // msg判断,是否含有"故障部位"字符串 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (checkReplace) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                AjaxResult arE2 = readOneSimAllFaultCheck(s); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (arE2.isError()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return arE2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Step 3 清除对应一台模拟器 所有故障部位故障。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            clearOneSimAllFaultBySim(s); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Step 4 下发对应一台模拟器 出题选中的 故障位置故障。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Fault[] faults = new Fault[faultIds.length]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (int i = 0; i < faultIds.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                faults[i] = faultService.selectFaultByFaultId(faultIds[i]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            writeOneSimAllSelectFaultByDebug(s, faults); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Step 5 读取 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            readOneSimAllFaultFirstTimeBySim(s); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return AjaxResult.success("下发故障流程执行成功!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private String[] getGZBWBySimType(String simType) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -464,7 +548,7 @@ public class CommSendService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param re 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void writeOneSimAllSelectFault(RealExam re) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void writeOneSimAllSelectFaultByExam(RealExam re) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 更新Exam状态。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         realExamService.updateOneState(re.getExamId(), RealExam.State.SIM_WRITING); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<RealExamFault> list = realExamFaultService.listAllType2FlagYesClearedStateByExamId(re.getExamId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -476,6 +560,12 @@ public class CommSendService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void writeOneSimAllSelectFaultByDebug(Sim s, Fault[] faults) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (Fault f : faults) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            writeOneSimOneFault(s, null, f); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void writeOneSimOneFault(Sim s, RealExamFault ref, Fault f) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         l.info("下发故障:getSimId = {},fault.getName = {}", s.getSimId(), f.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // todo:ref is null. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -485,7 +575,7 @@ public class CommSendService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 检查读取。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 开始考试前检查读取。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param s 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -535,7 +625,7 @@ public class CommSendService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param re 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void readOneSimAllFaultFirstTime(RealExam re) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void readOneSimAllFaultFirstTimeByExam(RealExam re) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<RealExamFault> list = realExamFaultService.listAllType2(re.getExamId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (RealExamFault ref : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Sim s = simService.selectSimBySimId(re.getSimId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -544,11 +634,18 @@ public class CommSendService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void readOneSimAllFaultFirstTimeBySim(Sim s) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<Fault> list = faultService.listType3(s.getSimType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (Fault f : list) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            readOneSimOneFaultFirstTime(s, null, f); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 第一次读取,作为出题值。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param s 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param ref 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param ref debug调试模式为空。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param f 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void readOneSimOneFaultFirstTime(Sim s, RealExamFault ref, Fault f) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -601,10 +698,14 @@ public class CommSendService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         l.info("readOneFaultResistance"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         SimMsg sm1 = commBuildService.buildSendMsgReadFaultResistance(s.getSimNum(), f.getBindHardwareMsg()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         SimMsg sm2 = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (RealExamFault.State.FINISH.equals(refState)) { // 是否最后一次读取。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sm2 = send(sm1, s, RETRY_COUNT_READ_ONE_RESISTANCE, SLEEP_SHORT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (reF != null && refState != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (RealExamFault.State.FINISH.equals(refState)) { // 是否最后一次读取。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sm2 = send(sm1, s, RETRY_COUNT_READ_ONE_RESISTANCE, SLEEP_SHORT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sm2 = send(sm1, s, RETRY_COUNT_0, SLEEP_SHORT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            sm2 = send(sm1, s, RETRY_COUNT_0, SLEEP_SHORT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            sm2 = send(sm1, s, RETRY_COUNT_READ_ONE_RESISTANCE, SLEEP_SHORT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         simReceiveService.setFaultAnswerValue(sm2, s, reF, f, refState); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -680,7 +781,7 @@ public class CommSendService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 先考虑一台模拟器演示。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 进行重试 start 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (sm.getRetryCount() == RETRY_COUNT_0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                l.warn("####RetryTotalCount不重试RETRY_COUNT_0#### = {}", sm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                l.warn("####RetryTotalCount不重试RETRY_COUNT_0#### = getSimMsgId = {}", sm.getSimMsgId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 return sm; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (sm.getRetryCount() < retryTotalCount) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -742,11 +843,11 @@ public class CommSendService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return AjaxResult.error("openSocket IOException"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return AjaxResult.error("开启连接失败!请检查物联网网关连接或配置。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return AjaxResult.success(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return AjaxResult.success("开启连接成功!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -770,12 +871,12 @@ public class CommSendService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return AjaxResult.success("closeSocket IOException"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return AjaxResult.success("关闭连接失败!请检查物联网网关连接或配置。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             cachedSocket = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             commFailCountClearAll(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return AjaxResult.success(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return AjaxResult.success("关闭连接成功!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 |