| | |
| | | DataCdC0Vo cdData = new DataCdC0Vo() ; |
| | | dV1.subData = cdData ; |
| | | |
| | | boolean hasWaterAmount = false ;//是否有流量数据 |
| | | boolean hasWaterPress = false ;//是否有水压数据 |
| | | boolean hasEleVolt = false ;//是否有电压数据 |
| | | boolean hasSignal = false ;//是否有信号强度数据 |
| | | boolean hasAlarmStatus = false ;//是否有数据 |
| | | boolean hasWaterAmount = true ;//是否有流量数据 |
| | | boolean hasWaterPress = true ;//是否有水压数据 |
| | | boolean hasEleVolt = true ;//是否有电压数据 |
| | | boolean hasSignal = true ;//是否有信号强度数据 |
| | | boolean hasAlarmStatus = true ;//是否有数据 |
| | | |
| | | short index = ProtocolConstantV206V1_0_0.dataIndex ; |
| | | |
| | | byte tmpBt1 = bs[index] ; |
| | | index++ ; |
| | | /* RTU实现一定有流量数据 |
| | | if(((tmpBt1 & 4) >> 2) == 1){ |
| | | hasWaterAmount = true ; |
| | | } |
| | | |
| | | */ |
| | | byte tmpBt2 = bs[index] ; |
| | | index++ ; |
| | | /*RTU实现一定有下面各项数据 |
| | | if(((tmpBt2 & 0x10) >> 4) == 1){ |
| | | hasAlarmStatus = true ; |
| | | } |
| | |
| | | if(((tmpBt2 & 0x80) >> 7) == 1){ |
| | | hasSignal = true ; |
| | | } |
| | | |
| | | */ |
| | | if(hasWaterAmount){ |
| | | //瞬时流量:5字节BCD码,取值范围0~9999999.999,单位为m3/h。 |
| | | cdData.instantAmount = 0.0D ; |
| | |
| | | cdData.waterPress += tpInt * 10000.0 ; |
| | | } |
| | | if(hasEleVolt){ |
| | | //电池电压:4字节BCD码,取值范围0~99.99,单位为V。 |
| | | //电池电压:2字节BCD码,取值范围0~99.99,单位为V。 |
| | | cdData.batteryVolt = 0.0D ;//蓄电池电压 |
| | | cdData.sunVolt = 0.0D ;//太阳能电压 |
| | | int tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; |
| | |
| | | cdData.stateVo = GlParse.parseState(bs, index) ; |
| | | index += 2 ; |
| | | } |
| | | |
| | | //水价:2字节BCD码,取值范围0~99.99,单位为元。 |
| | | cdData.waterPrice = 0.0D ;//水价 |
| | | int tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; |
| | | index++ ; |
| | | cdData.waterPrice += tpInt/100.0 ; |
| | | tpInt = ByteUtil.BCD2Int_LE(bs, index, index) ; |
| | | index++ ; |
| | | cdData.waterPrice += tpInt; |
| | | |
| | | cdData.rtuDt = GlParse.parseTp(bs, index) ; |
| | | |
| | | } |