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_RT_Data.java |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/Central_Monitor/src/com/data/Central_RT_Data.java b/Central_Monitor/src/com/data/Central_RT_Data.java
index 2745c2c..747139d 100644
--- a/Central_Monitor/src/com/data/Central_RT_Data.java
+++ b/Central_Monitor/src/com/data/Central_RT_Data.java
@@ -2,17 +2,55 @@
 
 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_RT_Data {
 	
 	private int dev_id;    		 // '设备id',
 	private Date record_time;    //'更新时间',
+	
 	private int switch_close;    // '开关合闸状态',
 	private int switch_open;     // '开关分闸状态',
 	private int switch_fault;    // '开关故障状态',
 	private float panel_vol ;    // '进线屏电压',
 	private float panel_curr ;   // '进线屏电流',
+	
 	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.createBaseLocator(1,DataType.TWO_BYTE_INT_SIGNED,master));	//'A排电流',
+		if(10001 == dev_id) {			
+			batch.addLocator(4,MyModbusUtils.createBaseLocator(2,DataType.TWO_BYTE_INT_SIGNED,master));	//'A排电压',
+		}
+
+		
+		return batch;
+	}
+
+	public void putBatchResult(BatchResults<Integer> res) {
+		if(null != res) {
+			switch_close = (int)res.getValue(0);    // '开关合闸状态',
+			switch_open = (int)res.getValue(1);     // '开关分闸状态',
+			switch_fault = (int)res.getValue(2);    // '开关故障状态',
+			if(10001 == dev_id) {
+				panel_vol  = (int)res.getValue(3);    // '进线屏电压',
+				panel_curr = (int)res.getValue(4) ;   // '进线屏电流',
+			}else {
+				panel_curr = (int)res.getValue(3) ;   // '进线屏电流',
+			}
+		}
+	}
+	
+	
 	public Central_RT_Data() {
 		
 	}

--
Gitblit v1.9.1