wuzeyu
2024-05-06 cd45cee236780a8e02244d8d8a916088ca002d3d
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_83_Up.java
@@ -40,9 +40,10 @@
        midRs.reportOrResponse_trueOrFalse = true ;//主动上报
        String confirmComCode = CodeV1_0_1.cd_C0 ;
        String confirmComCode = para.upCode ;
        ParseParamsForDownV1_0_1 downCpParams  = new ParseParamsForDownV1_0_1() ;
        downCpParams.setValue(
                null,
                ProtocolConstantV206V1_0_0.protocolName,
                para.rtuAddr,
                Command.defaultId,
@@ -61,8 +62,13 @@
        confirmCommand.downBufHex = ByteUtil.bytes2Hex(data, true) ;//下行命令数据十六进制形式
        confirmCommand.hasResponse = false ;//是否有应答
        confirmCommand.maxSendTimes = 1 ;//命令最大发送次数(当收不到应答时,将重发2次),如果不设置,命令缓存器进行补充设置
        confirmCommand.isSendFirst = true ;//确认命令,优先发送
        confirmCommand.isCachForOffLine = false ;//RTU不在线,命令是否缓存
        confirmCommand.isSendFirst = true ;//确认命令,优先发送
        if(isLowPower != null && isLowPower.booleanValue()){
            //低功耗时,尽快发送
            confirmCommand.isQuickSend = true ;
        }
        callback.callback(midRs.reportOrResponse_trueOrFalse);
        return new MidResult[]{midRs, confirmCommand} ;
@@ -76,7 +82,6 @@
     * @throws Exception 异常
     */
    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
        short index = ProtocolConstantV206V1_0_0.dataIndex ;
        byte opType = bs[ProtocolConstantV206V1_0_0.dataIndex];
        if(opType == 1 || opType == 3 || opType == 8){
            this.doParseOpen(opType, bs, bsLen, dataCode, data);
@@ -87,7 +92,7 @@
    private void doParseOpen(byte opType, byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
        DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ;
        DataCd83OpenVo cdData = new DataCd83OpenVo() ;
        dV1.dataCd83OpenVo = cdData ;
        dV1.subData = cdData ;
        cdData.type = opType ;
@@ -111,11 +116,11 @@
        cdData.totalAmount += tpInt * 100000000.0 ;
        //用水户号数据格式:5字节BCD码低位在前高位在后。
        cdData.clientNum = ByteUtil.BCD2String_LE(bs, index, index + 4) ;
        cdData.icCardNo = ByteUtil.BCD2String_LE(bs, index, index + 4) ;
        index += 5 ;
        //IC卡号格式:4字节HEX码低位在前高位在后。
        cdData.clientNum = ByteUtil.bytesToHex(bs, index, index + 3) ;
        cdData.icCardNo = ByteUtil.bytesToHex(bs, index, index + 3) ;
        index += 4 ;
        //用水户余额:用户余额4字节BCD码,取值范围0.00~999999.99,单位为元。
@@ -145,7 +150,7 @@
    private void doParseClose(byte opType, byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
        DataV1_0_1 dV1 = (DataV1_0_1)data.getSubData() ;
        DataCd83CloseVo cdData = new DataCd83CloseVo() ;
        dV1.dataCd83CloseVo = cdData ;
        dV1.subData = cdData ;
        cdData.type = opType ;
@@ -169,11 +174,11 @@
        cdData.totalAmount += tpInt * 100000000.0 ;
        //用水户号数据格式:5字节BCD码低位在前高位在后。
        cdData.clientNum = ByteUtil.BCD2String_LE(bs, index, index + 4) ;
        cdData.icCardNo = ByteUtil.BCD2String_LE(bs, index, index + 4) ;
        index += 5 ;
        //IC卡号格式:4字节HEX码低位在前高位在后。
        cdData.clientNum = ByteUtil.bytesToHex(bs, index, index + 3) ;
        cdData.icCardNo = ByteUtil.bytesToHex(bs, index, index + 3) ;
        index += 4 ;
        //用水户余额:用户余额4字节BCD码,取值范围0.00~999999.99,单位为元。
@@ -203,7 +208,10 @@
        cdData.thisAmount = 0.0D ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.thisAmount += tpInt;
        cdData.thisAmount += tpInt/100.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.thisAmount += tpInt ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.thisAmount += tpInt * 100.0 ;
@@ -213,9 +221,6 @@
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.thisAmount += tpInt * 1000000.0 ;
        tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ;
        index++ ;
        cdData.thisAmount += tpInt * 100000000.0 ;
        //用水户本次消费金额:用户余额4字节BCD码,取值范围0.00~999999.99,单位为元。
        cdData.thisMoney = 0.0D ;