Index: forgon-core/src/main/java/com/forgon/device/ZHLEDControllerManager.java =================================================================== diff -u -r23390 -r25595 --- forgon-core/src/main/java/com/forgon/device/ZHLEDControllerManager.java (.../ZHLEDControllerManager.java) (revision 23390) +++ forgon-core/src/main/java/com/forgon/device/ZHLEDControllerManager.java (.../ZHLEDControllerManager.java) (revision 25595) @@ -65,7 +65,13 @@ private int responseLenErr; private int responseStrLenErr; private String responseStr; - private boolean responseSuccess = false; + private boolean responseSuccess = false; + + /** + * 连接失败次数,大于3次后,不再打印StackTrace错误信息 + */ + private int connectfailureCount = 0; + public void init(JSONObject cfg){ this.cfg = cfg; ip = JSONUtil.optString(cfg, "ip", null); @@ -113,8 +119,13 @@ socket.setSoTimeout(timeout); mInputStream = socket.getInputStream(); mOutputStream = socket.getOutputStream(); + connectfailureCount = 0; } catch (Exception e) { - e.printStackTrace(); + connectfailureCount++; + logger.debug("连接LED屏不成功,IP:" + ip + ",Port:" + port + ",错误次数:" + connectfailureCount + ",信息:" + e.getMessage()); + if (connectfailureCount <= 3){ + e.printStackTrace(); + } return false; } return true; @@ -174,13 +185,17 @@ if(mOutputStream != null){ mOutputStream.write(cmd); mOutputStream.flush(); - - logger.debug("已发送命令:"+Tools.Bytes2HexString(cmd, cmd.length)); + connectfailureCount = 0; + logger.debug("IP:" + ip + ",Port:" + port + ",已发送命令:"+Tools.Bytes2HexString(cmd, cmd.length)); } return true; } catch (IOException e) { - e.printStackTrace(); + connectfailureCount++; + logger.debug("发送命令不成功,IP:" + ip + ",Port:" + port + ",错误次数:" + connectfailureCount + ",信息:" + e.getMessage()); + if (connectfailureCount <= 3){ + e.printStackTrace(); + } close(); return false; } @@ -224,7 +239,7 @@ System.arraycopy(crc, 0, cmd, cmdLength - 3, 2); cmd[cmdLength - 1] = (byte)0xA5;// end - logger.debug("构造命令:"+Tools.Bytes2HexString(cmd, cmd.length)); +// logger.debug("IP:" + ip + ",Port:" + port + ",构造命令:"+Tools.Bytes2HexString(cmd, cmd.length)); return cmd; } @@ -486,7 +501,8 @@ } } } catch (IOException e) { - e.printStackTrace(); + logger.debug("IP:" + ip + ",Port:" + port + ",读取失败:" + e.getMessage()); +// e.printStackTrace(); close(); return ; } @@ -506,7 +522,7 @@ } }else if (receviceStringLength >= responseStrLenErr){ String lastSubString = receviceString.substring(receviceStringLength - responseStrLen, receviceStringLength); - if (cheakCommonResponseErrEnd(lastSubString)){ + if (checkCommonResponseErrEnd(lastSubString)){ this.responseStr = lastSubString; responseSuccess = false; @@ -530,7 +546,7 @@ // return true; return true; } - private boolean cheakCommonResponseErrEnd(String hexString) { + private boolean checkCommonResponseErrEnd(String hexString) { byte[] reponseBytes = Tools.HexString2Bytes(hexString); if(reponseBytes[0] != 0x79){