From 428eee9df5f8885ab71d7cd273f5889b8c81e1dc Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期四, 31 十月 2024 16:49:30 +0800
Subject: [PATCH] 2024-10-31 优化代码
---
pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpClient/MyThreadJob.java | 188 ++++++++++------------------------------------
1 files changed, 42 insertions(+), 146 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 7575093..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;
@@ -39,18 +49,24 @@
@Override
public void execute() throws Exception {
- if(session != null){
- if(sendTimes <= ServerProperties.sendTimes){
- log.info("RTU" + rtuAddr + "寮�濮嬩换鍔�");
- log.info("RTU" + rtuAddr + "灏嗚鎵ц" + ServerProperties.sendTimes + "杞浠诲姟锛屽綋鍓嶈疆娆℃槸" + sendTimes);
- sendDataOfP206V1_0_0() ;
- }else{
- log.info("RTU" + rtuAddr + "绛夊緟涓�浼氾紝浠ユ帴鏀堕�氫俊涓棿浠朵笅琛屾暟鎹�");
- if(overStart == 0){
- overStart = System.currentTimeMillis() ;
+ if(!this.isOver){
+ if(session != null){
+ if(sendTimes <= ServerProperties.sendTimes){
+ log.info("RTU" + rtuAddr + "寮�濮嬩换鍔�");
+ log.info("RTU" + rtuAddr + "灏嗚鎵ц" + ServerProperties.sendTimes + "杞浠诲姟锛屽綋鍓嶈疆娆℃槸" + sendTimes);
+ sendDataOfP206V1_0_0(curCd) ;
}else{
- long now = System.currentTimeMillis() ;
- if(now - overStart >= 30 * 1000){
+ if(ServerProperties.sendOverThenCloseConnect == 1){
+ log.info("RTU" + rtuAddr + "绛夊緟涓�浼氾紝浠ユ帴鏀堕�氫俊涓棿浠朵笅琛屾暟鎹�");
+ if(overStart == 0){
+ overStart = System.currentTimeMillis() ;
+ }else{
+ long now = System.currentTimeMillis() ;
+ if(now - overStart >= 30 * 1000){
+ this.jobOver() ;
+ }
+ }
+ }else{
this.jobOver() ;
}
}
@@ -58,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{
@@ -76,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){
@@ -84,144 +109,15 @@
}
}
- 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(){
- session.closeOnFlush() ;
+ if(ServerProperties.sendOverThenCloseConnect == 1){
+ session.closeOnFlush() ;
+ }
this.isOver = true ;
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