1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- package eu.tankernn.grid.model;
- import java.util.Arrays;
- import java.util.stream.IntStream;
- import java.util.stream.Stream;
- import eu.tankernn.grid.Fan;
- public class GRID {
- private Communicator communicator;
- private Fan[] fans;
-
- public GRID() {
- fans = IntStream.range(0, 5).mapToObj(i -> new Fan(this, i)).toArray(Fan[]::new);
- communicator = new Communicator();
- communicator.searchForPorts();
- }
-
- public void disconnect() {
- getCommunicator().disconnect();
- }
- public Fan getFan(int index) {
- return fans[index];
- }
- public Communicator getCommunicator() {
- return communicator;
- }
- public double getTotalWattage() {
- return Arrays.stream(fans).mapToDouble(Fan::getWattage).sum();
- }
- public void pollFans() {
- fanStream().forEach(Fan::poll);
- }
- public void updateFanSpeeds(double temp) {
- fanStream().forEach(f -> f.update(temp));
- }
- public Stream<Fan> fanStream() {
- return Arrays.stream(fans);
- }
- }
|