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_M8 = "m8";
72 public static final String THING_TYPE_ID_P5 = "p5";
73 public static final String THING_TYPE_ID_S5 = "s5";
74 public static final String THING_TYPE_ID_X3 = "x3";
75 public static final String THING_TYPE_ID_X5 = "x5";
77 // List of all Thing Type UIDs
78 public static final ThingTypeUID THING_TYPE_RSP1066 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1066);
79 public static final ThingTypeUID THING_TYPE_RSP1068 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1068);
80 public static final ThingTypeUID THING_TYPE_RSP1069 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1069);
81 public static final ThingTypeUID THING_TYPE_RSP1098 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1098);
82 public static final ThingTypeUID THING_TYPE_RSP1570 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1570);
83 public static final ThingTypeUID THING_TYPE_RSP1572 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1572);
84 public static final ThingTypeUID THING_TYPE_RSX1055 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1055);
85 public static final ThingTypeUID THING_TYPE_RSX1056 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1056);
86 public static final ThingTypeUID THING_TYPE_RSX1057 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1057);
87 public static final ThingTypeUID THING_TYPE_RSX1058 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1058);
88 public static final ThingTypeUID THING_TYPE_RSX1065 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1065);
89 public static final ThingTypeUID THING_TYPE_RSX1067 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1067);
90 public static final ThingTypeUID THING_TYPE_RSX1550 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1550);
91 public static final ThingTypeUID THING_TYPE_RSX1560 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1560);
92 public static final ThingTypeUID THING_TYPE_RSX1562 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSX1562);
93 public static final ThingTypeUID THING_TYPE_A11 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_A11);
94 public static final ThingTypeUID THING_TYPE_A12 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_A12);
95 public static final ThingTypeUID THING_TYPE_A14 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_A14);
96 public static final ThingTypeUID THING_TYPE_CD11 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_CD11);
97 public static final ThingTypeUID THING_TYPE_CD14 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_CD14);
98 public static final ThingTypeUID THING_TYPE_RA11 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RA11);
99 public static final ThingTypeUID THING_TYPE_RA12 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RA12);
100 public static final ThingTypeUID THING_TYPE_RA1570 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RA1570);
101 public static final ThingTypeUID THING_TYPE_RA1572 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RA1572);
102 public static final ThingTypeUID THING_TYPE_RA1592 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RA1592);
103 public static final ThingTypeUID THING_TYPE_RAP1580 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RAP1580);
104 public static final ThingTypeUID THING_TYPE_RC1570 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RC1570);
105 public static final ThingTypeUID THING_TYPE_RC1572 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RC1572);
106 public static final ThingTypeUID THING_TYPE_RC1590 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RC1590);
107 public static final ThingTypeUID THING_TYPE_RCD1570 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RCD1570);
108 public static final ThingTypeUID THING_TYPE_RCD1572 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RCD1572);
109 public static final ThingTypeUID THING_TYPE_RCX1500 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RCX1500);
110 public static final ThingTypeUID THING_TYPE_RDD1580 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RDD1580);
111 public static final ThingTypeUID THING_TYPE_RDG1520 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RDG1520);
112 public static final ThingTypeUID THING_TYPE_RSP1576 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1576);
113 public static final ThingTypeUID THING_TYPE_RSP1582 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RSP1582);
114 public static final ThingTypeUID THING_TYPE_RT09 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RT09);
115 public static final ThingTypeUID THING_TYPE_RT11 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RT11);
116 public static final ThingTypeUID THING_TYPE_RT1570 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_RT1570);
117 public static final ThingTypeUID THING_TYPE_T11 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_T11);
118 public static final ThingTypeUID THING_TYPE_T14 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_T14);
119 public static final ThingTypeUID THING_TYPE_M8 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_M8);
120 public static final ThingTypeUID THING_TYPE_P5 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_P5);
121 public static final ThingTypeUID THING_TYPE_S5 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_S5);
122 public static final ThingTypeUID THING_TYPE_X3 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_X3);
123 public static final ThingTypeUID THING_TYPE_X5 = new ThingTypeUID(BINDING_ID, THING_TYPE_ID_X5);
125 // List of all Channel ids
126 public static final String CHANNEL_POWER = "power";
127 public static final String CHANNEL_MAIN_POWER = "mainZone#power";
128 public static final String CHANNEL_SOURCE = "source";
129 public static final String CHANNEL_MAIN_SOURCE = "mainZone#source";
130 public static final String CHANNEL_MAIN_RECORD_SOURCE = "mainZone#recordSource";
131 public static final String CHANNEL_DSP = "dsp";
132 public static final String CHANNEL_MAIN_DSP = "mainZone#dsp";
133 public static final String CHANNEL_VOLUME = "volume";
134 public static final String CHANNEL_MAIN_VOLUME = "mainZone#volume";
135 public static final String CHANNEL_MAIN_VOLUME_UP_DOWN = "mainZone#volumeUpDown";
136 public static final String CHANNEL_MUTE = "mute";
137 public static final String CHANNEL_MAIN_MUTE = "mainZone#mute";
138 public static final String CHANNEL_BASS = "bass";
139 public static final String CHANNEL_MAIN_BASS = "mainZone#bass";
140 public static final String CHANNEL_TREBLE = "treble";
141 public static final String CHANNEL_MAIN_TREBLE = "mainZone#treble";
142 public static final String CHANNEL_PLAY_CONTROL = "playControl";
143 public static final String CHANNEL_TRACK = "track";
144 public static final String CHANNEL_FREQUENCY = "frequency";
145 public static final String CHANNEL_LINE1 = "mainZone#line1";
146 public static final String CHANNEL_LINE2 = "mainZone#line2";
147 public static final String CHANNEL_BRIGHTNESS = "brightness";
148 public static final String CHANNEL_ZONE2_POWER = "zone2#power";
149 public static final String CHANNEL_ZONE2_SOURCE = "zone2#source";
150 public static final String CHANNEL_ZONE2_VOLUME = "zone2#volume";
151 public static final String CHANNEL_ZONE2_VOLUME_UP_DOWN = "zone2#volumeUpDown";
152 public static final String CHANNEL_ZONE2_MUTE = "zone2#mute";
153 public static final String CHANNEL_ZONE3_POWER = "zone3#power";
154 public static final String CHANNEL_ZONE3_SOURCE = "zone3#source";
155 public static final String CHANNEL_ZONE3_VOLUME = "zone3#volume";
156 public static final String CHANNEL_ZONE3_MUTE = "zone3#mute";
157 public static final String CHANNEL_ZONE4_POWER = "zone4#power";
158 public static final String CHANNEL_ZONE4_SOURCE = "zone4#source";
159 public static final String CHANNEL_ZONE4_VOLUME = "zone4#volume";
160 public static final String CHANNEL_ZONE4_MUTE = "zone4#mute";
161 public static final String CHANNEL_TCBYPASS = "tcbypass";
162 public static final String CHANNEL_BALANCE = "balance";
163 public static final String CHANNEL_SPEAKER_A = "speakera";
164 public static final String CHANNEL_SPEAKER_B = "speakerb";
166 // List of all properties
167 public static final String PROPERTY_PROTOCOL = "protocol";
169 // Message types (HEX protocol)
170 public static final byte PRIMARY_CMD = (byte) 0x10;
171 public static final byte MAIN_ZONE_CMD = (byte) 0x14;
172 public static final byte RECORD_SRC_CMD = (byte) 0x15;
173 public static final byte ZONE2_CMD = (byte) 0x16;
174 public static final byte ZONE3_CMD = (byte) 0x17;
175 public static final byte ZONE4_CMD = (byte) 0x18;
176 public static final byte VOLUME_CMD = (byte) 0x30;
177 public static final byte ZONE2_VOLUME_CMD = (byte) 0x32;
178 public static final byte ZONE3_VOLUME_CMD = (byte) 0x33;
179 public static final byte ZONE4_VOLUME_CMD = (byte) 0x34;
180 public static final byte TRIGGER_CMD = (byte) 0x40;
181 public static final byte STANDARD_RESPONSE = (byte) 0x20;
182 public static final byte TRIGGER_STATUS = (byte) 0x21;
183 public static final byte SMART_DISPLAY_DATA_1 = (byte) 0x22;
184 public static final byte SMART_DISPLAY_DATA_2 = (byte) 0x23;
186 // Common (output) keys used by the HEX and ASCII protocols
187 public static final String KEY_POWER = "power";
188 public static final String KEY_VOLUME = "volume";
189 public static final String KEY_MUTE = "mute";
190 public static final String KEY_BASS = "bass";
191 public static final String KEY_TREBLE = "treble";
192 public static final String KEY_SOURCE = "source";
193 public static final String KEY_DSP_MODE = "dsp_mode";
194 public static final String KEY_ERROR = "error";
195 // Keys only used by the ASCII protocol
196 public static final String KEY_UPDATE_MODE = "update_mode";
197 public static final String KEY_DISPLAY_UPDATE = "display_update";
198 public static final String KEY_VOLUME_MIN = "volume_min";
199 public static final String KEY_VOLUME_MAX = "volume_max";
200 public static final String KEY_TONE_MAX = "tone_max";
201 public static final String KEY1_PLAY_STATUS = "play_status";
202 public static final String KEY2_PLAY_STATUS = "status";
203 public static final String KEY_TRACK = "track";
204 public static final String KEY_DIMMER = "dimmer";
205 public static final String KEY_FREQ = "freq";
206 public static final String KEY_TONE = "tone";
207 public static final String KEY_TCBYPASS = "bypass";
208 public static final String KEY_BALANCE = "balance";
209 public static final String KEY_SPEAKER = "speaker";
210 // Output keys only used by the HEX protocol
211 public static final String KEY_LINE1 = "line1";
212 public static final String KEY_LINE2 = "line2";
213 public static final String KEY_RECORD = "record";
214 public static final String KEY_RECORD_SEL = "record_sel";
215 public static final String KEY_ZONE = "zone";
216 public static final String KEY_POWER_ZONE2 = "power_zone2";
217 public static final String KEY_POWER_ZONE3 = "power_zone3";
218 public static final String KEY_POWER_ZONE4 = "power_zone4";
219 public static final String KEY_SOURCE_ZONE2 = "source_zone2";
220 public static final String KEY_SOURCE_ZONE3 = "source_zone3";
221 public static final String KEY_SOURCE_ZONE4 = "source_zone4";
222 public static final String KEY_VOLUME_ZONE2 = "volume_zone2";
223 public static final String KEY_VOLUME_ZONE3 = "volume_zone3";
224 public static final String KEY_VOLUME_ZONE4 = "volume_zone4";
225 public static final String KEY_MUTE_ZONE2 = "mute_zone2";
226 public static final String KEY_MUTE_ZONE3 = "mute_zone3";
227 public static final String KEY_MUTE_ZONE4 = "mute_zone4";
229 // Specific values for keys
230 public static final String MSG_VALUE_OFF = "off";
231 public static final String MSG_VALUE_ON = "on";
232 public static final String POWER_ON = "on";
233 public static final String STANDBY = "standby";
234 public static final String POWER_OFF_DELAYED = "off_delayed";
235 public static final String MSG_VALUE_SPEAKER_A = "a";
236 public static final String MSG_VALUE_SPEAKER_B = "b";
237 public static final String MSG_VALUE_SPEAKER_AB = "a_b";
238 public static final String MSG_VALUE_MIN = "min";
239 public static final String MSG_VALUE_MAX = "max";
240 public static final String MSG_VALUE_FIX = "fix";
241 public static final String AUTO = "auto";
242 public static final String MANUAL = "manual";
243 public static final String PLAY = "play";
244 public static final String PAUSE = "pause";
245 public static final String STOP = "stop";