All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.relayr.java.model.WunderBar Maven / Gradle / Ivy

package io.relayr.java.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import io.relayr.java.ble.BleDeviceType;
import io.relayr.java.model.account.AccountType;

public class WunderBar implements Serializable {

    public final AccountType type;
    public final Transmitter masterModule;
    public List wbDevices = new ArrayList<>();

    public WunderBar(Transmitter masterModule, TransmitterDevice gyroscope,
                     TransmitterDevice light, TransmitterDevice microphone,
                     TransmitterDevice thermometer, TransmitterDevice infrared,
                     TransmitterDevice bridge) {
        this.type = AccountType.WUNDERBAR_1;
        this.masterModule = masterModule;
        this.wbDevices = Arrays.asList(gyroscope, light, microphone, thermometer, infrared, bridge);
    }

    public WunderBar(Transmitter masterModule, List devices, AccountType type) {
        this.type = type == null ? AccountType.WUNDERBAR_1 : type;
        this.masterModule = masterModule;
        wbDevices.addAll(devices);
    }

    //WB2
    public WunderBar(Transmitter masterModule) {
        this(masterModule, new ArrayList(), AccountType.WUNDERBAR_2);
    }

    public void addDevice(TransmitterDevice device) {
        wbDevices.add(device);
    }

    public static WunderBar from(Transmitter masterModule, List devices) {
        return new WunderBar(masterModule, devices, masterModule.getAccountType());
    }

    public static WunderBar fromDevices(Transmitter masterModule, List devices) {
        List transmitterDevices = new ArrayList<>();
        for (Device device : devices) transmitterDevices.add(device.toTransmitterDevice());

        return new WunderBar(masterModule, transmitterDevices, masterModule.getAccountType());
    }

    public TransmitterDevice getDevice(BleDeviceType type) {
        for (TransmitterDevice device : wbDevices) {
            BleDeviceType bleDeviceType = BleDeviceType.fromModel(device.getModelId());
            if (bleDeviceType == type) return device;
        }

        return null;
    }

    public TransmitterDevice getDevice(String modelId) {
        for (TransmitterDevice device : wbDevices)
            if (device.getModelId().equals(modelId)) return device;

        return null;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy