]> git.basschouten.com Git - openhab-addons.git/blob
de5b7c77b46975778e318698988acfacebfd0393
[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.velbus.internal;
14
15 import java.util.Arrays;
16 import java.util.Collections;
17 import java.util.HashSet;
18 import java.util.Set;
19
20 import org.eclipse.jdt.annotation.NonNullByDefault;
21 import org.openhab.core.thing.ThingTypeUID;
22
23 /**
24  * The {@link VelbusBindingConstants} class defines common constants, which are
25  * used across the whole binding.
26  *
27  * @author Cedric Boon - Initial contribution
28  */
29 @NonNullByDefault
30 public class VelbusBindingConstants {
31
32     public static final String BINDING_ID = "velbus";
33
34     // bridges
35     public static final ThingTypeUID BRIDGE_THING_TYPE = new ThingTypeUID(BINDING_ID, "bridge");
36     public static final ThingTypeUID NETWORK_BRIDGE_THING_TYPE = new ThingTypeUID(BINDING_ID, "networkbridge");
37
38     // generic thing types
39     public static final ThingTypeUID THING_TYPE_VMB1BL = new ThingTypeUID(BINDING_ID, "vmb1bl");
40     public static final ThingTypeUID THING_TYPE_VMB1BLS = new ThingTypeUID(BINDING_ID, "vmb1bls");
41     public static final ThingTypeUID THING_TYPE_VMB1DM = new ThingTypeUID(BINDING_ID, "vmb1dm");
42     public static final ThingTypeUID THING_TYPE_VMB1LED = new ThingTypeUID(BINDING_ID, "vmb1led");
43     public static final ThingTypeUID THING_TYPE_VMB1RY = new ThingTypeUID(BINDING_ID, "vmb1ry");
44     public static final ThingTypeUID THING_TYPE_VMB1RYNO = new ThingTypeUID(BINDING_ID, "vmb1ryno");
45     public static final ThingTypeUID THING_TYPE_VMB1RYNOS = new ThingTypeUID(BINDING_ID, "vmb1rynos");
46     public static final ThingTypeUID THING_TYPE_VMB1RYS = new ThingTypeUID(BINDING_ID, "vmb1rys");
47     public static final ThingTypeUID THING_TYPE_VMB1TS = new ThingTypeUID(BINDING_ID, "vmb1ts");
48     public static final ThingTypeUID THING_TYPE_VMB2BL = new ThingTypeUID(BINDING_ID, "vmb2bl");
49     public static final ThingTypeUID THING_TYPE_VMB2BLE = new ThingTypeUID(BINDING_ID, "vmb2ble");
50     public static final ThingTypeUID THING_TYPE_VMB2PBN = new ThingTypeUID(BINDING_ID, "vmb2pbn");
51     public static final ThingTypeUID THING_TYPE_VMB4AN = new ThingTypeUID(BINDING_ID, "vmb4an");
52     public static final ThingTypeUID THING_TYPE_VMB4DC = new ThingTypeUID(BINDING_ID, "vmb4dc");
53     public static final ThingTypeUID THING_TYPE_VMB4RY = new ThingTypeUID(BINDING_ID, "vmb4ry");
54     public static final ThingTypeUID THING_TYPE_VMB4RYLD = new ThingTypeUID(BINDING_ID, "vmb4ryld");
55     public static final ThingTypeUID THING_TYPE_VMB4RYNO = new ThingTypeUID(BINDING_ID, "vmb4ryno");
56     public static final ThingTypeUID THING_TYPE_VMB6IN = new ThingTypeUID(BINDING_ID, "vmb6in");
57     public static final ThingTypeUID THING_TYPE_VMB6PBN = new ThingTypeUID(BINDING_ID, "vmb6pbn");
58     public static final ThingTypeUID THING_TYPE_VMB7IN = new ThingTypeUID(BINDING_ID, "vmb7in");
59     public static final ThingTypeUID THING_TYPE_VMB8IR = new ThingTypeUID(BINDING_ID, "vmb8ir");
60     public static final ThingTypeUID THING_TYPE_VMB8PB = new ThingTypeUID(BINDING_ID, "vmb8pb");
61     public static final ThingTypeUID THING_TYPE_VMB8PBU = new ThingTypeUID(BINDING_ID, "vmb8pbu");
62     public static final ThingTypeUID THING_TYPE_VMBDME = new ThingTypeUID(BINDING_ID, "vmbdme");
63     public static final ThingTypeUID THING_TYPE_VMBDMI = new ThingTypeUID(BINDING_ID, "vmbdmi");
64     public static final ThingTypeUID THING_TYPE_VMBDMIR = new ThingTypeUID(BINDING_ID, "vmbdmir");
65     public static final ThingTypeUID THING_TYPE_VMBEL1 = new ThingTypeUID(BINDING_ID, "vmbel1");
66     public static final ThingTypeUID THING_TYPE_VMBEL2 = new ThingTypeUID(BINDING_ID, "vmbel2");
67     public static final ThingTypeUID THING_TYPE_VMBEL4 = new ThingTypeUID(BINDING_ID, "vmbel4");
68     public static final ThingTypeUID THING_TYPE_VMBELO = new ThingTypeUID(BINDING_ID, "vmbelo");
69     public static final ThingTypeUID THING_TYPE_VMBELPIR = new ThingTypeUID(BINDING_ID, "vmbelpir");
70     public static final ThingTypeUID THING_TYPE_VMBGP1 = new ThingTypeUID(BINDING_ID, "vmbgp1");
71     public static final ThingTypeUID THING_TYPE_VMBGP1_2 = new ThingTypeUID(BINDING_ID, "vmbgp1-2");
72     public static final ThingTypeUID THING_TYPE_VMBGP2 = new ThingTypeUID(BINDING_ID, "vmbgp2");
73     public static final ThingTypeUID THING_TYPE_VMBGP2_2 = new ThingTypeUID(BINDING_ID, "vmbgp2-2");
74     public static final ThingTypeUID THING_TYPE_VMBGP4 = new ThingTypeUID(BINDING_ID, "vmbgp4");
75     public static final ThingTypeUID THING_TYPE_VMBGP4_2 = new ThingTypeUID(BINDING_ID, "vmbgp4-2");
76     public static final ThingTypeUID THING_TYPE_VMBGP4PIR = new ThingTypeUID(BINDING_ID, "vmbgp4pir");
77     public static final ThingTypeUID THING_TYPE_VMBGP4PIR_2 = new ThingTypeUID(BINDING_ID, "vmbgp4pir-2");
78     public static final ThingTypeUID THING_TYPE_VMBGPO = new ThingTypeUID(BINDING_ID, "vmbgpo");
79     public static final ThingTypeUID THING_TYPE_VMBGPOD = new ThingTypeUID(BINDING_ID, "vmbgpod");
80     public static final ThingTypeUID THING_TYPE_VMBGPOD_2 = new ThingTypeUID(BINDING_ID, "vmbgpod-2");
81     public static final ThingTypeUID THING_TYPE_VMBMETEO = new ThingTypeUID(BINDING_ID, "vmbmeteo");
82     public static final ThingTypeUID THING_TYPE_VMBPIRC = new ThingTypeUID(BINDING_ID, "vmbpirc");
83     public static final ThingTypeUID THING_TYPE_VMBPIRM = new ThingTypeUID(BINDING_ID, "vmbpirm");
84     public static final ThingTypeUID THING_TYPE_VMBPIRO = new ThingTypeUID(BINDING_ID, "vmbpiro");
85     public static final ThingTypeUID THING_TYPE_VMBRFR8S = new ThingTypeUID(BINDING_ID, "vmbrfr8s");
86     public static final ThingTypeUID THING_TYPE_VMBVP1 = new ThingTypeUID(BINDING_ID, "vmbvp1");
87     public static final ThingTypeUID THING_TYPE_VMBKP = new ThingTypeUID(BINDING_ID, "vmbkp");
88     public static final ThingTypeUID THING_TYPE_VMBIN = new ThingTypeUID(BINDING_ID, "vmbin");
89     public static final ThingTypeUID THING_TYPE_VMB4PB = new ThingTypeUID(BINDING_ID, "vmb4pb");
90
91     // thing type sets
92     public static final Set<ThingTypeUID> BRIDGE_THING_TYPES_UIDS = Collections
93             .unmodifiableSet(new HashSet<>(Arrays.asList(BRIDGE_THING_TYPE, NETWORK_BRIDGE_THING_TYPE)));
94     public static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Collections.unmodifiableSet(
95             new HashSet<>(Arrays.asList(THING_TYPE_VMB1BL, THING_TYPE_VMB1BLS, THING_TYPE_VMB1DM, THING_TYPE_VMB1LED,
96                     THING_TYPE_VMB1RY, THING_TYPE_VMB1RYNO, THING_TYPE_VMB1RYNOS, THING_TYPE_VMB1RYS, THING_TYPE_VMB1TS,
97                     THING_TYPE_VMB2BL, THING_TYPE_VMB2BLE, THING_TYPE_VMB2PBN, THING_TYPE_VMB4AN, THING_TYPE_VMB4DC,
98                     THING_TYPE_VMB4RY, THING_TYPE_VMB4RYLD, THING_TYPE_VMB4RYNO, THING_TYPE_VMB6IN, THING_TYPE_VMB6PBN,
99                     THING_TYPE_VMB7IN, THING_TYPE_VMB8IR, THING_TYPE_VMB8PB, THING_TYPE_VMB8PBU, THING_TYPE_VMBDME,
100                     THING_TYPE_VMBDMI, THING_TYPE_VMBDMIR, THING_TYPE_VMBEL1, THING_TYPE_VMBEL2, THING_TYPE_VMBEL4,
101                     THING_TYPE_VMBELO, THING_TYPE_VMBELPIR, THING_TYPE_VMBGP1, THING_TYPE_VMBGP1_2, THING_TYPE_VMBGP2,
102                     THING_TYPE_VMBGP2_2, THING_TYPE_VMBGP4, THING_TYPE_VMBGP4_2, THING_TYPE_VMBGP4PIR,
103                     THING_TYPE_VMBGP4PIR_2, THING_TYPE_VMBGPO, THING_TYPE_VMBGPOD, THING_TYPE_VMBGPOD_2,
104                     THING_TYPE_VMBMETEO, THING_TYPE_VMBPIRC, THING_TYPE_VMBPIRM, THING_TYPE_VMBPIRO,
105                     THING_TYPE_VMBRFR8S, THING_TYPE_VMBVP1, THING_TYPE_VMBKP, THING_TYPE_VMBIN, THING_TYPE_VMB4PB)));
106
107     // Velbus module types
108     public static final byte MODULE_TYPE_VMB8PB = 0x01;
109     public static final byte MODULE_TYPE_VMB1RY = 0x02;
110     public static final byte MODULE_TYPE_VMB1BL = 0x03;
111     public static final byte MODULE_TYPE_VMB6IN = 0x05;
112     public static final byte MODULE_TYPE_VMB1DM = 0x07;
113     public static final byte MODULE_TYPE_VMB4RY = 0x08;
114     public static final byte MODULE_TYPE_VMB2BL = 0x09;
115     public static final byte MODULE_TYPE_VMB8IR = 0x0A;
116     public static final byte MODULE_TYPE_VMB1TS = 0x0C;
117     public static final byte MODULE_TYPE_VMB1LED = 0x0F;
118     public static final byte MODULE_TYPE_VMB4RYLD = 0x10;
119     public static final byte MODULE_TYPE_VMB4RYNO = 0x11;
120     public static final byte MODULE_TYPE_VMB4DC = 0x12;
121     public static final byte MODULE_TYPE_VMBDME = 0x14;
122     public static final byte MODULE_TYPE_VMBDMI = 0x15;
123     public static final byte MODULE_TYPE_VMB8PBU = 0x16;
124     public static final byte MODULE_TYPE_VMB6PBN = 0x17;
125     public static final byte MODULE_TYPE_VMB2PBN = 0x18;
126     public static final byte MODULE_TYPE_VMB1RYNO = 0x1B;
127     public static final byte MODULE_TYPE_VMB2BLE = 0x1D;
128     public static final byte MODULE_TYPE_VMBGP1 = 0x1E;
129     public static final byte MODULE_TYPE_VMBGP2 = 0x1F;
130     public static final byte MODULE_TYPE_VMBGP4 = 0x20;
131     public static final byte MODULE_TYPE_VMBGPO = 0x21;
132     public static final byte MODULE_TYPE_VMB7IN = 0x22;
133     public static final byte MODULE_TYPE_VMBGPOD = 0x28;
134     public static final byte MODULE_TYPE_VMB1RYNOS = 0x29;
135     public static final byte MODULE_TYPE_VMBPIRM = 0x2A;
136     public static final byte MODULE_TYPE_VMBPIRC = 0x2B;
137     public static final byte MODULE_TYPE_VMBPIRO = 0x2C;
138     public static final byte MODULE_TYPE_VMBGP4PIR = 0x2D;
139     public static final byte MODULE_TYPE_VMB1BLS = 0x2E;
140     public static final byte MODULE_TYPE_VMBDMIR = 0x2F;
141     public static final byte MODULE_TYPE_VMBRFR8S = 0x30;
142     public static final byte MODULE_TYPE_VMBMETEO = 0x31;
143     public static final byte MODULE_TYPE_VMB4AN = 0x32;
144     public static final byte MODULE_TYPE_VMBVP1 = 0x33;
145     public static final byte MODULE_TYPE_VMBEL1 = 0x34;
146     public static final byte MODULE_TYPE_VMBEL2 = 0x35;
147     public static final byte MODULE_TYPE_VMBEL4 = 0x36;
148     public static final byte MODULE_TYPE_VMBELO = 0x37;
149     public static final byte MODULE_TYPE_VMBELPIR = 0x38;
150     public static final byte MODULE_TYPE_VMBGP1_2 = 0x3A;
151     public static final byte MODULE_TYPE_VMBGP2_2 = 0x3B;
152     public static final byte MODULE_TYPE_VMBGP4_2 = 0x3C;
153     public static final byte MODULE_TYPE_VMBGPOD_2 = 0x3D;
154     public static final byte MODULE_TYPE_VMBGP4PIR_2 = 0x3E;
155     public static final byte MODULE_TYPE_VMB1RYS = 0x41;
156     public static final byte MODULE_TYPE_VMBKP = 0x42;
157     public static final byte MODULE_TYPE_VMBIN = 0x43;
158     public static final byte MODULE_TYPE_VMB4PB = 0x44;
159
160     // Velbus commands
161     public static final byte COMMAND_PUSH_BUTTON_STATUS = 0x00;
162     public static final byte COMMAND_SWITCH_RELAY_OFF = 0x01;
163     public static final byte COMMAND_SWITCH_RELAY_ON = 0x02;
164     public static final byte COMMAND_SWITCH_BLIND_OFF = 0x04;
165     public static final byte COMMAND_BLIND_UP = 0x05;
166     public static final byte COMMAND_BLIND_DOWN = 0x06;
167     public static final byte COMMAND_SET_VALUE = 0x07;
168     public static final byte COMMAND_SLIDER_STATUS = 0x0F;
169     public static final byte COMMAND_RESTORE_LAST_DIMVALUE = 0x11;
170     public static final byte COMMAND_BLIND_POS = 0x1C;
171     public static final byte COMMAND_SENSOR_RAW_DATA = (byte) 0xA9;
172     public static final byte COMMAND_LIGHT_VALUE_REQUEST = (byte) 0xAA;
173     public static final byte COMMAND_TEXT = (byte) 0xAC;
174     public static final byte COMMAND_DAYLIGHT_SAVING_STATUS = (byte) 0xAF;
175     public static final byte COMMAND_SUBTYPE = (byte) 0xB0;
176     public static final byte COMMAND_SET_REALTIME_DATE = (byte) 0xB7;
177     public static final byte COMMAND_DIMMERCONTROLLER_STATUS = (byte) 0xB8;
178     public static final byte COMMAND_TEMP_SENSOR_SETTINGS_PART4 = (byte) 0xB9;
179     public static final byte COMMAND_COUNTER_STATUS_REQUEST = (byte) 0xBD;
180     public static final byte COMMAND_COUNTER_STATUS = (byte) 0xBE;
181     public static final byte COMMAND_SET_ALARM_CLOCK = (byte) 0xC3;
182     public static final byte COMMAND_TEMP_SENSOR_SETTINGS_PART3 = (byte) 0xC6;
183     public static final byte COMMAND_READ_MEMORY_BLOCK = (byte) 0xC9;
184     public static final byte COMMAND_MEMORY_DATA_BLOCK = (byte) 0xCC;
185     public static final byte COMMAND_SET_REALTIME_CLOCK = (byte) 0xD8;
186     public static final byte COMMAND_SWITCH_TO_COMFORT_MODE = (byte) 0xDB;
187     public static final byte COMMAND_SWITCH_TO_DAY_MODE = (byte) 0xDC;
188     public static final byte COMMAND_SWITCH_TO_NIGHT_MODE = (byte) 0xDD;
189     public static final byte COMMAND_SWITCH_TO_SAFE_MODE = (byte) 0xDE;
190     public static final byte COMMAND_SET_COOLING_MODE = (byte) 0xDF;
191     public static final byte COMMAND_SET_HEATING_MODE = (byte) 0xE0;
192     public static final byte COMMAND_SET_TEMP = (byte) 0xE4;
193     public static final byte COMMAND_SENSOR_READOUT_REQUEST = (byte) 0xE5;
194     public static final byte COMMAND_SENSOR_TEMPERATURE = (byte) 0xE6;
195     public static final byte COMMAND_TEMP_SENSOR_SETTINGS_REQUEST = (byte) 0xE7;
196     public static final byte COMMAND_TEMP_SENSOR_SETTINGS_PART1 = (byte) 0xE8;
197     public static final byte COMMAND_TEMP_SENSOR_SETTINGS_PART2 = (byte) 0xE9;
198     public static final byte COMMAND_TEMP_SENSOR_STATUS = (byte) 0xEA;
199     public static final byte COMMAND_BLIND_STATUS = (byte) 0xEC;
200     public static final byte COMMAND_MODULE_STATUS = (byte) 0xED;
201     public static final byte COMMAND_DIMMER_STATUS = (byte) 0xEE;
202     public static final byte COMMAND_MODULE_NAME_REQUEST = (byte) 0xEF;
203     public static final byte COMMAND_MODULE_NAME_PART1 = (byte) 0xF0;
204     public static final byte COMMAND_MODULE_NAME_PART2 = (byte) 0xF1;
205     public static final byte COMMAND_MODULE_NAME_PART3 = (byte) 0xF2;
206     public static final byte COMMAND_CLEAR_LED = (byte) 0xF5;
207     public static final byte COMMAND_SET_LED = (byte) 0xF6;
208     public static final byte COMMAND_SLOW_BLINK_LED = (byte) 0xF7;
209     public static final byte COMMAND_FAST_BLINK_LED = (byte) 0xF8;
210     public static final byte COMMAND_VERY_FAST_BLINK_LED = (byte) 0xF9;
211     public static final byte COMMAND_STATUS_REQUEST = (byte) 0xFA;
212     public static final byte COMMAND_RELAY_STATUS = (byte) 0xFB;
213     public static final byte COMMAND_WRITE_DATA_TO_MEMORY = (byte) 0xFC;
214     public static final byte COMMAND_READ_DATA_FROM_MEMORY = (byte) 0xFD;
215     public static final byte COMMAND_MEMORY_DATA = (byte) 0xFE;
216     public static final byte COMMAND_MODULE_TYPE = (byte) 0xFF;
217     public static final byte ALL_CHANNELS = (byte) 0xFF;
218
219     // Module properties
220     public static final String PORT = "port";
221     public static final String ADDRESS = "address";
222     public static final String REFRESH_INTERVAL = "refresh";
223     public static final String COUNTER1_PULSE_MULTIPLIER = "COUNTER1_PULSE_MULTIPLIER";
224     public static final String COUNTER2_PULSE_MULTIPLIER = "COUNTER2_PULSE_MULTIPLIER";
225     public static final String COUNTER3_PULSE_MULTIPLIER = "COUNTER3_PULSE_MULTIPLIER";
226     public static final String COUNTER4_PULSE_MULTIPLIER = "COUNTER4_PULSE_MULTIPLIER";
227     public static final String RECONNECTION_INTERVAL = "reconnectionInterval";
228     public static final String TIME_UPDATE_INTERVAL = "timeUpdateInterval";
229     public static final String MODULE_SERIAL_NUMBER = "serial number";
230     public static final String MODULE_MEMORY_MAP_VERSION = "memory map version";
231     public static final String MODULE_BUILD = "build";
232     public static final String CHANNEL = "CH";
233     public static final String SUB_ADDRESS = "subaddress";
234     public static final String DIMSPEED = "dimspeed";
235
236     // Channels ids
237     public static final String CHANNEL_BRIDGE_CLOCK_ALARM1_ENABLED = "bridgeClockAlarm#clockAlarm1Enabled";
238     public static final String CHANNEL_BRIDGE_CLOCK_ALARM1_WAKEUP_HOUR = "bridgeClockAlarm#clockAlarm1WakeupHour";
239     public static final String CHANNEL_BRIDGE_CLOCK_ALARM1_WAKEUP_MINUTE = "bridgeClockAlarm#clockAlarm1WakeupMinute";
240     public static final String CHANNEL_BRIDGE_CLOCK_ALARM1_BEDTIME_HOUR = "bridgeClockAlarm#clockAlarm1BedtimeHour";
241     public static final String CHANNEL_BRIDGE_CLOCK_ALARM1_BEDTIME_MINUTE = "bridgeClockAlarm#clockAlarm1BedtimeMinute";
242     public static final String CHANNEL_BRIDGE_CLOCK_ALARM2_ENABLED = "bridgeClockAlarm#clockAlarm2Enabled";
243     public static final String CHANNEL_BRIDGE_CLOCK_ALARM2_WAKEUP_HOUR = "bridgeClockAlarm#clockAlarm2WakeupHour";
244     public static final String CHANNEL_BRIDGE_CLOCK_ALARM2_WAKEUP_MINUTE = "bridgeClockAlarm#clockAlarm2WakeupMinute";
245     public static final String CHANNEL_BRIDGE_CLOCK_ALARM2_BEDTIME_HOUR = "bridgeClockAlarm#clockAlarm2BedtimeHour";
246     public static final String CHANNEL_BRIDGE_CLOCK_ALARM2_BEDTIME_MINUTE = "bridgeClockAlarm#clockAlarm2BedtimeMinute";
247     public static final String CHANNEL_MODULE_CLOCK_ALARM1_ENABLED = "clockAlarm#clockAlarm1Enabled";
248     public static final String CHANNEL_MODULE_CLOCK_ALARM1_TYPE = "clockAlarm#clockAlarm1Type";
249     public static final String CHANNEL_MODULE_CLOCK_ALARM1_WAKEUP_HOUR = "clockAlarm#clockAlarm1WakeupHour";
250     public static final String CHANNEL_MODULE_CLOCK_ALARM1_WAKEUP_MINUTE = "clockAlarm#clockAlarm1WakeupMinute";
251     public static final String CHANNEL_MODULE_CLOCK_ALARM1_BEDTIME_HOUR = "clockAlarm#clockAlarm1BedtimeHour";
252     public static final String CHANNEL_MODULE_CLOCK_ALARM1_BEDTIME_MINUTE = "clockAlarm#clockAlarm1BedtimeMinute";
253     public static final String CHANNEL_MODULE_CLOCK_ALARM2_ENABLED = "clockAlarm#clockAlarm2Enabled";
254     public static final String CHANNEL_MODULE_CLOCK_ALARM2_TYPE = "clockAlarm#clockAlarm2Type";
255     public static final String CHANNEL_MODULE_CLOCK_ALARM2_WAKEUP_HOUR = "clockAlarm#clockAlarm2WakeupHour";
256     public static final String CHANNEL_MODULE_CLOCK_ALARM2_WAKEUP_MINUTE = "clockAlarm#clockAlarm2WakeupMinute";
257     public static final String CHANNEL_MODULE_CLOCK_ALARM2_BEDTIME_HOUR = "clockAlarm#clockAlarm2BedtimeHour";
258     public static final String CHANNEL_MODULE_CLOCK_ALARM2_BEDTIME_MINUTE = "clockAlarm#clockAlarm2BedtimeMinute";
259
260     // Delay
261     public static final Integer DELAY_SEND_CLOCK_ALARM_UPDATE = 10000;
262 }