Jelajahi Sumber

动液面采集:增加电池电压数据采集

chenwen 1 tahun lalu
induk
melakukan
cec64c7308

+ 10 - 0
src/main/java/com/hb/proj/gather/model/LiquidPO.java

@@ -17,6 +17,8 @@ public class LiquidPO {
 	
 	private Double casingPressDev; // 当前套压  kpa--->MPa
 	
+	private Double batteryVoltage; //电池电压 mV--->V
+	
 	private List<Short> liquidDatas; //动液面数据
 	
 	private List<Short> hoopDatas;  //接箍数据
@@ -103,4 +105,12 @@ public class LiquidPO {
 	public List<Short> getHoopDatas() {
 		return hoopDatas;
 	}
+
+	public Double getBatteryVoltage() {
+		return batteryVoltage;
+	}
+
+	public void setBatteryVoltage(Double batteryVoltage) {
+		this.batteryVoltage = batteryVoltage;
+	}
 }

+ 8 - 1
src/main/java/com/hb/proj/gather/protocol/ZLOpdProtCMDEnum.java

@@ -144,7 +144,13 @@ public enum ZLOpdProtCMDEnum {
 			 "liquid",
 			 new String[]{"test_time_yy","test_time_mm","test_time_dd","test_time_hr","test_time_mi","test_time_ss","sound_speed","test_depth","casing_pre"}
 			),
-	
+	//电池电压
+	LIQUID_OTHER_BATTERY(
+			new byte[] {0x01, 0x03, 0x14, 0x5b, 0x00, 0x01,(byte)0xf0,0x29},
+			0x02,
+			"liquid",
+			new String[] {"battery"}
+			),
 	//250-125 动液面曲线数据(1/40)
 	LIQUID_SERIAL_1(
 			 new byte[] {0x01,0x03,0x18,0x10,0x00,0x7d,(byte)0x82,(byte)0x8e}, 
@@ -417,6 +423,7 @@ public enum ZLOpdProtCMDEnum {
 			"liquid",
 			new String[] {"casing_pre"}
 			),
+	
 	LIQUID_SET_AVG_PIPE(
 			new byte[] {0x01, 0x06, 0x14, 0x12},
 			0x02,

+ 36 - 3
src/main/java/com/hb/proj/gather/protocol/parser/DataPieceLiquidBox.java

@@ -26,6 +26,8 @@ public class DataPieceLiquidBox {
 	
 	private Integer casingPress; // 当前套压  kpa
 	
+	private Integer batteryVol;  //电池电压 mV
+	
 	
 	private List<Short>  pieceSerial=new ArrayList<>(10000);  //接箍序列(高字节),动液面序列(低字节) 分别对应奇数位,偶数位
 	
@@ -40,6 +42,31 @@ public class DataPieceLiquidBox {
 	}
 	
 	public void putOther(Map<String,Integer> gatherOther) {
+		
+		if(gatherOther.containsKey("battery")) {
+			bindBatteryVal(gatherOther);
+		}
+		else {
+			bindVal(gatherOther);
+		}
+		//表明是新的采集,先清除旧数据
+		pieceSerial.clear();
+	}
+	
+	
+	/**
+	 * 绑定采集数据:电池电压
+	 * @param gatherOther
+	 */
+	private void bindBatteryVal(Map<String,Integer> gatherOther) {
+		this.batteryVol=gatherOther.get("battery");
+	}
+	
+	/**
+	 * 绑定采集数据:采样时间、音速、测量深度、套压
+	 * @param gatherOther
+	 */
+	private void bindVal(Map<String,Integer> gatherOther) {
 		this.testTime="20"+String.format("%02d", gatherOther.get("test_time_yy"))+
 				"-"+String.format("%02d", gatherOther.get("test_time_mm"))+
 				"-"+String.format("%02d", gatherOther.get("test_time_dd"))+
@@ -50,9 +77,6 @@ public class DataPieceLiquidBox {
 		this.soundSpeed=gatherOther.get("sound_speed");
 		this.testDepth=gatherOther.get("test_depth");
 		this.casingPress=gatherOther.get("casing_pre");
-		
-		//表明是新的采集,先清除旧数据
-		pieceSerial.clear();
 	}
 	
 	//组装liquid,并进行数据转换
@@ -67,6 +91,7 @@ public class DataPieceLiquidBox {
 		po.setLiquidDepthDev(testDepth!=null?(testDepth/10.0):null);
 		po.setCasingPressDev(casingPress!=null?(casingPress/1000.0):null);
 		po.setTestTime(testTime);
+		po.setBatteryVoltage(batteryVol!=null?(batteryVol/1000.0):null);
 		
 		po.setDatas(pieceSerial);
 		
@@ -145,6 +170,14 @@ public class DataPieceLiquidBox {
 		this.pieceSerial = pieceSerial;
 	}
 
+	public Integer getBatteryVo() {
+		return batteryVol;
+	}
+
+	public void setBatteryVo(Integer batteryVol) {
+		this.batteryVol = batteryVol;
+	}
+
 
 	
 

+ 3 - 3
src/main/java/com/hb/proj/gather/rep/GatherDataRepService.java

@@ -122,11 +122,11 @@ public class GatherDataRepService {
 	 */
 	public void save(LiquidPO  liquidPO) {
 		String sql="""
-				insert into tzl_gather_data_liquid(well_id,test_time,liquid_datas,hoop_datas,sound_speed_dev,liquid_depth_dev,casing_press_dev,create_time,del_if) 
-				values(?,?,?,?,?,?,?,now(),false)
+				insert into tzl_gather_data_liquid(well_id,test_time,liquid_datas,hoop_datas,sound_speed_dev,liquid_depth_dev,casing_press_dev,create_time,del_if,battery_voltage) 
+				values(?,?,?,?,?,?,?,now(),false,?)
 				""";
 		dao.exeUpdate(sql, liquidPO.getWellId(),liquidPO.getTestTime(),listNum2Str(liquidPO.getLiquidDatas()),listNum2Str(liquidPO.getHoopDatas()),
-				liquidPO.getSoundSpeedDev(),liquidPO.getLiquidDepthDev(),liquidPO.getCasingPressDev());
+				liquidPO.getSoundSpeedDev(),liquidPO.getLiquidDepthDev(),liquidPO.getCasingPressDev(),liquidPO.getBatteryVoltage());
 	}
 	
 	private <T extends Number> String listNum2Str(List<T> datas) {

+ 2 - 1
src/main/java/com/hb/proj/gather/scheduler/GatherLiquidTask.java

@@ -43,8 +43,9 @@ public class GatherLiquidTask implements Runnable {
 				
 		logger.info("动液面采集开始{}...",serialNum);
 		
-		List<ZLOpdProtCMDEnum> cmds=new ArrayList<>(41);
+		List<ZLOpdProtCMDEnum> cmds=new ArrayList<>(42);
 		cmds.add(ZLOpdProtCMDEnum.LIQUID_OTHER);
+		cmds.add(ZLOpdProtCMDEnum.LIQUID_OTHER_BATTERY);
 		for(int i=1;i<41;i++) {
 			cmds.add(ZLOpdProtCMDEnum.valueOf("LIQUID_SERIAL_"+i));
 		}