From 6b1b6b46fad3c7357706670994e1a23620d6c5c3 Mon Sep 17 00:00:00 2001
From: whyclj <1525436766@qq.com>
Date: 星期六, 05 十二月 2020 16:58:49 +0800
Subject: [PATCH] 添加数据读取

---
 Central_Monitor/src/com/data/Central_ST_Data.java |   61 ++++++++++++++++++++++++++++++
 1 files changed, 60 insertions(+), 1 deletions(-)

diff --git a/Central_Monitor/src/com/data/Central_ST_Data.java b/Central_Monitor/src/com/data/Central_ST_Data.java
index e8be985..d9d58f5 100644
--- a/Central_Monitor/src/com/data/Central_ST_Data.java
+++ b/Central_Monitor/src/com/data/Central_ST_Data.java
@@ -2,10 +2,17 @@
 
 import java.util.Date;
 
+import com.modbus.data.MyModbusMaster;
+import com.modbus.data.MyModbusUtils;
+import com.serotonin.modbus4j.BatchRead;
+import com.serotonin.modbus4j.BatchResults;
+import com.serotonin.modbus4j.code.DataType;
+
 public class Central_ST_Data {
 	
 	private int dev_id;    						//'设备id',
 	private Date record_time;    				//'更新时间',
+	
 	private int switch_close_1st_2500A;    		//'1号2500A进线屏开关合闸状态',
 	private int switch_open_1st_2500A;    		//'1号2500A进线屏开关分闸状态',
 	private int switch_fault_1st_2500A;    		//'1号2500A进线屏开关故障状态',
@@ -26,6 +33,59 @@
 	private float curr_b;    					//'B排电流',
 	private float vol_b;    					//'B排电压',
 	private String note;    					//'备用',
+	
+	public BatchRead<Integer> createBatchRead(MyModbusMaster master) {
+		BatchRead<Integer> batch = new BatchRead<Integer>();		
+		batch.addLocator(0,MyModbusUtils.createInputLocator(1,master));		//'1号2500A进线屏开关合闸状态',
+		batch.addLocator(1,MyModbusUtils.createInputLocator(2,master));		//'1号2500A进线屏开关分闸状态'
+		batch.addLocator(2,MyModbusUtils.createInputLocator(3, master));	//'1号2500A进线屏开关故障状态',
+		batch.addLocator(3,MyModbusUtils.createInputLocator(4,master));		//'2号2500A进线屏开关合闸状态',							
+		batch.addLocator(4,MyModbusUtils.createInputLocator(5,master));		//'2号2500A进线屏开关分闸状态',								
+		batch.addLocator(5,MyModbusUtils.createInputLocator(6,master));		//'2号2500A进线屏开关故障状态',			
+		batch.addLocator(6,MyModbusUtils.createInputLocator(7,master));		//'母联屏合闸状态',					
+		batch.addLocator(7,MyModbusUtils.createInputLocator(8, master));	//'母联屏分闸状态',							
+		batch.addLocator(8,MyModbusUtils.createInputLocator(9, master));	//'母联屏开关故障',						
+		batch.addLocator(9,MyModbusUtils.createInputLocator(10,master));	//'1号2500A负载屏开关合闸状态',									
+		batch.addLocator(10,MyModbusUtils.createInputLocator(11,master));	//'1号2500A负载屏开关分闸状态',
+		batch.addLocator(11,MyModbusUtils.createInputLocator(12,master));	//'1号2500A负载屏开关故障状态',
+		batch.addLocator(12,MyModbusUtils.createInputLocator(13,master));	//'2号2500A负载屏开关合闸状态',
+		batch.addLocator(13,MyModbusUtils.createInputLocator(14,master));	//'2号2500A负载屏开关分闸状态',
+		batch.addLocator(14,MyModbusUtils.createInputLocator(15,master));	//'2号2500A负载屏开关故障状态',
+		
+		
+		batch.addLocator(15,MyModbusUtils.createBaseLocator(1,DataType.TWO_BYTE_INT_SIGNED,master));	//'A排电流',
+		batch.addLocator(16,MyModbusUtils.createBaseLocator(2,DataType.TWO_BYTE_INT_SIGNED,master));	//'A排电压',
+		batch.addLocator(17,MyModbusUtils.createBaseLocator(3,DataType.TWO_BYTE_INT_SIGNED,master));	//'B排电流',
+		batch.addLocator(18,MyModbusUtils.createBaseLocator(4,DataType.TWO_BYTE_INT_SIGNED,master));	//'B排电压',
+		
+		return batch;
+	}
+	
+	public void putBatchResult(BatchResults<Integer> res) {
+		if(null != res) {
+			switch_close_1st_2500A = (int) res.getValue(0);    		//'1号2500A进线屏开关合闸状态',
+			switch_open_1st_2500A = (int) res.getValue(1);    		//'1号2500A进线屏开关分闸状态',
+			switch_fault_1st_2500A = (int) res.getValue(2);    		//'1号2500A进线屏开关故障状态',
+			switch_close_2st_2500A = (int) res.getValue(3);    		//'2号2500A进线屏开关合闸状态',
+			switch_open_2st_2500A = (int) res.getValue(4);    		//'2号2500A进线屏开关分闸状态',
+			switch_fault_2st_2500A = (int) res.getValue(5);    		//'2号2500A进线屏开关故障状态',
+			switch_close_bus_screen = (int) res.getValue(6);    	//'母联屏合闸状态',
+			switch_open_bus_screen = (int) res.getValue(7);    		//'母联屏分闸状态',
+			switch_fault_bus_screen = (int) res.getValue(8);    	//'母联屏开关故障',
+			switch_close_1st_2500A_load = (int) res.getValue(9);    //'1号2500A负载屏开关合闸状态',
+			switch_open_1st_2500A_load = (int) res.getValue(10);    	//'1号2500A负载屏开关分闸状态',
+			switch_fault_1st_2500A_load = (int) res.getValue(11);    //'1号2500A负载屏开关故障状态',
+			switch_close_2st_2500A_load = (int) res.getValue(12);    //'2号2500A负载屏开关合闸状态',
+			switch_open_2st_2500A_load = (int) res.getValue(13);    	//'2号2500A负载屏开关分闸状态',
+			switch_fault_2st_2500A_load = (int) res.getValue(14);    //'2号2500A负载屏开关故障状态',
+			curr_a = (float)res.getValue(15);   					//'A排电流',
+			vol_a = (float)res.getValue(16);    					//'A排电压',
+			curr_b = (float)res.getValue(17);    					//'B排电流',
+			vol_b = (float)res.getValue(18);    					//'B排电压',
+		}
+		
+	}
+	
 	
 	public Central_ST_Data() {
 		
@@ -183,5 +243,4 @@
 				+ ", switch_fault_2st_2500A_load=" + switch_fault_2st_2500A_load + ", curr_a=" + curr_a + ", vol_a="
 				+ vol_a + ", curr_b=" + curr_b + ", vol_b=" + vol_b + ", note=" + note + "]";
 	}
-	
 }

--
Gitblit v1.9.1