|
6 | 6 | import java.util.ArrayList;
|
7 | 7 | import java.util.Collection;
|
8 | 8 | import java.util.HashMap;
|
9 |
| -import java.util.List; |
10 | 9 | import java.util.Map;
|
11 | 10 | import java.util.Optional;
|
12 | 11 |
|
|
16 | 15 | import io.openems.common.types.OpenemsType;
|
17 | 16 | import io.openems.edge.battery.soltaro.common.enums.ChargeIndication;
|
18 | 17 | import io.openems.edge.bridge.modbus.api.AbstractOpenemsModbusComponent;
|
19 |
| -import io.openems.edge.bridge.modbus.api.element.AbstractModbusElement; |
20 | 18 | import io.openems.edge.bridge.modbus.api.element.BitsWordElement;
|
| 19 | +import io.openems.edge.bridge.modbus.api.element.ModbusElement; |
21 | 20 | import io.openems.edge.bridge.modbus.api.element.SignedWordElement;
|
22 | 21 | import io.openems.edge.bridge.modbus.api.element.UnsignedWordElement;
|
23 | 22 | import io.openems.edge.bridge.modbus.api.task.FC3ReadRegistersTask;
|
@@ -253,44 +252,46 @@ protected Collection<Task> getTasks() {
|
253 | 252 |
|
254 | 253 | // Cell voltages
|
255 | 254 | for (var i = 0; i < this.numberOfSlaves; i++) {
|
256 |
| - List<AbstractModbusElement<?>> elements = new ArrayList<>(); |
| 255 | + var elements = new ArrayList<ModbusElement<?>>(); |
257 | 256 | for (var j = i * VOLTAGE_SENSORS_PER_MODULE; j < (i + 1) * VOLTAGE_SENSORS_PER_MODULE; j++) {
|
258 | 257 | var key = this.getSingleCellPrefix(j) + "_" + VOLTAGE;
|
259 | 258 | var uwe = this.getUnsignedWordElement(VOLTAGE_ADDRESS_OFFSET + j);
|
260 |
| - AbstractModbusElement<?> ame = this.parent.map(this.channelIds.get(key), uwe); |
| 259 | + var ame = this.parent.map(this.channelIds.get(key), uwe); |
261 | 260 | elements.add(ame);
|
262 | 261 | }
|
263 | 262 |
|
264 | 263 | // not more than 100 elements per task, because it can cause problems..
|
265 | 264 | var taskCount = elements.size() / maxElementsPerTask + 1;
|
266 | 265 |
|
267 | 266 | for (var x = 0; x < taskCount; x++) {
|
268 |
| - var subElements = elements.subList(x * maxElementsPerTask, |
269 |
| - Math.min((x + 1) * maxElementsPerTask, elements.size())); |
270 |
| - var taskElements = subElements.toArray(new AbstractModbusElement<?>[0]); |
| 267 | + var taskElements = elements |
| 268 | + .subList(x * maxElementsPerTask, Math.min((x + 1) * maxElementsPerTask, elements.size())) // |
| 269 | + .stream() // |
| 270 | + .toArray(ModbusElement[]::new); |
271 | 271 | tasks.add(new FC3ReadRegistersTask(taskElements[0].getStartAddress(), Priority.LOW, taskElements));
|
272 | 272 | }
|
273 | 273 |
|
274 | 274 | }
|
275 | 275 |
|
276 | 276 | // Cell temperatures
|
277 | 277 | for (var i = 0; i < this.numberOfSlaves; i++) {
|
278 |
| - List<AbstractModbusElement<?>> elements = new ArrayList<>(); |
| 278 | + var elements = new ArrayList<ModbusElement<?>>(); |
279 | 279 | for (var j = i * TEMPERATURE_SENSORS_PER_MODULE; j < (i + 1) * TEMPERATURE_SENSORS_PER_MODULE; j++) {
|
280 | 280 | var key = this.getSingleCellPrefix(j) + "_" + TEMPERATURE;
|
281 | 281 |
|
282 | 282 | var swe = this.getSignedWordElement(TEMPERATURE_ADDRESS_OFFSET + j);
|
283 |
| - AbstractModbusElement<?> ame = this.parent.map(this.channelIds.get(key), swe); |
| 283 | + var ame = this.parent.map(this.channelIds.get(key), swe); |
284 | 284 | elements.add(ame);
|
285 | 285 | }
|
286 | 286 |
|
287 | 287 | // not more than 100 elements per task, because it can cause problems..
|
288 | 288 | var taskCount = elements.size() / maxElementsPerTask + 1;
|
289 | 289 |
|
290 | 290 | for (var x = 0; x < taskCount; x++) {
|
291 |
| - var subElements = elements.subList(x * maxElementsPerTask, |
292 |
| - Math.min((x + 1) * maxElementsPerTask, elements.size())); |
293 |
| - var taskElements = subElements.toArray(new AbstractModbusElement<?>[0]); |
| 291 | + var taskElements = elements |
| 292 | + .subList(x * maxElementsPerTask, Math.min((x + 1) * maxElementsPerTask, elements.size())) // |
| 293 | + .stream() // |
| 294 | + .toArray(ModbusElement[]::new); |
294 | 295 | tasks.add(new FC3ReadRegistersTask(taskElements[0].getStartAddress(), Priority.LOW, taskElements));
|
295 | 296 | }
|
296 | 297 | }
|
|
0 commit comments