Index: forgon-core/src/main/java/com/forgon/device/ZHLEDControllerManager.java =================================================================== diff -u -r23270 -r23390 --- forgon-core/src/main/java/com/forgon/device/ZHLEDControllerManager.java (.../ZHLEDControllerManager.java) (revision 23270) +++ forgon-core/src/main/java/com/forgon/device/ZHLEDControllerManager.java (.../ZHLEDControllerManager.java) (revision 23390) @@ -171,8 +171,13 @@ private boolean sendCMD(byte[] cmd) { try { // Log.i("toolsdebug", "发送指令 ====> " + Tools.Bytes2HexString(cmd, cmd.length)); - mOutputStream.write(cmd); - mOutputStream.flush(); + if(mOutputStream != null){ + mOutputStream.write(cmd); + mOutputStream.flush(); + + logger.debug("已发送命令:"+Tools.Bytes2HexString(cmd, cmd.length)); + } + return true; } catch (IOException e) { e.printStackTrace(); @@ -209,14 +214,17 @@ cmd[24] = lenH; if(dataLen > 0){ - System.arraycopy(new byte[]{(byte)0x00,(byte)0x01}, 0, cmd, 25, data.length); +// System.arraycopy(new byte[]{(byte)0x00,(byte)0x01}, 0, cmd, 25, dataLen); + System.arraycopy(data, 0, cmd, 25, dataLen); } // CRC byte[] b2 = new byte[15+dataLen]; System.arraycopy(cmd, 10, b2, 0, b2.length); byte[] crc = GetCmdCrcBytes(b2); System.arraycopy(crc, 0, cmd, cmdLength - 3, 2); cmd[cmdLength - 1] = (byte)0xA5;// end + + logger.debug("构造命令:"+Tools.Bytes2HexString(cmd, cmd.length)); return cmd; } @@ -253,8 +261,11 @@ int contentsLen = contents.length(); - byte lenL = (byte)(contentsLen & 0x000000FF); - byte lenH = (byte)((contentsLen & 0x0000FF00)>>8); +// byte lenL = (byte)(contentsLen & 0x000000FF); +// byte lenH = (byte)((contentsLen & 0x0000FF00)>>8); + // 字节长度 + byte lenL = (byte)(stringBytes.length & 0x000000FF); + byte lenH = (byte)((stringBytes.length & 0x0000FF00)>>8); data[4] = lenL; data[5] = lenH; System.arraycopy(stringBytes, 0, data, 6, stringBytes.length); @@ -446,7 +457,10 @@ responseStrLenErr = responseLenErr*2; } private void getCommonResponseData() { - + responseSuccess = false; + if(mInputStream == null){ + return; + } byte[] buf = new byte[1024]; int a = 0; String receviceString = ""; @@ -486,13 +500,17 @@ if (cheakCommonResponseEnd(lastSubString)){ this.responseStr = lastSubString; responseSuccess = true; + + logger.debug("接收命令:"+lastSubString); return true; } }else if (receviceStringLength >= responseStrLenErr){ String lastSubString = receviceString.substring(receviceStringLength - responseStrLen, receviceStringLength); if (cheakCommonResponseErrEnd(lastSubString)){ this.responseStr = lastSubString; responseSuccess = false; + + logger.debug("接收命令:"+lastSubString); return true; } } @@ -540,6 +558,10 @@ logger.debug(ZHLEDControllerManager.class.getSimpleName() + "init"); JSONArray array = CssdUtils2.getArraySystemSetConfigByName("ZHLEDControllers"); + initByConfig(array); + } + + public void initByConfig(JSONArray array){ if(array == null){ return; }