zhubaomin
4 天以前 c2976b80e8850be2d28dc2132c6659856b871f3c
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V202404/parse/Cd_84_Up.java
@@ -24,7 +24,7 @@
    @Override
    public MidResult[] parse(Boolean isLowPower, CodeParseParams params, CodeParseCallback callback)throws Exception {
        ParseParamsForUpV202404 para = (ParseParamsForUpV202404)params ;
        int bsLen = new CommonV202404().parseDataLen(para.upBuffer) ;
        int bsLen = new CommonV202404().parseDataLen4P202404(para.upBuffer) ;
        if(bsLen > 0){
            this.doParse(para.upBuffer,
                    bsLen,
@@ -75,12 +75,12 @@
            //低功耗时,尽快发送
            confirmCommand.isQuickSend = true ;
        }
        callback.callback(midRs.reportOrResponse_trueOrFalse);
        callback.callback(midRs.reportOrResponse_trueOrFalse, para.data.subData==null?null:((DataV202404)(para.data.subData)).subData);
        if(para.data != null && ((DataV202404)para.data.getSubData()).subData != null){
            callback.notify(new ValveStateInfo(true));
        }
        return new MidResult[]{midRs, confirmCommand} ;
        return new MidResult[]{confirmCommand, midRs} ;
    }
    /**
     * 执行分析
@@ -91,9 +91,9 @@
     * @throws Exception 异常
     */
    protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception {
        DataV202404 dV1 = (DataV202404)data.getSubData() ;
        DataV202404 dV202404 = (DataV202404)data.getSubData() ;
        DataCd84Vo cdData = new DataCd84Vo(CodeV202404.getCodeName(dataCode)) ;
        dV1.subData = cdData ;
        dV202404.subData = cdData ;
        int index = ProtocolConstantV206V202404.dataIndex ;
        cdData.controllerType = ByteUtil.bytes2Hex(bs, false, index, 1) ;
@@ -102,7 +102,10 @@
        index ++ ;//水泵/阀   0xf0:阀门 0x00:水泵
        index ++ ;//当前用水方式   1个HEX 0x00:正常刷卡开泵/阀用水
        index ++ ;//当前用水方式
        cdData.opType = bs[index];
        //进行兼容转换
        cdData.opType = CommonV202404.openType2P206V1(cdData.opType) ;
        index++ ;
        cdData.icCardAddr = ByteUtil.bytes2Hex(bs, false, index, 4) ;
@@ -123,7 +126,7 @@
        cdData.eleTotalAmount = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
        index += 5 ;
        cdData.moneyRemainUser = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
        cdData.moneyRemainUser = ByteUtil.BCD2Long_LE(bs, index, index + 4)/10000.0D ;//2025-02-24,剩余金额改为4位小数
        index += 5 ;
        cdData.waterRemainUser = ByteUtil.BCD2Long_LE(bs, index, index + 4)/100.0D ;
@@ -131,6 +134,10 @@
        index += 5 ;
        GlParse.parseAlarmAndState(bs, index, cdData) ;//四个字节
        index += 4 ;
        cdData.price = ByteUtil.BCD2Int_LE(bs, index, index + 1)/100.0 ;
    }
}