|  |  |  | 
|---|
|  |  |  | * @throws Exception 异常 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | protected void doParse(byte[] bs, int bsLen, String dataCode, Data data) throws Exception { | 
|---|
|  |  |  | byte opType = bs[ProtocolConstantV206V1_0_0.dataIndex]; | 
|---|
|  |  |  | byte opType = (byte)ByteUtil.BCD2Int_LE(bs[ProtocolConstantV206V1_0_0.dataIndex]) ; | 
|---|
|  |  |  | Boolean isCloseType = CommonV1_0_1.isCloseValveType(opType) ; | 
|---|
|  |  |  | if(isCloseType != null && isCloseType.booleanValue()){ | 
|---|
|  |  |  | this.doParseClose(opType, bs, bsLen, dataCode, data); | 
|---|
|  |  |  | }else if(isCloseType != null && !isCloseType.booleanValue()){ | 
|---|
|  |  |  | this.doParseOpen(opType, bs, bsLen, dataCode, data); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | throw new Exception("开关阀类型[" + ByteUtil.bytes2Hex(new byte[]{opType}, false) + "(hex)]不可识别" ) ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | private void doParseOpen(byte opType, byte[] bs, int bsLen, String dataCode, Data data) throws Exception { | 
|---|
|  |  |  | 
|---|
|  |  |  | cdData.openDt = GlParse.parseTp(bs, index) ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | index += 6 ; | 
|---|
|  |  |  | /* 开阀时,此部分没有 | 
|---|
|  |  |  | cdData.priceType = bs[index] ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | index++ ; | 
|---|
|  |  |  | cdData.price = 0.0D ; | 
|---|
|  |  |  | tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; | 
|---|
|  |  |  | index++ ; | 
|---|
|  |  |  | cdData.price += tpInt/100.0 ; | 
|---|
|  |  |  | tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; | 
|---|
|  |  |  | index++ ; | 
|---|
|  |  |  | cdData.price += tpInt; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | cdData.cardType = bs[index] ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | index++ ; | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | //控制器时钟 | 
|---|
|  |  |  | cdData.rtuDt = GlParse.parseTp(bs, index) ; | 
|---|
|  |  |  | //index += 6 ; | 
|---|