2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.modbus.e3dc.internal.dto;
15 import static org.openhab.binding.modbus.e3dc.internal.modbus.E3DCModbusConstans.*;
17 import java.util.BitSet;
19 import org.eclipse.jdt.annotation.NonNullByDefault;
20 import org.openhab.binding.modbus.e3dc.internal.modbus.Data;
21 import org.openhab.core.library.types.OnOffType;
24 * The {@link WallboxBlock} Data object for E3DC Info Block
26 * @author Bernd Weymann - Initial contribution
29 public class WallboxBlock implements Data {
30 private BitSet bitSet;
31 public OnOffType wbAvailable = OnOffType.OFF;
32 public OnOffType wbSunmode = OnOffType.OFF;
33 public OnOffType wbChargingAborted = OnOffType.OFF;
34 public OnOffType wbCharging = OnOffType.OFF;
35 public OnOffType wbJackLocked = OnOffType.OFF;
36 public OnOffType wbJackPlugged = OnOffType.OFF;
37 public OnOffType wbSchukoOn = OnOffType.OFF;
38 public OnOffType wbSchukoPlugged = OnOffType.OFF;
39 public OnOffType wbSchukoLocked = OnOffType.OFF;
40 public OnOffType wbSchukoRelay16 = OnOffType.OFF;
41 public OnOffType wbRelay16 = OnOffType.OFF;
42 public OnOffType wbRelay32 = OnOffType.OFF;
43 public OnOffType wb1phase = OnOffType.OFF;
46 * For decoding see Modbus Register Mapping Chapter 3.1.2 page 15
47 * The Registers for Wallbox Control are declared as uint16 but shall be handled as Bit registers => see chapter
50 * @param bArray - one Modbus Registers according to Wallbox ID
52 public WallboxBlock(byte[] bArray) {
53 bitSet = BitSet.valueOf(bArray);
54 wbAvailable = OnOffType.from(bitSet.get(WB_AVAILABLE_BIT));
55 wbSunmode = OnOffType.from(bitSet.get(WB_SUNMODE_BIT));
56 wbChargingAborted = OnOffType.from(bitSet.get(WB_CHARGING_ABORTED_BIT));
57 wbCharging = OnOffType.from(bitSet.get(WB_CHARGING_BIT));
58 wbJackLocked = OnOffType.from(bitSet.get(WB_JACK_LOCKED_BIT));
59 wbJackPlugged = OnOffType.from(bitSet.get(WB_JACK_PLUGGED_BIT));
60 wbSchukoOn = OnOffType.from(bitSet.get(WB_SCHUKO_ON_BIT));
61 wbSchukoPlugged = OnOffType.from(bitSet.get(WB_SCHUKO_PLUGGED_BIT));
62 wbSchukoLocked = OnOffType.from(bitSet.get(WB_SCHUKO_LOCKED_BIT));
63 wbSchukoRelay16 = OnOffType.from(bitSet.get(WB_SCHUKO_RELAY16A_BIT));
64 wbRelay16 = OnOffType.from(bitSet.get(WB_RELAY_16A_BIT));
65 wbRelay32 = OnOffType.from(bitSet.get(WB_RELAY_32A_BIT));
66 wb1phase = OnOffType.from(bitSet.get(WB_1PHASE_BIT));
69 public BitSet getBitSet() {