From 9ad6b0179be4d351105f1507779d4f41a3a41953 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期六, 07 九月 2024 16:57:40 +0800 Subject: [PATCH] 1、完善代码; 2、江海协议时标(tp)实现中的bug修改。 --- pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java | 158 +++++++--------------------------------------------- 1 files changed, 23 insertions(+), 135 deletions(-) diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java index 0f58f3e..fe1eae5 100644 --- a/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java +++ b/pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java @@ -14,6 +14,16 @@ private static final Logger log = LogManager.getLogger(MyThreadJob.class) ; + public static String icCardAddr = "3B7D1E1A" ; + public static String icCardNo = "61181622830147821" ; + public static String openValveDt = "240711163700" ; + public static String cdC0 = "C0" ; + public static String cd83Open = "83Open" ; + public static String cd83Close = "83Close" ; + + + public static String curCd = cdC0 ;//閫氳繃淇敼杩欎釜鍊硷紝鏉ユ敼鍙樹笂鎶ユ暟鎹被鍨� + public String rtuAddr; public String serverIp; public Integer serverPort; @@ -44,7 +54,7 @@ if(sendTimes <= ServerProperties.sendTimes){ log.info("RTU" + rtuAddr + "寮�濮嬩换鍔�"); log.info("RTU" + rtuAddr + "灏嗚鎵ц" + ServerProperties.sendTimes + "杞浠诲姟锛屽綋鍓嶈疆娆℃槸" + sendTimes); - sendDataOfP206V1_0_0() ; + sendDataOfP206V1_0_0(curCd) ; }else{ if(ServerProperties.sendOverThenCloseConnect == 1){ log.info("RTU" + rtuAddr + "绛夊緟涓�浼氾紝浠ユ帴鏀堕�氫俊涓棿浠朵笅琛屾暟鎹�"); @@ -64,11 +74,20 @@ } } - private void sendDataOfP206V1_0_0(){ + private void sendDataOfP206V1_0_0(String cd){ try{ if(heartbeatTimes > ServerProperties.heartbeatTimes){ heartbeatTimes = 1 ; - this.sendReportData() ; + byte[] bs = null ; + if(cd.equals(cdC0)){ + bs = RtuUpData.createCdC0(this.rtuAddr) ; + }else if(cd.equals(cd83Open)){ + bs = RtuUpData.createCd83Open(this.rtuAddr, icCardAddr, icCardNo, openValveDt) ; + }else if(cd.equals(cd83Close)){ + bs = RtuUpData.createCd83Close(this.rtuAddr, icCardAddr, icCardNo, openValveDt) ; + } + this.session.write(bs) ; + log.info("RTU" + rtuAddr + "鍙戦�佷簡涓婅鏁版嵁锛�" + ByteUtil.bytes2Hex(bs, false)); TcpClUnit.clientSendData(); sendTimes++ ; }else{ @@ -82,7 +101,7 @@ } private void sendHeartbeat(){ try{ - byte[] bs = this.createHeartbeat() ; + byte[] bs = RtuUpData.createHeartbeat(this.rtuAddr) ; this.session.write(bs) ; log.info("RTU" + rtuAddr + "鍙戦�佷簡蹇冭烦鏁版嵁锛�" + ByteUtil.bytes2Hex(bs, false)); }catch (Exception e){ @@ -90,15 +109,6 @@ } } - private void sendReportData(){ - try{ - byte[] bs = this.createReport() ; - this.session.write(bs) ; - log.info("RTU" + rtuAddr + "鍙戦�佷簡涓婃姤鏁版嵁锛�" + ByteUtil.bytes2Hex(bs, false)); - }catch (Exception e){ - e.printStackTrace(); - } - } private void jobOver(){ if(ServerProperties.sendOverThenCloseConnect == 1){ @@ -108,128 +118,6 @@ TcpClUnit.clientOver() ; } - /** - * 鏋勯�犲績璺虫暟鎹� - * @return 瀛楄妭鏁扮粍 - * @throws Exception 寮傚父 - */ - public byte[] createHeartbeat( ) throws Exception { - CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ; - byte[] bytes ; - byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ; - byte index = 0 ; - bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; - - index++ ; - bsHead[index] = 0 ;//甯ч暱搴� - - index++ ; - bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; - - index++ ; - bsHead[index] = commonV1_0_1.createCtrl((byte)0x80, (byte)0) ;//鎺у埗鍩熷姛鑳界爜锛氱‘璁� 璁ゅ彲 - - index++ ; - GlCreate.createRtuAddr(this.rtuAddr, bsHead, index); - index += 5 ; - - ByteUtil.hex2Bytes("02", bsHead, index) ; - - byte[] bs = new byte[1] ; - bs[0] = (byte)0xF2 ;//鏁版嵁鍩燂細 1 涓瓧鑺傦紝F0 鐧诲綍锛� F1 閫�鍑虹櫥褰曪紝F2 鍦ㄧ嚎淇濇寔銆� - - bytes = ByteUtil.bytesMerge(bsHead, bs) ; - - GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑 - - byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓� - - bytes = ByteUtil.bytesMerge(bytes, bsTail) ; - - return bytes ; - } - - /** - * 鏋勯�犱笂鎶ユ暟鎹� - * @return 瀛楄妭鏁扮粍 - * @throws Exception 寮傚父 - */ - public byte[] createReport( ) throws Exception { - CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ; - byte[] bytes ; - byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ; - byte index = 0 ; - bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; - - index++ ; - bsHead[index] = 0 ;//甯ч暱搴� - - index++ ; - bsHead[index] = ProtocolConstantV206V1_0_0.P_Head_Byte ; - - index++ ; - bsHead[index] = commonV1_0_1.createCtrl((byte)0x80, (byte)3) ;//鎺у埗鍩熷姛鑳界爜3锛氳嚜鎶ュ抚锛屾祦閲忥紙姘撮噺锛夊弬鏁� - - index++ ; - GlCreate.createRtuAddr(this.rtuAddr, bsHead, index); - index += 5 ; - - ByteUtil.hex2Bytes("C0", bsHead, index) ; - - byte[] bs = new byte[2] ; - bs[0] = (byte)0x04 ;//鏈夋祦閲忔暟鎹� - bs[1] = (byte)0xE0 ;//鏈夋按鍘嬨�佺數姹犵數鍘嬨�佷俊鍙峰己搴� - - bytes = ByteUtil.bytesMerge(bsHead, bs) ; - - bs = new byte[5] ;//鐬椂娴侀噺 - bs[0] = ByteUtil.int2BCD_LE (21)[0] ; - bs[1] = ByteUtil.int2BCD_LE (43)[0] ; - bs[2] = ByteUtil.int2BCD_LE (65)[0] ; - bytes = ByteUtil.bytesMerge(bytes, bs) ; - - bs = new byte[5] ;//绱娴侀噺 - bs[0] = ByteUtil.int2BCD_LE (21)[0] ; - bs[1] = ByteUtil.int2BCD_LE (43)[0] ; - bs[2] = ByteUtil.int2BCD_LE (65)[0] ; - bs[3] = ByteUtil.int2BCD_LE (87)[0] ; - bytes = ByteUtil.bytesMerge(bytes, bs) ; - - bs = new byte[5] ;//鎹熷け娴侀噺 - bs[0] = ByteUtil.int2BCD_LE (10)[0] ; - bs[1] = ByteUtil.int2BCD_LE (32)[0] ; - bs[2] = ByteUtil.int2BCD_LE (54)[0] ; - bytes = ByteUtil.bytesMerge(bytes, bs) ; - - bs = new byte[4] ;//姘村帇 - bs[0] = ByteUtil.int2BCD_LE (10)[0] ; - bs[1] = ByteUtil.int2BCD_LE (32)[0] ; - bs[2] = ByteUtil.int2BCD_LE (4)[0] ; - bytes = ByteUtil.bytesMerge(bytes, bs) ; - - bs = new byte[4] ;//鐢垫睜鐢靛帇 - bs[0] = ByteUtil.int2BCD_LE (10)[0] ; - bs[1] = ByteUtil.int2BCD_LE (32)[0] ; - bs[2] = ByteUtil.int2BCD_LE (10)[0] ; - bs[3] = ByteUtil.int2BCD_LE (32)[0] ; - bytes = ByteUtil.bytesMerge(bytes, bs) ; - - bs = new byte[1] ;//淇″彿寮哄害 - bs[0] = ByteUtil.int2BCD_LE (21)[0] ; - bytes = ByteUtil.bytesMerge(bytes, bs) ; - - bs = new byte[6] ;//鏃堕挓 - GlCreate.createTp(bs, 0); - bytes = ByteUtil.bytesMerge(bytes, bs) ; - - GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑 - - byte[] bsTail = GlCreate.createCrcTail(bytes) ;//CRC鍜屽熬鍙犲姞瀛楄妭鏁扮粍涓� - - bytes = ByteUtil.bytesMerge(bytes, bsTail) ; - - return bytes ; - } -- Gitblit v1.8.0