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