pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/mw/protocol/p206V1_0_0/parse/Cd_3A_Down.java
@@ -1,10 +1,14 @@
package com.dy.common.mw.protocol.p206V1_0_0.parse;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.dy.common.mw.protocol.*;
import com.dy.common.mw.protocol.p206V1_0_0.CodeV1_0_1;
import com.dy.common.mw.protocol.p206V1_0_0.CommonV1_0_1;
import com.dy.common.mw.protocol.p206V1_0_0.ParseParamsForDownV1_0_1;
import com.dy.common.mw.protocol.p206V1_0_0.ProtocolConstantV206V1_0_0;
import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com39Vo;
import com.dy.common.mw.protocol.p206V1_0_0.downVos.Com3AVo;
import com.dy.common.mw.protocol.p206V1_0_0.parse.global.GlCreate;
import com.dy.common.util.ByteUtil;
import com.dy.common.util.ByteUtilUnsigned;
@@ -52,6 +56,21 @@
     * @throws Exception 异常
     */
    public byte[] doParse(ParseParamsForDownV1_0_1 para) throws Exception {
        if(para.param == null) {
            throw new Exception("命令参数为null") ;
        }else {
            JSONObject obj = (JSONObject) para.param;
            String json = obj.toJSONString();
            Com3AVo cvo = JSON.parseObject(json, Com3AVo.class);
            if (cvo == null) {
                throw new Exception("json转Com21Vo为null");
            }
            if (cvo.current == null) {
                throw new Exception("阀门堵转电流不能为空");
            }
            if (cvo.current < 0) {
                throw new Exception("阀门堵转电流不能小于0");
            }
        CommonV1_0_1 commonV1_0_1 = new CommonV1_0_1() ;
        byte[] bytes ;
        byte[] bsHead = new byte[ProtocolConstantV206V1_0_0.lenHead2Code] ;
@@ -73,12 +92,9 @@
        ByteUtil.hex2Bytes(para.commandCode, bsHead, index) ;
        if(para.param == null){
            throw new Exception("未提供命令参数数据,不能构造功能码为" + para.commandCode + "的下行命令") ;
        }else{
            index = 0 ;
            byte[] bs = new byte[11] ;
            Double currentDb = ((Double)para.param) * 100 ;
            Double currentDb = cvo.current * 100;
            Integer currentInt = currentDb.intValue() ;
            ByteUtilUnsigned.int2Bytes_LE(bs, currentInt.shortValue(), index);
            index += 3 ;//上面是三byte的数值
@@ -86,7 +102,6 @@
            index += 2 ;
            GlCreate.createTp(bs, index);
            bytes = ByteUtil.bytesMerge(bsHead, bs) ;
        }
        GlCreate.createLen(bytes);//长度放字节数组中
@@ -96,5 +111,6 @@
        return bytes ;
    }
    }
}