]> git.basschouten.com Git - openhab-addons.git/blob
d9f6a452be222ffd057864ada00240b1567e5eea
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
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
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.modbus.e3dc.internal.dto;
14
15 import static org.openhab.binding.modbus.e3dc.internal.modbus.E3DCModbusConstans.*;
16
17 import java.util.BitSet;
18
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;
22
23 /**
24  * The {@link WallboxBlock} Data object for E3DC Info Block
25  *
26  * @author Bernd Weymann - Initial contribution
27  */
28 @NonNullByDefault
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;
44
45     /**
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
48      * 3.1.5 page 19
49      *
50      * @param bArray - one Modbus Registers according to Wallbox ID
51      */
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));
67     }
68
69     public BitSet getBitSet() {
70         return bitSet;
71     }
72 }