From dec31d5d19346c24412e8b51783455a1f4bec7b1 Mon Sep 17 00:00:00 2001
From: whyclj <1525436766@qq.com>
Date: 星期三, 26 八月 2020 21:29:18 +0800
Subject: [PATCH] 提高读取速度

---
 Motor_MonitorServer/src/com/motor/data/Motor_inf.java |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/Motor_MonitorServer/src/com/motor/data/Motor_inf.java b/Motor_MonitorServer/src/com/motor/data/Motor_inf.java
index 8dd0af8..412e277 100644
--- a/Motor_MonitorServer/src/com/motor/data/Motor_inf.java
+++ b/Motor_MonitorServer/src/com/motor/data/Motor_inf.java
@@ -1,10 +1,16 @@
 package com.motor.data;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 import com.mchange.v1.util.Sublist;
+import com.modbus.data.MyModbusMaster;
+import com.modbus.data.MyModbusUtils;
 import com.motor.alarm.Motor_Alarm;
+import com.serotonin.modbus4j.BatchRead;
+import com.serotonin.modbus4j.BatchResults;
+import com.serotonin.modbus4j.code.DataType;
 
 public class Motor_inf {
 	
@@ -76,4 +82,29 @@
 		return "Motor_inf [motor_id=" + motor_id + ", motor_name=" + motor_name + ", motor_type=" + motor_type
 				+ ", motor_ip=" + motor_ip + ", note=" + note + "]";
 	}
+
+	/**
+	 * 创建读取集合
+	 * @param master
+	 * @return
+	 */
+	public BatchRead<Integer> createBatchRead(MyModbusMaster master) {
+		BatchRead<Integer> batch = new BatchRead<Integer>();
+		for(int i=0;i<this.alarms.size();i++) {
+			batch.addLocator(i,MyModbusUtils.createBaseLocator(12000+i*4, master));											
+		}
+		return batch;
+	}
+	
+	/**
+	 * 解析读取集合
+	 * @param res
+	 */
+	public void putBatchResult(BatchResults<Integer> res) {
+		if(res != null) {
+			for(int i=0;i<this.alarms.size();i++) {
+				alarms.get(i).checkAlarm(MyModbusUtils.readBooleanToInt(res.getValue(i)));
+			}
+		}
+	}
 }

--
Gitblit v1.9.1