2 * Copyright (c) 2010-2022 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.rotel.internal;
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16 import org.openhab.core.thing.ThingTypeUID;
19 * The {@link RotelBindingConstants} class defines common constants, which are
20 * used across the whole binding.
22 * @author Laurent Garnier - Initial contribution
25 public class RotelBindingConstants {
27 private static final String BINDING_ID = "rotel";
29 // List of all Thing Type IDs
30 public static final String THING_TYPE_ID_RSP1066 = "rsp1066";
31 public static final String THING_TYPE_ID_RSP1068 = "rsp1068";
32 public static final String THING_TYPE_ID_RSP1069 = "rsp1069";
33 public static final String THING_TYPE_ID_RSP1098 = "rsp1098";
34 public static final String THING_TYPE_ID_RSP1570 = "rsp1570";
35 public static final String THING_TYPE_ID_RSP1572 = "rsp1572";
36 public static final String THING_TYPE_ID_RSX1055 = "rsx1055";
37 public static final String THING_TYPE_ID_RSX1056 = "rsx1056";
38 public static final String THING_TYPE_ID_RSX1057 = "rsx1057";
39 public static final String THING_TYPE_ID_RSX1058 = "rsx1058";
40 public static final String THING_TYPE_ID_RSX1065 = "rsx1065";
41 public static final String THING_TYPE_ID_RSX1067 = "rsx1067";
42 public static final String THING_TYPE_ID_RSX1550 = "rsx1550";
43 public static final String THING_TYPE_ID_RSX1560 = "rsx1560";
44 public static final String THING_TYPE_ID_RSX1562 = "rsx1562";
45 public static final String THING_TYPE_ID_A11 = "a11";
46 public static final String THING_TYPE_ID_A12 = "a12";
47 public static final String THING_TYPE_ID_A14 = "a14";
48 public static final String THING_TYPE_ID_CD11 = "cd11";
49 public static final String THING_TYPE_ID_CD14 = "cd14";
50 public static final String THING_TYPE_ID_RA11 = "ra11";
51 public static final String THING_TYPE_ID_RA12 = "ra12";
52 public static final String THING_TYPE_ID_RA1570 = "ra1570";
53 public static final String THING_TYPE_ID_RA1572 = "ra1572";
54 public static final String THING_TYPE_ID_RA1592 = "ra1592";
55 public static final String THING_TYPE_ID_RAP1580 = "rap1580";
56 public static final String THING_TYPE_ID_RC1570 = "rc1570";
57 public static final String THING_TYPE_ID_RC1572 = "rc1572";
58 public static final String THING_TYPE_ID_RC1590 = "rc1590";
59 public static final String THING_TYPE_ID_RCD1570 = "rcd1570";
60 public static final String THING_TYPE_ID_RCD1572 = "rcd1572";
61 public static final String THING_TYPE_ID_RCX1500 = "rcx1500";
62 public static final String THING_TYPE_ID_RDD1580 = "rdd1580";
63 public static final String THING_TYPE_ID_RDG1520 = "rdg1520";
64 public static final String THING_TYPE_ID_RSP1576 = "rsp1576";
65 public static final String THING_TYPE_ID_RSP1582 = "rsp1582";
66 public static final String THING_TYPE_ID_RT09 = "rt09";
67 public static final String THING_TYPE_ID_RT11 = "rt11";
68 public static final String THING_TYPE_ID_RT1570 = "rt1570";
69 public static final String THING_TYPE_ID_T11 = "t11";
70 public static final String THING_TYPE_ID_T14 = "t14";
71 public static final String THING_TYPE_ID_P5 = "p5";
72 public static final String THING_TYPE_ID_X3 = "x3";
73 public static final String THING_TYPE_ID_X5 = "x5";
75 // List of all Thing Type UIDs
76 public static final ThingTypeUID THING_TYPE_RSP1066 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1066);
77 public static final ThingTypeUID THING_TYPE_RSP1068 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1068);
78 public static final ThingTypeUID THING_TYPE_RSP1069 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1069);
79 public static final ThingTypeUID THING_TYPE_RSP1098 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1098);
80 public static final ThingTypeUID THING_TYPE_RSP1570 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1570);
81 public static final ThingTypeUID THING_TYPE_RSP1572 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1572);
82 public static final ThingTypeUID THING_TYPE_RSX1055 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1055);
83 public static final ThingTypeUID THING_TYPE_RSX1056 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1056);
84 public static final ThingTypeUID THING_TYPE_RSX1057 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1057);
85 public static final ThingTypeUID THING_TYPE_RSX1058 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1058);
86 public static final ThingTypeUID THING_TYPE_RSX1065 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1065);
87 public static final ThingTypeUID THING_TYPE_RSX1067 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1067);
88 public static final ThingTypeUID THING_TYPE_RSX1550 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1550);
89 public static final ThingTypeUID THING_TYPE_RSX1560 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1560);
90 public static final ThingTypeUID THING_TYPE_RSX1562 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1562);
91 public static final ThingTypeUID THING_TYPE_A11 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_A11);
92 public static final ThingTypeUID THING_TYPE_A12 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_A12);
93 public static final ThingTypeUID THING_TYPE_A14 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_A14);
94 public static final ThingTypeUID THING_TYPE_CD11 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_CD11);
95 public static final ThingTypeUID THING_TYPE_CD14 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_CD14);
96 public static final ThingTypeUID THING_TYPE_RA11 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RA11);
97 public static final ThingTypeUID THING_TYPE_RA12 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RA12);
98 public static final ThingTypeUID THING_TYPE_RA1570 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RA1570);
99 public static final ThingTypeUID THING_TYPE_RA1572 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RA1572);
100 public static final ThingTypeUID THING_TYPE_RA1592 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RA1592);
101 public static final ThingTypeUID THING_TYPE_RAP1580 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RAP1580);
102 public static final ThingTypeUID THING_TYPE_RC1570 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RC1570);
103 public static final ThingTypeUID THING_TYPE_RC1572 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RC1572);
104 public static final ThingTypeUID THING_TYPE_RC1590 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RC1590);
105 public static final ThingTypeUID THING_TYPE_RCD1570 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RCD1570);
106 public static final ThingTypeUID THING_TYPE_RCD1572 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RCD1572);
107 public static final ThingTypeUID THING_TYPE_RCX1500 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RCX1500);
108 public static final ThingTypeUID THING_TYPE_RDD1580 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RDD1580);
109 public static final ThingTypeUID THING_TYPE_RDG1520 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RDG1520);
110 public static final ThingTypeUID THING_TYPE_RSP1576 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1576);
111 public static final ThingTypeUID THING_TYPE_RSP1582 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1582);
112 public static final ThingTypeUID THING_TYPE_RT09 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RT09);
113 public static final ThingTypeUID THING_TYPE_RT11 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RT11);
114 public static final ThingTypeUID THING_TYPE_RT1570 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RT1570);
115 public static final ThingTypeUID THING_TYPE_T11 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_T11);
116 public static final ThingTypeUID THING_TYPE_T14 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_T14);
117 public static final ThingTypeUID THING_TYPE_P5 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_P5);
118 public static final ThingTypeUID THING_TYPE_X3 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_X3);
119 public static final ThingTypeUID THING_TYPE_X5 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_X5);
121 // List of all Channel ids
122 public static final String CHANNEL_POWER = "power";
123 public static final String CHANNEL_MAIN_POWER = "mainZone#power";
124 public static final String CHANNEL_SOURCE = "source";
125 public static final String CHANNEL_MAIN_SOURCE = "mainZone#source";
126 public static final String CHANNEL_MAIN_RECORD_SOURCE = "mainZone#recordSource";
127 public static final String CHANNEL_DSP = "dsp";
128 public static final String CHANNEL_MAIN_DSP = "mainZone#dsp";
129 public static final String CHANNEL_VOLUME = "volume";
130 public static final String CHANNEL_MAIN_VOLUME = "mainZone#volume";
131 public static final String CHANNEL_MAIN_VOLUME_UP_DOWN = "mainZone#volumeUpDown";
132 public static final String CHANNEL_MUTE = "mute";
133 public static final String CHANNEL_MAIN_MUTE = "mainZone#mute";
134 public static final String CHANNEL_BASS = "bass";
135 public static final String CHANNEL_MAIN_BASS = "mainZone#bass";
136 public static final String CHANNEL_TREBLE = "treble";
137 public static final String CHANNEL_MAIN_TREBLE = "mainZone#treble";
138 public static final String CHANNEL_PLAY_CONTROL = "playControl";
139 public static final String CHANNEL_TRACK = "track";
140 public static final String CHANNEL_FREQUENCY = "frequency";
141 public static final String CHANNEL_LINE1 = "mainZone#line1";
142 public static final String CHANNEL_LINE2 = "mainZone#line2";
143 public static final String CHANNEL_BRIGHTNESS = "brightness";
144 public static final String CHANNEL_ZONE2_POWER = "zone2#power";
145 public static final String CHANNEL_ZONE2_SOURCE = "zone2#source";
146 public static final String CHANNEL_ZONE2_VOLUME = "zone2#volume";
147 public static final String CHANNEL_ZONE2_VOLUME_UP_DOWN = "zone2#volumeUpDown";
148 public static final String CHANNEL_ZONE2_MUTE = "zone2#mute";
149 public static final String CHANNEL_ZONE3_POWER = "zone3#power";
150 public static final String CHANNEL_ZONE3_SOURCE = "zone3#source";
151 public static final String CHANNEL_ZONE3_VOLUME = "zone3#volume";
152 public static final String CHANNEL_ZONE3_MUTE = "zone3#mute";
153 public static final String CHANNEL_ZONE4_POWER = "zone4#power";
154 public static final String CHANNEL_ZONE4_SOURCE = "zone4#source";
155 public static final String CHANNEL_ZONE4_VOLUME = "zone4#volume";
156 public static final String CHANNEL_ZONE4_MUTE = "zone4#mute";
157 public static final String CHANNEL_TCBYPASS = "tcbypass";
158 public static final String CHANNEL_BALANCE = "balance";
159 public static final String CHANNEL_SPEAKER_A = "speakera";
160 public static final String CHANNEL_SPEAKER_B = "speakerb";
162 // List of all properties
163 public static final String PROPERTY_PROTOCOL = "protocol";
165 // Message types (HEX protocol)
166 public static final byte PRIMARY_CMD = (byte) 0x10;
167 public static final byte MAIN_ZONE_CMD = (byte) 0x14;
168 public static final byte RECORD_SRC_CMD = (byte) 0x15;
169 public static final byte ZONE2_CMD = (byte) 0x16;
170 public static final byte ZONE3_CMD = (byte) 0x17;
171 public static final byte ZONE4_CMD = (byte) 0x18;
172 public static final byte VOLUME_CMD = (byte) 0x30;
173 public static final byte ZONE2_VOLUME_CMD = (byte) 0x32;
174 public static final byte ZONE3_VOLUME_CMD = (byte) 0x33;
175 public static final byte ZONE4_VOLUME_CMD = (byte) 0x34;
176 public static final byte TRIGGER_CMD = (byte) 0x40;
177 public static final byte STANDARD_RESPONSE = (byte) 0x20;
178 public static final byte TRIGGER_STATUS = (byte) 0x21;
179 public static final byte SMART_DISPLAY_DATA_1 = (byte) 0x22;
180 public static final byte SMART_DISPLAY_DATA_2 = (byte) 0x23;
182 // Common (output) keys used by the HEX and ASCII protocols
183 public static final String KEY_POWER = "power";
184 public static final String KEY_VOLUME = "volume";
185 public static final String KEY_MUTE = "mute";
186 public static final String KEY_BASS = "bass";
187 public static final String KEY_TREBLE = "treble";
188 public static final String KEY_SOURCE = "source";
189 public static final String KEY_DSP_MODE = "dsp_mode";
190 public static final String KEY_ERROR = "error";
191 // Keys only used by the ASCII protocol
192 public static final String KEY_UPDATE_MODE = "update_mode";
193 public static final String KEY_DISPLAY_UPDATE = "display_update";
194 public static final String KEY_VOLUME_MIN = "volume_min";
195 public static final String KEY_VOLUME_MAX = "volume_max";
196 public static final String KEY_TONE_MAX = "tone_max";
197 public static final String KEY1_PLAY_STATUS = "play_status";
198 public static final String KEY2_PLAY_STATUS = "status";
199 public static final String KEY_TRACK = "track";
200 public static final String KEY_DIMMER = "dimmer";
201 public static final String KEY_FREQ = "freq";
202 public static final String KEY_TONE = "tone";
203 public static final String KEY_TCBYPASS = "bypass";
204 public static final String KEY_BALANCE = "balance";
205 public static final String KEY_SPEAKER = "speaker";
206 // Output keys only used by the HEX protocol
207 public static final String KEY_LINE1 = "line1";
208 public static final String KEY_LINE2 = "line2";
209 public static final String KEY_RECORD = "record";
210 public static final String KEY_RECORD_SEL = "record_sel";
211 public static final String KEY_ZONE = "zone";
212 public static final String KEY_POWER_ZONE2 = "power_zone2";
213 public static final String KEY_POWER_ZONE3 = "power_zone3";
214 public static final String KEY_POWER_ZONE4 = "power_zone4";
215 public static final String KEY_SOURCE_ZONE2 = "source_zone2";
216 public static final String KEY_SOURCE_ZONE3 = "source_zone3";
217 public static final String KEY_SOURCE_ZONE4 = "source_zone4";
218 public static final String KEY_VOLUME_ZONE2 = "volume_zone2";
219 public static final String KEY_VOLUME_ZONE3 = "volume_zone3";
220 public static final String KEY_VOLUME_ZONE4 = "volume_zone4";
221 public static final String KEY_MUTE_ZONE2 = "mute_zone2";
222 public static final String KEY_MUTE_ZONE3 = "mute_zone3";
223 public static final String KEY_MUTE_ZONE4 = "mute_zone4";
225 // Specific values for keys
226 public static final String MSG_VALUE_OFF = "off";
227 public static final String MSG_VALUE_ON = "on";
228 public static final String POWER_ON = "on";
229 public static final String STANDBY = "standby";
230 public static final String POWER_OFF_DELAYED = "off_delayed";
231 public static final String MSG_VALUE_SPEAKER_A = "a";
232 public static final String MSG_VALUE_SPEAKER_B = "b";
233 public static final String MSG_VALUE_SPEAKER_AB = "a_b";
234 public static final String MSG_VALUE_MIN = "min";
235 public static final String MSG_VALUE_MAX = "max";
236 public static final String MSG_VALUE_FIX = "fix";
237 public static final String AUTO = "auto";
238 public static final String MANUAL = "manual";
239 public static final String PLAY = "play";
240 public static final String PAUSE = "pause";
241 public static final String STOP = "stop";