From e407fcf19e50ed0972e7262d99da4b3a83d08706 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期五, 11 十月 2024 17:08:23 +0800 Subject: [PATCH] 1、修改协议驱动RTU上行数据解析出错时,RTU上下行数据日志中的RTU地址不正确的bug; 2、83功能码上行数据测试main方法实现。 --- pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java | 32 ++++++++++++++++++++------------ 1 files changed, 20 insertions(+), 12 deletions(-) diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java index 29efc43..2508bc8 100644 --- a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java +++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_A0_Down.java @@ -32,6 +32,7 @@ midRs.rtuAddr = para.rtuAddr ;//Rtu鍦板潃 midRs.commandId = para.commandId ;//鍛戒护ID锛屽彂璧峰懡浠ょ殑瀹㈡埛绔�(web绔�)鐢熸垚锛屼互鍖归厤鍛戒护缁撴灉 midRs.downCode = para.commandCode ;//涓嬭鍛戒护鍔熻兘鐮�; + midRs.downCodeName = CodeV1_0_1.getCodeName(para.commandCode) ;//涓嬭鍛戒护鍔熻兘鐮佸悕绉�; midRs.downBuffer = bs ;//涓嬭鍛戒护鏁版嵁 midRs.downBufHex = ByteUtil.bytes2Hex(bs, true) ;//涓嬭鍛戒护鏁版嵁鍗佸叚杩涘埗褰㈠紡 midRs.hasResponse = true ;//鏄惁鏈夊簲绛� @@ -79,19 +80,19 @@ String json = obj.toJSONString(); ComA0Vo cvo = JSON.parseObject(json, ComA0Vo.class) ; if(cvo == null){ - throw new Exception("json杞珻om97Vo涓簄ull") ; + throw new Exception("json杞珻omA0Vo涓簄ull") ; } if(cvo.icCardNo == null){ throw new Exception("铏氭嫙IC鍗$紪鍙蜂笉鑳戒负绌�") ; } - if(cvo.moneyRemain == null){ - throw new Exception("鍓╀綑閲戦涓嶈兘涓虹┖") ; + if(cvo.moneyRemain == null || cvo.moneyRemain == 0.0){ + throw new Exception("鍓╀綑閲戦涓嶈兘涓虹┖鎴栦负0") ; } - if(cvo.waterPrice == null){ - throw new Exception("姘翠环涓嶈兘涓虹┖") ; + if(cvo.waterPrice == null || cvo.waterPrice == 0.0){ + throw new Exception("姘翠环涓嶈兘涓虹┖鎴栦负0") ; } - if(cvo.waterAmount == null){ - throw new Exception("棰勭敤姘撮噺涓嶈兘涓虹┖") ; + if(cvo.waterAmount == null || cvo.waterAmount == 0.0){ + throw new Exception("棰勭敤姘撮噺涓嶈兘涓虹┖鎴栦负0") ; } if(cvo.waterAmount < 0 || cvo.waterAmount > 9999){ throw new Exception("棰勭敤姘撮噺鍙栧�艰寖鍥存槸0~9999m3") ; @@ -101,12 +102,14 @@ //if(icCardNoGrp[0] != null){ // midRs.param = icCardNoGrp[0] ; //} - byte[] bs = new byte[16] ; - index = 0 ; //ByteUtil.string2BCD_LE(bs, icCardNoGrp[1], index) ; + byte[] bs = new byte[8] ; + index = 0 ; GlCreate.createIcCardNo(cvo.icCardNo, bs, 0); + bytes = ByteUtil.bytesMerge(bsHead, bs) ; - index += 5 ; + bs = new byte[4] ; + index = 0 ; Integer money = Double.valueOf(cvo.moneyRemain * 100.0D).intValue() ; byte[] bTemp = ByteUtil.int2BCD_LE(money) ; int bTempLen = bTemp.length ; @@ -121,7 +124,10 @@ for(; count < 4; count++){ bs[index++] = 0 ; } + bytes = ByteUtil.bytesMerge(bytes, bs) ; + bs = new byte[2] ; + index = 0 ; Integer price = Double.valueOf(cvo.waterPrice * 100.0D).intValue() ; bTemp = ByteUtil.int2BCD_LE(price) ; bTempLen = bTemp.length ; @@ -136,8 +142,11 @@ for(; count < 2; count++){ bs[index++] = 0 ; } + bytes = ByteUtil.bytesMerge(bytes, bs) ; + bs = new byte[2] ; + index = 0 ; bTemp = ByteUtil.int2BCD_LE(cvo.waterAmount) ; bTempLen = bTemp.length ; count = 0 ; @@ -151,8 +160,7 @@ for(; count < 2; count++){ bs[index++] = 0 ; } - - bytes = ByteUtil.bytesMerge(bsHead, bs) ; + bytes = ByteUtil.bytesMerge(bytes, bs) ; GlCreate.createLen(bytes);//闀垮害鏀惧瓧鑺傛暟缁勪腑 -- Gitblit v1.8.0