2 * RDM (Remote Device Management) packet disassembly.
4 * This dissector is written by
6 * Erwin Rol <erwin@erwinrol.com>
7 * Copyright 2003, 2011, 2012 Erwin Rol
9 * Shaun Jackman <sjackman@gmail.com>
10 * Copyright 2006 Pathway Connectivity
12 * Wireshark - Network traffic analyzer
13 * Gerald Combs <gerald@wireshark.org>
14 * Copyright 1999 Gerald Combs
16 * SPDX-License-Identifier: GPL-2.0-or-later
20 * ANSI E1.20-2006, Entertainment Technology
21 * Remote Device Management over USITT DMX512, describes a method of
22 * bi-directional communications over a USITT DMX512/1990 data link
23 * between an entertainment lighting controller and one or more
24 * remotely controlled lighting devices. The protocol also is intended
25 * to work with the ANSI E1.11-2004 control protocol. It allows
26 * discovery of devices on a DMX512/E1.11 network and the remote
27 * setting of DMX starting addresses, as well as status and fault
28 * reporting back to the control console.
33 #include <epan/packet.h>
34 #include <epan/expert.h>
35 #include "packet-rdm.h"
36 #include "packet-arp.h"
38 void proto_register_rdm(void);
39 void proto_reg_handoff_rdm(void);
41 static dissector_handle_t rdm_handle
;
43 #define RDM_SC_RDM 0xCC
44 #define RDM_SC_SUB_MESSAGE 0x01
46 #define RDM_CC_COMMAND_RESPONSE_FLAG 0x01
48 #define RDM_CC_DISCOVERY_COMMAND 0x10
49 #define RDM_CC_DISCOVERY_COMMAND_RESPONSE 0x11
50 #define RDM_CC_GET_COMMAND 0x20
51 #define RDM_CC_GET_COMMAND_RESPONSE 0x21
52 #define RDM_CC_SET_COMMAND 0x30
53 #define RDM_CC_SET_COMMAND_RESPONSE 0x31
55 static const value_string rdm_cc_vals
[] = {
56 { RDM_CC_DISCOVERY_COMMAND
, "Discovery Command" },
57 { RDM_CC_DISCOVERY_COMMAND_RESPONSE
, "Discovery Command Response" },
58 { RDM_CC_GET_COMMAND
, "Get Command" },
59 { RDM_CC_GET_COMMAND_RESPONSE
, "Get Command Response" },
60 { RDM_CC_SET_COMMAND
, "Set Command" },
61 { RDM_CC_SET_COMMAND_RESPONSE
, "Set Command Response" },
65 #define RDM_RESPONSE_TYPE_ACK 0x00
66 #define RDM_RESPONSE_TYPE_ACK_TIMER 0x01
67 #define RDM_RESPONSE_TYPE_NACK_REASON 0x02
68 #define RDM_RESPONSE_TYPE_ACK_OVERFLOW 0x03
70 static const value_string rdm_rt_vals
[] = {
71 { RDM_RESPONSE_TYPE_ACK
, "Ack" },
72 { RDM_RESPONSE_TYPE_ACK_TIMER
, "Ack Timer" },
73 { RDM_RESPONSE_TYPE_NACK_REASON
, "Nack Reason" },
74 { RDM_RESPONSE_TYPE_ACK_OVERFLOW
, "Ack Overflow" },
78 #define RDM_NR_UNKNOWN_PID 0x0000
79 #define RDM_NR_FORMAT_ERROR 0x0001
80 #define RDM_NR_HARDWARE_FAULT 0x0002
81 #define RDM_NR_PROXY_REJECT 0x0003
82 #define RDM_NR_WRITE_PROTECT 0x0004
83 #define RDM_NR_UNSUPPORTED_COMMAND_CLASS 0x0005
84 #define RDM_NR_DATA_OUT_OF_RANGE 0x0006
85 #define RDM_NR_BUFFER_FULL 0x0007
86 #define RDM_NR_PACKET_SIZE_UNSUPPORTED 0x0008
87 #define RDM_NR_SUB_DEVICE_OUT_OF_RANGE 0x0009
88 #define RDM_NR_PROXY_BUFFER_FULL 0x000A
89 #define RDM_NR_ACTION_NOT_SUPPORTED 0x000B /* E1.37-2 */
90 #define RDM_NR_ENDPOINT_NUMBER_INVALID 0x000C /* E1.37-7 */
91 #define RDM_NR_INVALID_ENDPOINT_MODE 0x000D
92 #define RDM_NR_UNKNOWN_UID 0x000E
94 #define RDM_NR_UNKNOWN_SCOPE 0x000F /* E1.33 */
95 #define RDM_NR_INVALID_STATIC_CONFIG_TYPE 0x0010 /* E1.33 */
96 #define RDM_NR_INVALID_IPV4_ADDRESS 0x0011 /* E1.33 */
97 #define RDM_NR_INVALID_IPV6_ADDRESS 0x0012 /* E1.33 */
98 #define RDM_NR_INVALID_PORT 0x0013 /* E1.33 */
100 static const value_string rdm_nr_vals
[] = {
101 { RDM_NR_UNKNOWN_PID
, "Unknown PID" },
102 { RDM_NR_FORMAT_ERROR
, "Format Error" },
103 { RDM_NR_HARDWARE_FAULT
, "Hardware Fault" },
104 { RDM_NR_PROXY_REJECT
, "Proxy Reject" },
105 { RDM_NR_WRITE_PROTECT
, "Write Protect" },
106 { RDM_NR_UNSUPPORTED_COMMAND_CLASS
, "Unsupported Command Class" },
107 { RDM_NR_DATA_OUT_OF_RANGE
, "Data Out Of Range" },
108 { RDM_NR_BUFFER_FULL
, "Buffer Full" },
109 { RDM_NR_PACKET_SIZE_UNSUPPORTED
, "Packet Size Unsupported" },
110 { RDM_NR_SUB_DEVICE_OUT_OF_RANGE
, "Sub-Device Out Of Range" },
111 { RDM_NR_PROXY_BUFFER_FULL
, "Proxy Buffer Full" },
112 { RDM_NR_ACTION_NOT_SUPPORTED
, "Action Not Supported" }, /* E1.37-2 */
113 { RDM_NR_ENDPOINT_NUMBER_INVALID
, "Endpoint Number Invalid" }, /* E1.37-7 */
114 { RDM_NR_INVALID_ENDPOINT_MODE
, "Invalid Endpoint Mode" },
115 { RDM_NR_UNKNOWN_UID
, "Unknown UID" },
116 { RDM_NR_UNKNOWN_SCOPE
, "Unknown Scope" }, /* E1.33 */
117 { RDM_NR_INVALID_STATIC_CONFIG_TYPE
, "Invalid Static Config Type" },
118 { RDM_NR_INVALID_IPV4_ADDRESS
, "Invalid IPv4 Address" },
119 { RDM_NR_INVALID_IPV6_ADDRESS
, "Invalid IPv6 Address" },
120 { RDM_NR_INVALID_PORT
, "Invalid Port" },
124 /* E1.20, E1.33, and E1.37 PIDs */
125 #define RDM_PARAM_ID_DISC_UNIQUE_BRANCH 0x0001
126 #define RDM_PARAM_ID_DISC_MUTE 0x0002
127 #define RDM_PARAM_ID_DISC_UN_MUTE 0x0003
128 #define RDM_PARAM_ID_PROXIED_DEVICES 0x0010
129 #define RDM_PARAM_ID_PROXIED_DEVICE_COUNT 0x0011
130 #define RDM_PARAM_ID_COMMS_STATUS 0x0015
131 #define RDM_PARAM_ID_QUEUED_MESSAGE 0x0020
132 #define RDM_PARAM_ID_STATUS_MESSAGES 0x0030
133 #define RDM_PARAM_ID_STATUS_ID_DESCRIPTION 0x0031
134 #define RDM_PARAM_ID_CLEAR_STATUS_ID 0x0032
135 #define RDM_PARAM_ID_SUB_DEVICE_STATUS_REPORT_THRESHOLD 0x0033
136 #define RDM_PARAM_ID_SUPPORTED_PARAMETERS 0x0050
137 #define RDM_PARAM_ID_PARAMETER_DESCRIPTION 0x0051
138 #define RDM_PARAM_ID_DEVICE_INFO 0x0060
139 #define RDM_PARAM_ID_PRODUCT_DETAIL_ID_LIST 0x0070
140 #define RDM_PARAM_ID_DEVICE_MODEL_DESCRIPTION 0x0080
141 #define RDM_PARAM_ID_MANUFACTURER_LABEL 0x0081
142 #define RDM_PARAM_ID_DEVICE_LABEL 0x0082
143 #define RDM_PARAM_ID_FACTORY_DEFAULTS 0x0090
144 #define RDM_PARAM_ID_LANGUAGE_CAPABILITIES 0x00A0
145 #define RDM_PARAM_ID_LANGUAGE 0x00B0
146 #define RDM_PARAM_ID_SOFTWARE_VERSION_LABEL 0x00C0
147 #define RDM_PARAM_ID_BOOT_SOFTWARE_VERSION_ID 0x00C1
148 #define RDM_PARAM_ID_BOOT_SOFTWARE_VERSION_LABEL 0x00C2
149 #define RDM_PARAM_ID_DMX_PERSONALITY 0x00E0
150 #define RDM_PARAM_ID_DMX_PERSONALITY_DESCRIPTION 0x00E1
151 #define RDM_PARAM_ID_DMX_START_ADDRESS 0x00F0
152 #define RDM_PARAM_ID_SLOT_INFO 0x0120
153 #define RDM_PARAM_ID_SLOT_DESCRIPTION 0x0121
154 #define RDM_PARAM_ID_DEFAULT_SLOT_VALUE 0x0122
156 #define RDM_PARAM_ID_DMX_BLOCK_ADDRESS 0x0140 /* E1.37-1 */
157 #define RDM_PARAM_ID_DMX_FAIL_MODE 0x0141
158 #define RDM_PARAM_ID_DMX_STARTUP_MODE 0x0142
160 #define RDM_PARAM_ID_SENSOR_DEFINITION 0x0200
161 #define RDM_PARAM_ID_SENSOR_VALUE 0x0201
162 #define RDM_PARAM_ID_RECORD_SENSORS 0x0202
164 #define RDM_PARAM_ID_DIMMER_INFO 0x0340 /* E1.37-1 */
165 #define RDM_PARAM_ID_MINIMUM_LEVEL 0x0341
166 #define RDM_PARAM_ID_MAXIMUM_LEVEL 0x0342
167 #define RDM_PARAM_ID_CURVE 0x0343
168 #define RDM_PARAM_ID_CURVE_DESCRIPTION 0x0344
169 #define RDM_PARAM_ID_OUTPUT_RESPONSE_TIME 0x0345
170 #define RDM_PARAM_ID_OUTPUT_RESPONSE_TIME_DESCRIPTION 0x0346
171 #define RDM_PARAM_ID_MODULATION_FREQUENCY 0x0347
172 #define RDM_PARAM_ID_MODULATION_FREQUENCY_DESCRIPTION 0x0348
174 #define RDM_PARAM_ID_DEVICE_HOURS 0x0400
175 #define RDM_PARAM_ID_LAMP_HOURS 0x0401
176 #define RDM_PARAM_ID_LAMP_STRIKES 0x0402
177 #define RDM_PARAM_ID_LAMP_STATE 0x0403
178 #define RDM_PARAM_ID_LAMP_ON_MODE 0x0404
179 #define RDM_PARAM_ID_DEVICE_POWER_CYCLES 0x0405
181 #define RDM_PARAM_ID_BURN_IN 0x0440 /* E1.37-1 */
183 #define RDM_PARAM_ID_DISPLAY_INVERT 0x0500
184 #define RDM_PARAM_ID_DISPLAY_LEVEL 0x0501
185 #define RDM_PARAM_ID_PAN_INVERT 0x0600
186 #define RDM_PARAM_ID_TILT_INVERT 0x0601
187 #define RDM_PARAM_ID_PAN_TILT_SWAP 0x0602
188 #define RDM_PARAM_ID_REAL_TIME_CLOCK 0x0603
190 #define RDM_PARAM_ID_LOCK_PIN 0x0640 /* E1.37-1 */
191 #define RDM_PARAM_ID_LOCK_STATE 0x0641
192 #define RDM_PARAM_ID_LOCK_STATE_DESCRIPTION 0x0642
194 #define RDM_PARAM_ID_LIST_INTERFACES 0x0700 /* E1.37-2 */
195 #define RDM_PARAM_ID_INTERFACE_LABEL 0x0701
196 #define RDM_PARAM_ID_INTERFACE_HARDWARE_ADDRESS_TYPE1 0x0702
197 #define RDM_PARAM_ID_IPV4_DHCP_MODE 0x0703
198 #define RDM_PARAM_ID_IPV4_ZEROCONF_MODE 0x0704
199 #define RDM_PARAM_ID_IPV4_CURRENT_ADDRESS 0x0705
200 #define RDM_PARAM_ID_IPV4_STATIC_ADDRESS 0x0706
201 #define RDM_PARAM_ID_INTERFACE_RENEW_DHCP 0x0707
202 #define RDM_PARAM_ID_INTERFACE_RELEASE_DHCP 0x0708
203 #define RDM_PARAM_ID_INTERFACE_APPLY_CONFIGURATION 0x0709
204 #define RDM_PARAM_ID_IPV4_DEFAULT_ROUTE 0x070A
205 #define RDM_PARAM_ID_DNS_IPV4_NAME_SERVER 0x070B
206 #define RDM_PARAM_ID_DNS_HOSTNAME 0x070C
207 #define RDM_PARAM_ID_DNS_DOMAIN_NAME 0x070D
209 #define RDM_PARAM_ID_COMPONENT_SCOPE 0x0800 /* E1.33 */
210 #define RDM_PARAM_ID_SEARCH_DOMAIN 0x0801 /* E1.33 */
211 #define RDM_PARAM_ID_TCP_COMMS_STATUS 0x0802 /* E1.33 */
212 #define RDM_PARAM_ID_BROKER_STATUS 0x0803 /* E1.33 */
214 #define RDM_PARAM_ID_ENDPOINT_LIST 0x0900 /* E1.37-7 */
215 #define RDM_PARAM_ID_ENDPOINT_LIST_CHANGE 0x0901
216 #define RDM_PARAM_ID_IDENTIFY_ENDPOINT 0x0902
217 #define RDM_PARAM_ID_ENDPOINT_TO_UNIVERSE 0x0903
218 #define RDM_PARAM_ID_ENDPOINT_MODE 0x0904
219 #define RDM_PARAM_ID_ENDPOINT_LABEL 0x0905
220 #define RDM_PARAM_ID_RDM_TRAFFIC_ENABLE 0x0906
221 #define RDM_PARAM_ID_DISCOVERY_STATE 0x0907
222 #define RDM_PARAM_ID_BACKGROUND_DISCOVERY 0x0908
223 #define RDM_PARAM_ID_ENDPOINT_TIMING 0x0909
224 #define RDM_PARAM_ID_ENDPOINT_TIMING_DESCRIPTION 0x090A
225 #define RDM_PARAM_ID_ENDPOINT_RESPONDERS 0x090B
226 #define RDM_PARAM_ID_ENDPOINT_RESPONDER_LIST_CHANGE 0x090C
227 #define RDM_PARAM_ID_BINDING_CONTROL_FIELDS 0x090D
228 #define RDM_PARAM_ID_BACKGROUND_QUEUED_STATUS_POLICY 0x090E
229 #define RDM_PARAM_ID_BACKGROUND_QUEUED_STATUS_POLICY_DESCRIPTION 0x090F
231 #define RDM_PARAM_ID_IDENTIFY_DEVICE 0x1000
232 #define RDM_PARAM_ID_RESET_DEVICE 0x1001
233 #define RDM_PARAM_ID_POWER_STATE 0x1010
234 #define RDM_PARAM_ID_PERFORM_SELFTEST 0x1020
235 #define RDM_PARAM_ID_SELF_TEST_DESCRIPTION 0x1021
236 #define RDM_PARAM_ID_CAPTURE_PRESET 0x1030
237 #define RDM_PARAM_ID_PRESET_PLAYBACK 0x1031
239 #define RDM_PARAM_ID_IDENTIFY_MODE 0x1040 /* E1.37-1 */
240 #define RDM_PARAM_ID_PRESET_INFO 0x1041
241 #define RDM_PARAM_ID_PRESET_STATUS 0x1042
242 #define RDM_PARAM_ID_PRESET_MERGEMODE 0x1043
243 #define RDM_PARAM_ID_POWER_ON_SELF_TEST 0x1044
245 const value_string rdm_param_id_vals
[] = {
246 { RDM_PARAM_ID_DISC_UNIQUE_BRANCH
, "Discovery Unique Branch" },
247 { RDM_PARAM_ID_DISC_MUTE
, "Discovery Mute" },
248 { RDM_PARAM_ID_DISC_UN_MUTE
, "Discovery Un-Mute" },
249 { RDM_PARAM_ID_PROXIED_DEVICES
, "Proxied Devices" },
250 { RDM_PARAM_ID_PROXIED_DEVICE_COUNT
, "Proxied Device Count" },
251 { RDM_PARAM_ID_COMMS_STATUS
, "Communication Status" },
252 { RDM_PARAM_ID_QUEUED_MESSAGE
, "Queued Messages" },
253 { RDM_PARAM_ID_STATUS_MESSAGES
, "Status Messages" },
254 { RDM_PARAM_ID_STATUS_ID_DESCRIPTION
, "Status ID Description" },
255 { RDM_PARAM_ID_CLEAR_STATUS_ID
, "Clear Status ID" },
256 { RDM_PARAM_ID_SUB_DEVICE_STATUS_REPORT_THRESHOLD
, "Device Status Reporting Threshold" },
257 { RDM_PARAM_ID_SUPPORTED_PARAMETERS
, "Supported Parameters" },
258 { RDM_PARAM_ID_PARAMETER_DESCRIPTION
, "Parameter Description" },
259 { RDM_PARAM_ID_DEVICE_INFO
, "Device Info" },
260 { RDM_PARAM_ID_PRODUCT_DETAIL_ID_LIST
, "Product Detail ID List" },
261 { RDM_PARAM_ID_DEVICE_MODEL_DESCRIPTION
, "Device Model Description" },
262 { RDM_PARAM_ID_MANUFACTURER_LABEL
, "Manufacturer Label" },
263 { RDM_PARAM_ID_DEVICE_LABEL
, "Device Label" },
264 { RDM_PARAM_ID_FACTORY_DEFAULTS
, "Factory Defaults" },
265 { RDM_PARAM_ID_LANGUAGE_CAPABILITIES
, "Language Capabilities" },
266 { RDM_PARAM_ID_LANGUAGE
, "Language" },
267 { RDM_PARAM_ID_SOFTWARE_VERSION_LABEL
, "Software Version Label" },
268 { RDM_PARAM_ID_BOOT_SOFTWARE_VERSION_ID
, "Boot Software Version ID" },
269 { RDM_PARAM_ID_BOOT_SOFTWARE_VERSION_LABEL
, "Boot Software Version Label" },
270 { RDM_PARAM_ID_DMX_PERSONALITY
, "DMX Personality" },
271 { RDM_PARAM_ID_DMX_PERSONALITY_DESCRIPTION
, "DMX Personality Description" },
272 { RDM_PARAM_ID_DMX_START_ADDRESS
, "DMX Start Address" },
273 { RDM_PARAM_ID_SLOT_INFO
, "Slot Info" },
274 { RDM_PARAM_ID_SLOT_DESCRIPTION
, "Slot Description" },
275 { RDM_PARAM_ID_DEFAULT_SLOT_VALUE
, "Default Slot Value" },
277 { RDM_PARAM_ID_DMX_BLOCK_ADDRESS
, "DMX Block Address" }, /* E1.37-1 */
278 { RDM_PARAM_ID_DMX_FAIL_MODE
, "DMX Fail Mode" },
279 { RDM_PARAM_ID_DMX_STARTUP_MODE
, "DMX Startup Mode" },
281 { RDM_PARAM_ID_SENSOR_DEFINITION
, "Sensor Definition" },
282 { RDM_PARAM_ID_SENSOR_VALUE
, "Sensor Value" },
283 { RDM_PARAM_ID_RECORD_SENSORS
, "Record Sensors" },
285 { RDM_PARAM_ID_DIMMER_INFO
, "Dimmer Info" }, /* E1.37-1 */
286 { RDM_PARAM_ID_MINIMUM_LEVEL
, "Minimum Level" },
287 { RDM_PARAM_ID_MAXIMUM_LEVEL
, "Maximum Level" },
288 { RDM_PARAM_ID_CURVE
, "Curve" },
289 { RDM_PARAM_ID_CURVE_DESCRIPTION
, "Curve Description" },
290 { RDM_PARAM_ID_OUTPUT_RESPONSE_TIME
, "Output Response Time" },
291 { RDM_PARAM_ID_OUTPUT_RESPONSE_TIME_DESCRIPTION
, "Output Response Time Description" },
292 { RDM_PARAM_ID_MODULATION_FREQUENCY
, "Modulation Frequency" },
293 { RDM_PARAM_ID_MODULATION_FREQUENCY_DESCRIPTION
, "Modulation Frequency Description" },
295 { RDM_PARAM_ID_DEVICE_HOURS
, "Device Hours" },
296 { RDM_PARAM_ID_LAMP_HOURS
, "Lamp Hours" },
297 { RDM_PARAM_ID_LAMP_STRIKES
, "Lamp Strikes" },
298 { RDM_PARAM_ID_LAMP_STATE
, "Lamp State" },
299 { RDM_PARAM_ID_LAMP_ON_MODE
, "Lamp On Mode" },
300 { RDM_PARAM_ID_DEVICE_POWER_CYCLES
, "Device Power Cycles" },
302 { RDM_PARAM_ID_BURN_IN
, "Burn In" }, /* E1.37-1 */
304 { RDM_PARAM_ID_DISPLAY_INVERT
, "Display Invert" },
305 { RDM_PARAM_ID_DISPLAY_LEVEL
, "Display Level" },
306 { RDM_PARAM_ID_PAN_INVERT
, "Pan Invert" },
307 { RDM_PARAM_ID_TILT_INVERT
, "Tilt Invert" },
308 { RDM_PARAM_ID_PAN_TILT_SWAP
, "Pan Tilt Swap" },
309 { RDM_PARAM_ID_REAL_TIME_CLOCK
, "Real Time Clock" },
311 { RDM_PARAM_ID_LOCK_PIN
, "Lock PIN" }, /* E1.37-1 */
312 { RDM_PARAM_ID_LOCK_STATE
, "Lock State" },
313 { RDM_PARAM_ID_LOCK_STATE_DESCRIPTION
, "Lock State Description" },
315 { RDM_PARAM_ID_LIST_INTERFACES
, "List Interfaces" }, /* E1.37-2 */
316 { RDM_PARAM_ID_INTERFACE_LABEL
, "Interface Label" },
317 { RDM_PARAM_ID_INTERFACE_HARDWARE_ADDRESS_TYPE1
, "Interface Hardware Address Type 1" },
318 { RDM_PARAM_ID_IPV4_DHCP_MODE
, "IPv4 DHCP Mode" },
319 { RDM_PARAM_ID_IPV4_ZEROCONF_MODE
, "IPv4 Zero Configuration Mode" },
320 { RDM_PARAM_ID_IPV4_CURRENT_ADDRESS
, "IPv4 Current Address" },
321 { RDM_PARAM_ID_IPV4_STATIC_ADDRESS
, "IPv4 Static Address" },
322 { RDM_PARAM_ID_INTERFACE_RENEW_DHCP
, "Interface Renew DHCP" },
323 { RDM_PARAM_ID_INTERFACE_RELEASE_DHCP
, "Interface Release DHCP" },
324 { RDM_PARAM_ID_INTERFACE_APPLY_CONFIGURATION
, "Interface Apply Configuration" },
325 { RDM_PARAM_ID_IPV4_DEFAULT_ROUTE
, "IPv4 Default Route" },
326 { RDM_PARAM_ID_DNS_IPV4_NAME_SERVER
, "DNS IPv4 Name Server" },
327 { RDM_PARAM_ID_DNS_HOSTNAME
, "DNS Hostname" },
328 { RDM_PARAM_ID_DNS_DOMAIN_NAME
, "DNS Domain Name" },
330 { RDM_PARAM_ID_COMPONENT_SCOPE
, "Component Scope" },
331 { RDM_PARAM_ID_SEARCH_DOMAIN
, "Search Domain" },
332 { RDM_PARAM_ID_TCP_COMMS_STATUS
, "TCP Communication Status" },
333 { RDM_PARAM_ID_BROKER_STATUS
, "Broker Status" },
335 { RDM_PARAM_ID_ENDPOINT_LIST
, "Endpoint List" }, /* E1.37-7 */
336 { RDM_PARAM_ID_ENDPOINT_LIST_CHANGE
, "Endpoint List Change" },
337 { RDM_PARAM_ID_IDENTIFY_ENDPOINT
, "Identify Endpoint" },
338 { RDM_PARAM_ID_ENDPOINT_TO_UNIVERSE
, "Endpoint To Universe" },
339 { RDM_PARAM_ID_ENDPOINT_MODE
, "Endpoint Mode" },
340 { RDM_PARAM_ID_ENDPOINT_LABEL
, "Endpoint Label" },
341 { RDM_PARAM_ID_RDM_TRAFFIC_ENABLE
, "RDM Traffic Enable" },
342 { RDM_PARAM_ID_DISCOVERY_STATE
, "Discovery State" },
343 { RDM_PARAM_ID_BACKGROUND_DISCOVERY
, "Background Discovery" },
344 { RDM_PARAM_ID_ENDPOINT_TIMING
, "Endpoint Timing" },
345 { RDM_PARAM_ID_ENDPOINT_TIMING_DESCRIPTION
, "Endpoint Timing Description" },
346 { RDM_PARAM_ID_ENDPOINT_RESPONDERS
, "Endpoint Responders" },
347 { RDM_PARAM_ID_ENDPOINT_RESPONDER_LIST_CHANGE
, "Endpoint Responder List Change" },
348 { RDM_PARAM_ID_BINDING_CONTROL_FIELDS
, "Binding Control Fields" },
349 { RDM_PARAM_ID_BACKGROUND_QUEUED_STATUS_POLICY
, "Background Queued Status Policy" },
350 { RDM_PARAM_ID_BACKGROUND_QUEUED_STATUS_POLICY_DESCRIPTION
, "Background Queued Status Policy Description" },
352 { RDM_PARAM_ID_IDENTIFY_DEVICE
, "Identify Device" },
353 { RDM_PARAM_ID_RESET_DEVICE
, "Reset Device" },
354 { RDM_PARAM_ID_POWER_STATE
, "Power State" },
355 { RDM_PARAM_ID_PERFORM_SELFTEST
, "Perform Self Test" },
356 { RDM_PARAM_ID_SELF_TEST_DESCRIPTION
, "Self Test Description" },
357 { RDM_PARAM_ID_CAPTURE_PRESET
, "Capture Preset" },
358 { RDM_PARAM_ID_PRESET_PLAYBACK
, "Preset Playback" },
360 { RDM_PARAM_ID_IDENTIFY_MODE
, "Identify Mode" }, /* E1.37-1 */
361 { RDM_PARAM_ID_PRESET_INFO
, "Preset Info" },
362 { RDM_PARAM_ID_PRESET_STATUS
, "Preset Status" },
363 { RDM_PARAM_ID_PRESET_MERGEMODE
, "Preset Merge Mode" },
364 { RDM_PARAM_ID_POWER_ON_SELF_TEST
, "Power On Self Test" },
369 value_string_ext rdm_param_id_vals_ext
= VALUE_STRING_EXT_INIT(rdm_param_id_vals
);
371 /* manufacturer IDs */
372 #define RDM_MANUFACTURER_ID_ETC 0x6574
374 #define RDM_STATUS_NONE 0x00
375 #define RMD_STATUS_GET_LAST_MESSAGE 0x01
376 #define RDM_STATUS_ADVISORY 0x02
377 #define RDM_STATUS_WARNING 0x03
378 #define RDM_STATUS_ERROR 0x04
380 static const value_string rdm_status_vals
[] = {
381 { RDM_STATUS_NONE
, "None" },
382 { RMD_STATUS_GET_LAST_MESSAGE
, "Get Last Message" },
383 { RDM_STATUS_ADVISORY
, "Advisory" },
384 { RDM_STATUS_WARNING
, "Warning" },
385 { RDM_STATUS_ERROR
, "Error" },
389 #define RDM_PREFIX_NONE 0x00
390 #define RDM_PREFIX_DECI 0x01
391 #define RDM_PREFIX_CENTI 0x02
392 #define RDM_PREFIX_MILLI 0x03
393 #define RDM_PREFIX_MICRO 0x04
394 #define RDM_PREFIX_NANO 0x05
395 #define RDM_PREFIX_PICO 0x06
396 #define RDM_PREFIX_FEMPTO 0x07
397 #define RDM_PREFIX_ATTO 0x08
398 #define RDM_PREFIX_ZEPTO 0x09
399 #define RDM_PREFIX_YOCTO 0x0A
400 #define RDM_PREFIX_DECA 0x11
401 #define RDM_PREFIX_HECTO 0x12
402 #define RDM_PREFIX_KILO 0x13
403 #define RDM_PREFIX_MEGA 0x14
404 #define RDM_PREFIX_GIGA 0x15
405 #define RDM_PREFIX_TERRA 0x16
406 #define RDM_PREFIX_PETA 0x17
407 #define RDM_PREFIX_EXA 0x18
408 #define RDM_PREFIX_ZETTA 0x19
409 #define RDM_PREFIX_YOTTA 0x1A
411 static const value_string rdm_prefix_vals
[] = {
412 { RDM_PREFIX_NONE
, "NONE (x1)" },
413 { RDM_PREFIX_DECI
, "deci (x10^-1)" },
414 { RDM_PREFIX_CENTI
, "centi (x10^-2)" },
415 { RDM_PREFIX_MILLI
, "milli (x10^-3)" },
416 { RDM_PREFIX_MICRO
, "micro (x10^-6)" },
417 { RDM_PREFIX_NANO
, "nano (x10^-9)" },
418 { RDM_PREFIX_PICO
, "pico (x10^-12)" },
419 { RDM_PREFIX_FEMPTO
, "fempto (x10^-15)" },
420 { RDM_PREFIX_ATTO
, "atto (x10^-18)" },
421 { RDM_PREFIX_ZEPTO
, "zepto (x10^-21)" },
422 { RDM_PREFIX_YOCTO
, "yocto (x10^-24)" },
423 { RDM_PREFIX_DECA
, "deca (x10^1)" },
424 { RDM_PREFIX_HECTO
, "hecto (x10^2)" },
425 { RDM_PREFIX_KILO
, "kilo (x10^3)" },
426 { RDM_PREFIX_MEGA
, "mega (x10^6)" },
427 { RDM_PREFIX_GIGA
, "giga (x10^9)" },
428 { RDM_PREFIX_TERRA
, "terra (x10^12)" },
429 { RDM_PREFIX_PETA
, "peta (x10^15)" },
430 { RDM_PREFIX_EXA
, "exa (x10^18)" },
431 { RDM_PREFIX_ZETTA
, "zetta (x10^21)" },
432 { RDM_PREFIX_YOTTA
, "yotta (x10^24)" },
435 static value_string_ext rdm_prefix_vals_ext
= VALUE_STRING_EXT_INIT(rdm_prefix_vals
);
437 #define RDM_UNITS_NONE 0x00
438 #define RDM_UNITS_CENTIGRADE 0x01
439 #define RDM_UNITS_VOLTS_DC 0x02
440 #define RDM_UNITS_VOLTS_AC_PEAK 0x03
441 #define RDM_UNITS_VOLTS_AC_RMS 0x04
442 #define RDM_UNITS_AMPERE_DC 0x05
443 #define RDM_UNITS_AMPERE_AC_PEAK 0x06
444 #define RDM_UNITS_AMPERE_AC_RMS 0x07
445 #define RDM_UNITS_HERTZ 0x08
446 #define RDM_UNITS_OHM 0x09
447 #define RDM_UNITS_WATT 0x0A
448 #define RDM_UNITS_KILOGRAM 0x0B
449 #define RDM_UNITS_METERS 0x0C
450 #define RDM_UNITS_METERS_SQUARED 0x0D
451 #define RDM_UNITS_METERS_CUBED 0x0E
452 #define RDM_UNITS_KILOGRAMMES_PER_METER_CUBED 0x0F
453 #define RDM_UNITS_METERS_PER_SECOND 0x10
454 #define RDM_UNITS_METERS_PER_SECOND_SQUARED 0x11
455 #define RDM_UNITS_NEWTON 0x12
456 #define RDM_UNITS_JOULE 0x13
457 #define RDM_UNITS_PASCAL 0x14
458 #define RDM_UNITS_SECOND 0x15
459 #define RDM_UNITS_DEGREE 0x16
460 #define RDM_UNITS_STERADIAN 0x17
461 #define RDM_UNITS_CANDELA 0x18
462 #define RDM_UNITS_LUMEN 0x19
463 #define RDM_UNITS_LUX 0x1A
464 #define RDM_UNITS_IRE 0x1B
465 #define RDM_UNITS_BYTE 0x1C
467 static const value_string rdm_unit_vals
[] = {
468 { RDM_UNITS_NONE
, "NONE" },
469 { RDM_UNITS_CENTIGRADE
, "Centigrade" },
470 { RDM_UNITS_VOLTS_DC
, "Volts DC" },
471 { RDM_UNITS_VOLTS_AC_PEAK
, "Volts AC Peak" },
472 { RDM_UNITS_VOLTS_AC_RMS
, "Volts AC RMS" },
473 { RDM_UNITS_AMPERE_DC
, "Ampere DC" },
474 { RDM_UNITS_AMPERE_AC_PEAK
, "Ampere AC Peak" },
475 { RDM_UNITS_AMPERE_AC_RMS
, "Ampere AC RMS" },
476 { RDM_UNITS_HERTZ
, "Hertz" },
477 { RDM_UNITS_OHM
, "Ohm" },
478 { RDM_UNITS_WATT
, "Watt" },
479 { RDM_UNITS_KILOGRAM
, "Kilogram" },
480 { RDM_UNITS_METERS
, "Meters" },
481 { RDM_UNITS_METERS_SQUARED
, "Meters Squared" },
482 { RDM_UNITS_METERS_CUBED
, "Meters Cubed" },
483 { RDM_UNITS_KILOGRAMMES_PER_METER_CUBED
, "Kilogrammes per Meter Cubed" },
484 { RDM_UNITS_METERS_PER_SECOND
, "Meters per Second" },
485 { RDM_UNITS_METERS_PER_SECOND_SQUARED
, "Meters per Second Squared" },
486 { RDM_UNITS_NEWTON
, "Newton" },
487 { RDM_UNITS_JOULE
, "Joule" },
488 { RDM_UNITS_PASCAL
, "Pascal" },
489 { RDM_UNITS_SECOND
, "Second" },
490 { RDM_UNITS_DEGREE
, "Degree" },
491 { RDM_UNITS_STERADIAN
, "Steradian" },
492 { RDM_UNITS_CANDELA
, "Candela" },
493 { RDM_UNITS_LUMEN
, "Lumen" },
494 { RDM_UNITS_LUX
, "Lux" },
495 { RDM_UNITS_IRE
, "Ire" },
496 { RDM_UNITS_BYTE
, "Byte" },
499 static value_string_ext rdm_unit_vals_ext
= VALUE_STRING_EXT_INIT(rdm_unit_vals
);
501 #define RDM_SENS_TEMPERATURE 0x00
502 #define RDM_SENS_VOLTAGE 0x01
503 #define RDM_SENS_CURRENT 0x02
504 #define RDM_SENS_FREQUENCY 0x03
505 #define RDM_SENS_RESISTANCE 0x04
506 #define RDM_SENS_POWER 0x05
507 #define RDM_SENS_MASS 0x06
508 #define RDM_SENS_LENGTH 0x07
509 #define RDM_SENS_AREA 0x08
510 #define RDM_SENS_VOLUME 0x09
511 #define RDM_SENS_DENSITY 0x0A
512 #define RDM_SENS_VELOCITY 0x0B
513 #define RDM_SENS_ACCELERATION 0x0C
514 #define RDM_SENS_FORCE 0x0D
515 #define RDM_SENS_ENERGY 0x0E
516 #define RDM_SENS_PRESSURE 0x0F
517 #define RDM_SENS_TIME 0x10
518 #define RDM_SENS_ANGLE 0x11
519 #define RDM_SENS_POSITION_X 0x12
520 #define RDM_SENS_POSITION_Y 0x13
521 #define RDM_SENS_POSITION_Z 0x14
522 #define RDM_SENS_ANGULAR_VELOCITY 0x15
523 #define RDM_SENS_LUMINOUS_INTENSITY 0x16
524 #define RDM_SENS_LUMINOUS_FLUX 0x17
525 #define RDM_SENS_ILLUMINANCE 0x18
526 #define RDM_SENS_CHROMINANCE_RED 0x19
527 #define RDM_SENS_CHROMINANCE_GREEN 0x1A
528 #define RDM_SENS_CHROMINANCE_BLUE 0x1B
529 #define RDM_SENS_CONTACTS 0x1C
530 #define RDM_SENS_MEMORY 0x1D
531 #define RDM_SENS_ITEMS 0x1E
532 #define RDM_SENS_HUMIDITY 0x1F
533 #define RDM_SENS_COUNTER_16BIT 0x20
534 #define RDM_SENS_OTHER 0x7F
536 static const value_string rdm_sensor_type_vals
[] = {
537 { RDM_SENS_TEMPERATURE
, "Temperature" },
538 { RDM_SENS_VOLTAGE
, "Voltage" },
539 { RDM_SENS_CURRENT
, "Current" },
540 { RDM_SENS_FREQUENCY
, "Frequency" },
541 { RDM_SENS_RESISTANCE
, "Resistance" },
542 { RDM_SENS_POWER
, "Power" },
543 { RDM_SENS_MASS
, "Mass" },
544 { RDM_SENS_LENGTH
, "Length" },
545 { RDM_SENS_AREA
, "Area" },
546 { RDM_SENS_VOLUME
, "Volume" },
547 { RDM_SENS_DENSITY
, "Density" },
548 { RDM_SENS_VELOCITY
, "Velocity" },
549 { RDM_SENS_ACCELERATION
, "Acceleration" },
550 { RDM_SENS_FORCE
, "Force" },
551 { RDM_SENS_ENERGY
, "Energy" },
552 { RDM_SENS_PRESSURE
, "Pressure" },
553 { RDM_SENS_TIME
, "Time" },
554 { RDM_SENS_ANGLE
, "Angle" },
555 { RDM_SENS_POSITION_X
, "Position X" },
556 { RDM_SENS_POSITION_Y
, "Position Y" },
557 { RDM_SENS_POSITION_Z
, "Position Z" },
558 { RDM_SENS_ANGULAR_VELOCITY
, "Angular Velocity" },
559 { RDM_SENS_LUMINOUS_INTENSITY
, "Luminous Intensity" },
560 { RDM_SENS_LUMINOUS_FLUX
, "Luminous Flux" },
561 { RDM_SENS_ILLUMINANCE
, "Illuminance" },
562 { RDM_SENS_CHROMINANCE_RED
, "Chrominance Red" },
563 { RDM_SENS_CHROMINANCE_GREEN
, "Chrominance Green" },
564 { RDM_SENS_CHROMINANCE_BLUE
, "Chrominance Blue" },
565 { RDM_SENS_CONTACTS
, "Contacts" },
566 { RDM_SENS_MEMORY
, "Memory" },
567 { RDM_SENS_ITEMS
, "Items" },
568 { RDM_SENS_HUMIDITY
, "Humidity" },
569 { RDM_SENS_COUNTER_16BIT
, "Counter 16bit" },
570 { RDM_SENS_OTHER
, "Other" },
573 static value_string_ext rdm_sensor_type_vals_ext
= VALUE_STRING_EXT_INIT(rdm_sensor_type_vals
);
575 #define RDM_PRODUCT_CATEGORY_NOT_DECLARED 0x0000
576 #define RDM_PRODUCT_CATEGORY_FIXTURE 0x0100
577 #define RDM_PRODUCT_CATEGORY_FIXTURE_FIXED 0x0101
578 #define RDM_PRODUCT_CATEGORY_FIXTURE_MOVING_YOKE 0x0102
579 #define RDM_PRODUCT_CATEGORY_FIXTURE_MOVING_MIRROR 0x0103
580 #define RDM_PRODUCT_CATEGORY_FIXTURE_OTHER 0x01FF
581 #define RDM_PRODUCT_CATEGORY_FIXTURE_ACCESSORY 0x0200
582 #define RDM_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_COLOR 0x0201
583 #define RDM_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_YOKE 0x0202
584 #define RDM_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_MIRROR 0x0203
585 #define RDM_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_EFFECT 0x0204
586 #define RDM_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_BEAM 0x0205
587 #define RDM_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_OTHER 0x02FF
588 #define RDM_PRODUCT_CATEGORY_PROJECTOR 0x0300
589 #define RDM_PRODUCT_CATEGORY_PROJECTOR_FIXED 0x0301
590 #define RDM_PRODUCT_CATEGORY_PROJECTOR_MOVING_YOKE 0x0302
591 #define RDM_PRODUCT_CATEGORY_PROJECTOR_MOVING_MIRROR 0x0303
592 #define RDM_PRODUCT_CATEGORY_PROJECTOR_OTHER 0x03FF
593 #define RDM_PRODUCT_CATEGORY_ATMOSPHERIC 0x0400
594 #define RDM_PRODUCT_CATEGORY_ATMOSPHERIC_EFFECT 0x0401
595 #define RDM_PRODUCT_CATEGORY_ATMOSPHERIC_PYRO 0x0402
596 #define RDM_PRODUCT_CATEGORY_ATMOSPHERIC_OTHER 0x04FF
597 #define RDM_PRODUCT_CATEGORY_DIMMER 0x0500
598 #define RDM_PRODUCT_CATEGORY_DIMMER_AC_INCANDESCENT 0x0501
599 #define RDM_PRODUCT_CATEGORY_DIMMER_AC_FLUORESCENT 0x0502
600 #define RDM_PRODUCT_CATEGORY_DIMMER_AC_COLDCATHODE 0x0503
601 #define RDM_PRODUCT_CATEGORY_DIMMER_AC_NONDIM 0x0504
602 #define RDM_PRODUCT_CATEGORY_DIMMER_AC_ELV 0x0505
603 #define RDM_PRODUCT_CATEGORY_DIMMER_AC_OTHER 0x0506
604 #define RDM_PRODUCT_CATEGORY_DIMMER_DC_LEVEL 0x0507
605 #define RDM_PRODUCT_CATEGORY_DIMMER_DC_PWM 0x0508
606 #define RDM_PRODUCT_CATEGORY_DIMMER_CS_LED 0x0509
607 #define RDM_PRODUCT_CATEGORY_DIMMER_OTHER 0x05FF
608 #define RDM_PRODUCT_CATEGORY_POWER 0x0600
609 #define RDM_PRODUCT_CATEGORY_POWER_CONTROL 0x0601
610 #define RDM_PRODUCT_CATEGORY_POWER_SOURCE 0x0602
611 #define RDM_PRODUCT_CATEGORY_POWER_OTHER 0x06FF
612 #define RDM_PRODUCT_CATEGORY_SCENIC 0x0700
613 #define RDM_PRODUCT_CATEGORY_SCENIC_DRIVE 0x0701
614 #define RDM_PRODUCT_CATEGORY_SCENIC_OTHER 0x07FF
615 #define RDM_PRODUCT_CATEGORY_DATA 0x0800
616 #define RDM_PRODUCT_CATEGORY_DATA_DISTRIBUTION 0x0801
617 #define RDM_PRODUCT_CATEGORY_DATA_CONVERSION 0x0802
618 #define RDM_PRODUCT_CATEGORY_DATA_OTHER 0x08FF
619 #define RDM_PRODUCT_CATEGORY_AV 0x0900
620 #define RDM_PRODUCT_CATEGORY_AV_AUDIO 0x0901
621 #define RDM_PRODUCT_CATEGORY_AV_VIDEO 0x0902
622 #define RDM_PRODUCT_CATEGORY_AV_OTHER 0x09FF
623 #define RDM_PRODUCT_CATEGORY_MONITOR 0x0A00
624 #define RDM_PRODUCT_CATEGORY_MONITOR_ACLINEPOWER 0x0A01
625 #define RDM_PRODUCT_CATEGORY_MONITOR_DCPOWER 0x0A02
626 #define RDM_PRODUCT_CATEGORY_MONITOR_ENVIRONMENTAL 0x0A03
627 #define RDM_PRODUCT_CATEGORY_MONITOR_OTHER 0x0AFF
628 #define RDM_PRODUCT_CATEGORY_CONTROL 0x7000
629 #define RDM_PRODUCT_CATEGORY_CONTROL_CONTROLLER 0x7001
630 #define RDM_PRODUCT_CATEGORY_CONTROL_BACKUPDEVICE 0x7002
631 #define RDM_PRODUCT_CATEGORY_CONTROL_OTHER 0x70FF
632 #define RDM_PRODUCT_CATEGORY_TEST 0x7100
633 #define RDM_PRODUCT_CATEGORY_TEST_EQUIPMENT 0x7101
634 #define RDM_PRODUCT_CATEGORY_TEST_EQUIPMENT_OTHER 0x71FF
635 #define RDM_PRODUCT_CATEGORY_OTHER 0x7FFF
637 static const value_string rdm_product_cat_vals
[] = {
638 { RDM_PRODUCT_CATEGORY_NOT_DECLARED
, "Not Declared" },
639 { RDM_PRODUCT_CATEGORY_FIXTURE
, "Fixture" },
640 { RDM_PRODUCT_CATEGORY_FIXTURE_FIXED
, "Fixture Fixed" },
641 { RDM_PRODUCT_CATEGORY_FIXTURE_MOVING_YOKE
, "Fixture Moving Yoke" },
642 { RDM_PRODUCT_CATEGORY_FIXTURE_MOVING_MIRROR
, "Fixture Moving Mirror" },
643 { RDM_PRODUCT_CATEGORY_FIXTURE_OTHER
, "Fixture Other" },
644 { RDM_PRODUCT_CATEGORY_FIXTURE_ACCESSORY
, "Fixture Accessory" },
645 { RDM_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_COLOR
, "Fixture Accessory Color" },
646 { RDM_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_YOKE
, "Fixture Accessory Yoke" },
647 { RDM_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_MIRROR
, "Fixture Accessory Mirror" },
648 { RDM_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_EFFECT
, "Fixture Accessory Effect" },
649 { RDM_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_BEAM
, "Fixture Accessory Beam" },
650 { RDM_PRODUCT_CATEGORY_FIXTURE_ACCESSORY_OTHER
, "Fixture Accessory Other" },
651 { RDM_PRODUCT_CATEGORY_PROJECTOR
, "Projector" },
652 { RDM_PRODUCT_CATEGORY_PROJECTOR_FIXED
, "Projector Fixed" },
653 { RDM_PRODUCT_CATEGORY_PROJECTOR_MOVING_YOKE
, "Projector Moving Yoke" },
654 { RDM_PRODUCT_CATEGORY_PROJECTOR_MOVING_MIRROR
, "Projector Moving Mirror" },
655 { RDM_PRODUCT_CATEGORY_PROJECTOR_OTHER
, "Projector Other" },
656 { RDM_PRODUCT_CATEGORY_ATMOSPHERIC
, "Atmospheric" },
657 { RDM_PRODUCT_CATEGORY_ATMOSPHERIC_EFFECT
, "Atmospheric Effect" },
658 { RDM_PRODUCT_CATEGORY_ATMOSPHERIC_PYRO
, "Atmospheric Pyro" },
659 { RDM_PRODUCT_CATEGORY_ATMOSPHERIC_OTHER
, "Atmospheric Other" },
660 { RDM_PRODUCT_CATEGORY_DIMMER
, "Dimmer" },
661 { RDM_PRODUCT_CATEGORY_DIMMER_AC_INCANDESCENT
, "Dimmer AC Incandescent" },
662 { RDM_PRODUCT_CATEGORY_DIMMER_AC_FLUORESCENT
, "Dimmer AC Fluorescent" },
663 { RDM_PRODUCT_CATEGORY_DIMMER_AC_COLDCATHODE
, "Dimmer AC Coldcathode" },
664 { RDM_PRODUCT_CATEGORY_DIMMER_AC_NONDIM
, "Dimmer AC Nondim" },
665 { RDM_PRODUCT_CATEGORY_DIMMER_AC_ELV
, "Dimmer AC ELV" },
666 { RDM_PRODUCT_CATEGORY_DIMMER_AC_OTHER
, "Dimmer AC Other" },
667 { RDM_PRODUCT_CATEGORY_DIMMER_DC_LEVEL
, "Dimmer DC Level" },
668 { RDM_PRODUCT_CATEGORY_DIMMER_DC_PWM
, "Dimmer DC PWM" },
669 { RDM_PRODUCT_CATEGORY_DIMMER_CS_LED
, "Dimmer CS LED" },
670 { RDM_PRODUCT_CATEGORY_DIMMER_OTHER
, "Dimmer Other" },
671 { RDM_PRODUCT_CATEGORY_POWER
, "Power" },
672 { RDM_PRODUCT_CATEGORY_POWER_CONTROL
, "Power Control" },
673 { RDM_PRODUCT_CATEGORY_POWER_SOURCE
, "Power Source" },
674 { RDM_PRODUCT_CATEGORY_POWER_OTHER
, "Power Other" },
675 { RDM_PRODUCT_CATEGORY_SCENIC
, "Scenic" },
676 { RDM_PRODUCT_CATEGORY_SCENIC_DRIVE
, "Scenic Drive" },
677 { RDM_PRODUCT_CATEGORY_SCENIC_OTHER
, "Scenic Other" },
678 { RDM_PRODUCT_CATEGORY_DATA
, "Data" },
679 { RDM_PRODUCT_CATEGORY_DATA_DISTRIBUTION
, "Data Distribution" },
680 { RDM_PRODUCT_CATEGORY_DATA_CONVERSION
, "Data Conversion" },
681 { RDM_PRODUCT_CATEGORY_DATA_OTHER
, "Data Other" },
682 { RDM_PRODUCT_CATEGORY_AV
, "AV" },
683 { RDM_PRODUCT_CATEGORY_AV_AUDIO
, "AV Audio" },
684 { RDM_PRODUCT_CATEGORY_AV_VIDEO
, "AV Video" },
685 { RDM_PRODUCT_CATEGORY_AV_OTHER
, "AV Other" },
686 { RDM_PRODUCT_CATEGORY_MONITOR
, "Monitor" },
687 { RDM_PRODUCT_CATEGORY_MONITOR_ACLINEPOWER
, "Monitor AC Line Power" },
688 { RDM_PRODUCT_CATEGORY_MONITOR_DCPOWER
, "Monitor DC Power" },
689 { RDM_PRODUCT_CATEGORY_MONITOR_ENVIRONMENTAL
, "Monitor Environmental" },
690 { RDM_PRODUCT_CATEGORY_MONITOR_OTHER
, "Monitor Other" },
691 { RDM_PRODUCT_CATEGORY_CONTROL
, "Control" },
692 { RDM_PRODUCT_CATEGORY_CONTROL_CONTROLLER
, "Control Controller" },
693 { RDM_PRODUCT_CATEGORY_CONTROL_BACKUPDEVICE
, "Control Backup Device" },
694 { RDM_PRODUCT_CATEGORY_CONTROL_OTHER
, "Control Other" },
695 { RDM_PRODUCT_CATEGORY_TEST
, "Test" },
696 { RDM_PRODUCT_CATEGORY_TEST_EQUIPMENT
, "Test Equipment" },
697 { RDM_PRODUCT_CATEGORY_TEST_EQUIPMENT_OTHER
, "Test Equipment Other" },
698 { RDM_PRODUCT_CATEGORY_OTHER
, "Other" },
701 static value_string_ext rdm_product_cat_vals_ext
= VALUE_STRING_EXT_INIT(rdm_product_cat_vals
);
704 #define RDM_PRESET_NOT_PROGRAMMED 0x00
705 #define RDM_PRESET_PROGRAMMED 0x01
706 #define RDM_PRESET_PROGRAMMED_READ_ONLY 0x02
708 static const value_string rdm_preset_programmed_vals
[] = {
709 { RDM_PRESET_NOT_PROGRAMMED
, "Preset Not Programmed" },
710 { RDM_PRESET_PROGRAMMED
, "Preset Programmed" },
711 { RDM_PRESET_PROGRAMMED_READ_ONLY
, "Preset Programmed Read Only" },
716 #define RDM_MERGEMODE_DEFAULT 0x00
717 #define RDM_MERGEMODE_HTP 0x01
718 #define RDM_MERGEMODE_LTP 0x02
719 #define RDM_MERGEMODE_DMX_ONLY 0x03
720 #define RDM_MERGEMODE_OTHER 0xFF
722 static const value_string rdm_mergemode_vals
[] = {
723 { RDM_MERGEMODE_DEFAULT
, "Mergemode Default" },
724 { RDM_MERGEMODE_HTP
, "Mergemode Highest Takes Precedence" },
725 { RDM_MERGEMODE_LTP
, "Mergemode Last Takes Precedence" },
726 { RDM_MERGEMODE_DMX_ONLY
, "Mergemode DMX Only" },
727 { RDM_MERGEMODE_OTHER
, "Mergemode Other" },
732 #define RDM_DHCP_STATUS_INACTIVE 0x00
733 #define RDM_DHCP_STATUS_ACTIVE 0x01
734 #define RDM_DHCP_STATUS_UNKNOWN 0x02
736 static const value_string rdm_dhcp_status_vals
[] = {
737 { RDM_DHCP_STATUS_INACTIVE
, "DHCP Status Inactive" },
738 { RDM_DHCP_STATUS_ACTIVE
, "DHCP Status Active" },
739 { RDM_DHCP_STATUS_UNKNOWN
, "DHCP Status Unknown" },
744 #define RDM_DISCOVERY_STATE_INCOMPLETE 0x00
745 #define RDM_DISCOVERY_STATE_INCREMENTAL 0x01
746 #define RDM_DISCOVERY_STATE_FULL 0x02
748 #define RDM_DISCOVERY_STATE_NOT_ACTIVE 0x04
750 static const value_string rdm_discovery_state_vals
[] = {
751 { RDM_DISCOVERY_STATE_INCOMPLETE
, "Incomplete" },
752 { RDM_DISCOVERY_STATE_INCREMENTAL
, "Incremental" },
753 { RDM_DISCOVERY_STATE_FULL
, "Full" },
754 { RDM_DISCOVERY_STATE_NOT_ACTIVE
, "Not Active" },
759 #define RDM_ENDPOINT_MODE_DISABLED 0x00
760 #define RDM_ENDPOINT_MODE_INPUT 0x01
761 #define RDM_ENDPOINT_MODE_OUTPUT 0x02
763 static const value_string rdm_endpoint_mode_vals
[] = {
764 { RDM_ENDPOINT_MODE_DISABLED
, "Disabled" },
765 { RDM_ENDPOINT_MODE_INPUT
, "Input" },
766 { RDM_ENDPOINT_MODE_OUTPUT
, "Output" },
771 #define RDM_ENDPOINT_TYPE_VIRTUAL 0x00
772 #define RDM_ENDPOINT_TYPE_PHYSICAL 0x01
774 static const value_string rdm_endpoint_type_vals
[] = {
775 { RDM_ENDPOINT_TYPE_VIRTUAL
, "Virtual" },
776 { RDM_ENDPOINT_TYPE_PHYSICAL
, "Physical" },
780 /* E1.33 Table A-17 Static Config Types for Component Scope Messages */
781 #define RDMNET_COMPONENT_SCOPE_NO_STATIC_CONFIG 0x00
782 #define RDMNET_COMPONENT_SCOPE_STATIC_CONFIG_IPV4 0x01
783 #define RDMNET_COMPONENT_SCOPE_STATIC_CONFIG_IPV6 0x02
785 static const value_string rdmnet_component_scope_static_config_type_vals
[] = {
786 { RDMNET_COMPONENT_SCOPE_NO_STATIC_CONFIG
, "No Static Config" },
787 { RDMNET_COMPONENT_SCOPE_STATIC_CONFIG_IPV4
, "Static Config IPv4" },
788 { RDMNET_COMPONENT_SCOPE_STATIC_CONFIG_IPV6
, "Static Config IPv6" },
791 /* E1.33 Table A-18 Broker States for Broker Status Messages */
792 #define RDMNET_BROKER_STATE_DISABLED 0x00
793 #define RDMNET_BROKER_STATE_ACTIVE 0x01
794 #define RDMNET_BROKER_STATE_STANDBY 0x02
796 static const value_string rdmnet_broker_status_states_vals
[] = {
797 { RDMNET_BROKER_STATE_DISABLED
, "Broker State Disabled" },
798 { RDMNET_BROKER_STATE_ACTIVE
, "Broker State Active" },
799 { RDMNET_BROKER_STATE_STANDBY
, "Broker State Standby" },
803 static const value_string true_false_vals
[] = {
809 static const value_string enabled_disabled_vals
[] = {
810 { 0x00, "Disabled" },
815 static const value_string on_off_vals
[] = {
821 static int proto_rdm
;
823 static int hf_rdm_sub_start_code
;
824 static int hf_rdm_message_length
;
825 static int hf_rdm_dest_uid
;
826 static int hf_rdm_src_uid
;
827 static int hf_rdm_transaction_number
;
828 static int hf_rdm_port_id
;
829 static int hf_rdm_response_type
;
830 static int hf_rdm_message_count
;
831 static int hf_rdm_sub_device
;
832 static int hf_rdm_mdb
;
833 static int hf_rdm_command_class
;
834 static int hf_rdm_parameter_id
;
835 static int hf_rdm_parameter_data_length
;
836 static int hf_rdm_parameter_data
;
837 static int hf_rdm_parameter_data_raw
;
838 static int hf_rdm_intron
;
839 static int hf_rdm_checksum
;
840 static int hf_rdm_checksum_status
;
841 static int hf_rdm_trailer
;
843 static int hf_rdm_pd_ack_timer_estimated_response_time
;
844 static int hf_rdm_pd_ack_overflow_raw_data
;
845 static int hf_rdm_pd_nack_reason_code
;
847 static int hf_rdm_pd_device_label
;
849 static int hf_rdm_pd_manu_label
;
851 static int hf_rdm_pd_dmx_start_address
;
853 static int hf_rdm_pd_queued_message_status
;
855 static int hf_rdm_pd_sensor_nr
;
856 static int hf_rdm_pd_sensor_type
;
857 static int hf_rdm_pd_sensor_unit
;
858 static int hf_rdm_pd_sensor_prefix
;
859 static int hf_rdm_pd_sensor_value_pres
;
860 static int hf_rdm_pd_sensor_value_low
;
861 static int hf_rdm_pd_sensor_value_high
;
862 static int hf_rdm_pd_sensor_value_rec
;
864 static int hf_rdm_pd_sensor_range_min_value
;
865 static int hf_rdm_pd_sensor_range_max_value
;
866 static int hf_rdm_pd_sensor_normal_min_value
;
867 static int hf_rdm_pd_sensor_normal_max_value
;
868 static int hf_rdm_pd_sensor_recorded_value_support
;
869 static int hf_rdm_pd_sensor_description
;
871 static int hf_rdm_pd_device_hours
;
872 static int hf_rdm_pd_lamp_hours
;
873 static int hf_rdm_pd_lamp_strikes
;
876 static int hf_rdm_pd_proto_vers
;
877 static int hf_rdm_pd_device_model_id
;
878 static int hf_rdm_pd_product_cat
;
879 static int hf_rdm_pd_software_vers_id
;
880 static int hf_rdm_pd_dmx_footprint
;
881 static int hf_rdm_pd_dmx_pers_current
;
882 static int hf_rdm_pd_dmx_pers_total
;
883 static int hf_rdm_pd_sub_device_count
;
884 static int hf_rdm_pd_sensor_count
;
886 static int hf_rdm_pd_device_model_description
;
888 static int hf_rdm_pd_disc_unique_branch_lb_uid
;
889 static int hf_rdm_pd_disc_unique_branch_ub_uid
;
890 static int hf_rdm_pd_disc_mute_control_field
;
891 static int hf_rdm_pd_disc_mute_binding_uid
;
892 static int hf_rdm_pd_disc_unmute_control_field
;
893 static int hf_rdm_pd_disc_unmute_binding_uid
;
894 static int hf_rdm_pd_proxied_devices_uid
;
895 static int hf_rdm_pd_proxied_device_count
;
896 static int hf_rdm_pd_proxied_device_list_change
;
897 static int hf_rdm_pd_real_time_clock_year
;
898 static int hf_rdm_pd_real_time_clock_month
;
899 static int hf_rdm_pd_real_time_clock_day
;
900 static int hf_rdm_pd_real_time_clock_hour
;
901 static int hf_rdm_pd_real_time_clock_minute
;
902 static int hf_rdm_pd_real_time_clock_second
;
903 static int hf_rdm_pd_lamp_state
;
904 static int hf_rdm_pd_lamp_on_mode
;
905 static int hf_rdm_pd_device_power_cycles
;
906 static int hf_rdm_pd_display_invert
;
907 static int hf_rdm_pd_display_level
;
908 static int hf_rdm_pd_pan_invert
;
909 static int hf_rdm_pd_tilt_invert
;
910 static int hf_rdm_pd_tilt_swap
;
911 static int hf_rdm_pd_selftest_nr
;
912 static int hf_rdm_pd_selftest_state
;
913 static int hf_rdm_pd_selftest_description
;
914 static int hf_rdm_pd_language_code
;
915 static int hf_rdm_pd_identify_device
;
916 static int hf_rdm_pd_identify_device_state
;
917 static int hf_rdm_pd_reset_device
;
918 static int hf_rdm_pd_power_state
;
919 static int hf_rdm_pd_capture_preset_scene_nr
;
920 static int hf_rdm_pd_capture_preset_up_fade_time
;
921 static int hf_rdm_pd_capture_preset_down_fade_time
;
922 static int hf_rdm_pd_capture_preset_wait_time
;
923 static int hf_rdm_pd_preset_playback_mode
;
924 static int hf_rdm_pd_preset_playback_level
;
925 static int hf_rdm_pd_parameter_id
;
926 static int hf_rdm_pd_parameter_pdl_size
;
927 static int hf_rdm_pd_parameter_data_type
;
928 static int hf_rdm_pd_parameter_cmd_class
;
929 static int hf_rdm_pd_parameter_type
;
930 static int hf_rdm_pd_parameter_unit
;
931 static int hf_rdm_pd_parameter_prefix
;
932 static int hf_rdm_pd_parameter_min_value
;
933 static int hf_rdm_pd_parameter_max_value
;
934 static int hf_rdm_pd_parameter_default_value
;
935 static int hf_rdm_pd_parameter_description
;
936 static int hf_rdm_pd_software_version_label
;
937 static int hf_rdm_pd_boot_software_version_id
;
938 static int hf_rdm_pd_boot_software_version_label
;
939 static int hf_rdm_pd_comms_status_short_msg
;
940 static int hf_rdm_pd_comms_status_len_mismatch
;
941 static int hf_rdm_pd_comms_status_csum_fail
;
942 static int hf_rdm_pd_status_messages_type
;
943 static int hf_rdm_pd_status_messages_sub_device_id
;
944 static int hf_rdm_pd_status_messages_id
;
945 static int hf_rdm_pd_status_messages_data_value_1
;
946 static int hf_rdm_pd_status_messages_data_value_2
;
947 static int hf_rdm_pd_status_id
;
948 static int hf_rdm_pd_status_id_description
;
949 static int hf_rdm_pd_sub_device_status_report_threshold_status_type
;
950 static int hf_rdm_pd_product_detail_id_list
;
951 static int hf_rdm_pd_factory_defaults
;
952 static int hf_rdm_pd_background_discovery_endpoint_id
;
953 static int hf_rdm_pd_background_discovery_enabled
;
954 static int hf_rdm_pd_background_queued_status_policy_current_policy
;
955 static int hf_rdm_pd_background_queued_status_policy_number_of_policies
;
956 static int hf_rdm_pd_background_queued_status_policy_description_policy
;
957 static int hf_rdm_pd_background_queued_status_policy_description_description
;
958 static int hf_rdm_pd_binding_control_fields_endpoint_id
;
959 static int hf_rdm_pd_binding_control_fields_uid
;
960 static int hf_rdm_pd_binding_control_fields_control_field
;
961 static int hf_rdm_pd_binding_control_fields_binding_uid
;
962 static int hf_rem_pd_broker_status_set_allowed
;
963 static int hf_rem_pd_broker_status_state
;
964 static int hf_rdm_pd_burn_in
;
965 static int hf_rdm_pd_component_scope_scope_slot
;
966 static int hf_rdm_pd_component_scope_scope_string
;
967 static int hf_rdm_pd_component_scope_scope_static_config_type
;
968 static int hf_rdm_pd_component_scope_scope_static_ipv4_address
;
969 static int hf_rdm_pd_component_scope_scope_static_ipv6_address
;
970 static int hf_rdm_pd_component_scope_scope_static_port
;
971 static int hf_rdm_pd_current_address_interface_identifier
;
972 static int hf_rdm_pd_current_address_ipv4_address
;
973 static int hf_rdm_pd_current_address_netmask
;
974 static int hf_rdm_pd_current_address_dhcp_status
;
975 static int hf_rdm_pd_curve_curve
;
976 static int hf_rdm_pd_curve_number_of_curves
;
977 static int hf_rdm_pd_curve_description_curve
;
978 static int hf_rdm_pd_curve_description_text
;
979 static int hf_rdm_pd_dhcp_mode_interface_identifier
;
980 static int hf_rdm_pd_dhcp_mode_enabled
;
981 static int hf_rdm_pd_dimmer_info_minimum_level_lower_limit
;
982 static int hf_rdm_pd_dimmer_info_minimum_level_upper_limit
;
983 static int hf_rdm_pd_dimmer_info_maximum_level_lower_limit
;
984 static int hf_rdm_pd_dimmer_info_maximum_level_upper_limit
;
985 static int hf_rdm_pd_dimmer_info_number_of_supported_curves
;
986 static int hf_rdm_pd_dimmer_info_levels_resolution
;
987 static int hf_rdm_pd_dimmer_info_minimum_level_split_levels_supported
;
988 static int hf_rdm_pd_discovery_state_endpoint_id
;
989 static int hf_rdm_pd_discovery_state_device_count
;
990 static int hf_rdm_pd_discovery_state_discovery_state
;
991 static int hf_rdm_pd_dmx_block_address_base_dmx_address
;
992 static int hf_rdm_pd_dmx_block_address_subdevice_footprint
;
993 static int hf_rdm_pd_dmx_fail_mode_scene_number
;
994 static int hf_rdm_pd_dmx_fail_mode_loss_of_signal_delay
;
995 static int hf_rdm_pd_dmx_fail_mode_hold_time
;
996 static int hf_rdm_pd_dmx_fail_mode_level
;
997 static int hf_rdm_pd_dmx_pers_nr
;
998 static int hf_rdm_pd_dmx_pers_count
;
999 static int hf_rdm_pd_dmx_pers_requested
;
1000 static int hf_rdm_pd_dmx_pers_slots
;
1001 static int hf_rdm_pd_dmx_pers_text
;
1002 static int hf_rdm_pd_dmx_startup_mode_scene_number
;
1003 static int hf_rdm_pd_dmx_startup_mode_loss_of_signal_delay
;
1004 static int hf_rdm_pd_dmx_startup_mode_hold_time
;
1005 static int hf_rdm_pd_dmx_startup_mode_level
;
1006 static int hf_rdm_pd_dns_domain_name
;
1007 static int hf_rdm_pd_dns_hostname
;
1008 static int hf_rdm_pd_dns_ipv4_name_server_index
;
1009 static int hf_rdm_pd_dns_ipv4_name_server_address
;
1010 static int hf_rdm_pd_endpoint_label_endpoint_id
;
1011 static int hf_rdm_pd_endpoint_label_label
;
1012 static int hf_rdm_pd_endpoint_list_change_number
;
1013 static int hf_rdm_pd_endpoint_list_endpoint_id
;
1014 static int hf_rdm_pd_endpoint_list_endpoint_type
;
1015 static int hf_rdm_pd_endpoint_list_change_change_number
;
1016 static int hf_rdm_pd_endpoint_mode_endpoint_id
;
1017 static int hf_rdm_pd_endpoint_mode_endpoint_mode
;
1018 static int hf_rdm_pd_endpoint_responder_list_change_endpoint_id
;
1019 static int hf_rdm_pd_endpoint_responder_list_change_change_number
;
1020 static int hf_rdm_pd_endpoint_responders_endpoint_id
;
1021 static int hf_rdm_pd_endpoint_responders_change_number
;
1022 static int hf_rdm_pd_endpoint_responders_uid
;
1023 static int hf_rdm_pd_endpoint_timing_endpoint_id
;
1024 static int hf_rdm_pd_endpoint_timing_setting
;
1025 static int hf_rdm_pd_endpoint_timing_number_of_settings
;
1026 static int hf_rdm_pd_endpoint_timing_description_setting
;
1027 static int hf_rdm_pd_endpoint_timing_description_description
;
1028 static int hf_rdm_pd_endpoint_to_universe_endpoint_id
;
1029 static int hf_rdm_pd_endpoint_to_universe_universe_number
;
1030 static int hf_rdm_pd_hardware_address_type1_interface_identifier
;
1031 static int hf_rdm_pd_hardware_address_type1_hardware_address
;
1032 static int hf_rdm_pd_identify_endpoint_endpoint_id
;
1033 static int hf_rdm_pd_identify_endpoint_identify_state
;
1034 static int hf_rdm_pd_identify_mode
;
1035 static int hf_rdm_pd_interface_apply_configuration_interface_identifier
;
1036 static int hf_rdm_pd_interface_label_interface_identifier
;
1037 static int hf_rdm_pd_interface_label_label
;
1038 static int hf_rdm_pd_interface_release_dhcp_interface_identifier
;
1039 static int hf_rdm_pd_interface_renew_dhcp_interface_identifier
;
1040 static int hf_rdm_pd_ipv4_default_route_interface_identifier
;
1041 static int hf_rdm_pd_ipv4_default_route_ipv4_default_route
;
1042 static int hf_rdm_pd_list_interfaces_interface_identifier
;
1043 static int hf_rdm_pd_list_interfaces_interface_hardware_type
;
1044 static int hf_rdm_pd_lock_pin_pin_code
;
1045 static int hf_rdm_pd_lock_pin_new_pin_code
;
1046 static int hf_rdm_pd_lock_state_lock_state
;
1047 static int hf_rdm_pd_lock_state_number_of_lock_states
;
1048 static int hf_rdm_pd_lock_state_pin_code
;
1049 static int hf_rdm_pd_lock_state_description_lock_state
;
1050 static int hf_rdm_pd_lock_state_description_text
;
1051 static int hf_rdm_pd_maximum_level_level
;
1052 static int hf_rdm_pd_preset_mergemode
;
1053 static int hf_rdm_pd_power_on_self_test
;
1054 static int hf_rdm_pd_minimum_level_increasing
;
1055 static int hf_rdm_pd_minimum_level_decreasing
;
1056 static int hf_rdm_pd_minimum_level_on_below_minimum
;
1057 static int hf_rdm_pd_modulation_frequency_modulation_frequency
;
1058 static int hf_rdm_pd_modulation_frequency_number_of_modulation_frequencies
;
1059 static int hf_rdm_pd_modulation_frequency_description_modulation_frequency
;
1060 static int hf_rdm_pd_modulation_frequency_description_text
;
1061 static int hf_rdm_pd_output_response_time_response_time
;
1062 static int hf_rdm_pd_output_response_time_number_of_response_times
;
1063 static int hf_rdm_pd_output_response_time_description_output_response_time
;
1064 static int hf_rdm_pd_output_response_time_description_text
;
1065 static int hf_rdm_pd_preset_info_level_field_supported
;
1066 static int hf_rdm_pd_preset_info_preset_sequence_supported
;
1067 static int hf_rdm_pd_preset_info_split_times_supported
;
1068 static int hf_rdm_pd_preset_info_dmx_fail_infinite_delay_time_supported
;
1069 static int hf_rdm_pd_preset_info_dmx_fail_infinite_hold_time_supported
;
1070 static int hf_rdm_pd_preset_info_start_up_infinite_hold_time_supported
;
1071 static int hf_rdm_pd_preset_info_maximum_scene_number
;
1072 static int hf_rdm_pd_preset_info_minimum_preset_fade_time_supported
;
1073 static int hf_rdm_pd_preset_info_maximum_preset_fade_time_supported
;
1074 static int hf_rdm_pd_preset_info_minimum_preset_wait_time_supported
;
1075 static int hf_rdm_pd_preset_info_maximum_preset_wait_time_supported
;
1076 static int hf_rdm_pd_preset_info_minimum_dmx_fail_delay_time_supported
;
1077 static int hf_rdm_pd_preset_info_maximum_dmx_fail_delay_time_supported
;
1078 static int hf_rdm_pd_preset_info_minimum_dmx_fail_hold_time_supported
;
1079 static int hf_rdm_pd_preset_info_maximum_dmx_fail_hold_time_supported
;
1080 static int hf_rdm_pd_preset_info_minimum_start_up_delay_time_supported
;
1081 static int hf_rdm_pd_preset_info_maximum_start_up_delay_time_supported
;
1082 static int hf_rdm_pd_preset_info_minimum_start_up_hold_time_supported
;
1083 static int hf_rdm_pd_preset_info_maximum_start_up_hold_time_supported
;
1084 static int hf_rdm_pd_preset_status_scene_number
;
1085 static int hf_rdm_pd_preset_status_up_fade_time
;
1086 static int hf_rdm_pd_preset_status_down_fade_time
;
1087 static int hf_rdm_pd_preset_status_wait_time
;
1088 static int hf_rdm_pd_preset_status_programmed
;
1089 static int hf_rdm_pd_preset_status_clear_preset
;
1090 static int hf_rdm_pd_rdm_traffic_enable_endpoint_id
;
1091 static int hf_rdm_pd_rdm_traffic_enable_rdm_enabled
;
1092 static int hf_rdm_pd_search_domain_dns_domain_name
;
1093 static int hf_rdm_pd_slot_offset
;
1094 static int hf_rdm_pd_slot_type
;
1095 static int hf_rdm_pd_slot_label_id
;
1096 static int hf_rdm_pd_slot_nr
;
1097 static int hf_rdm_pd_slot_description
;
1098 static int hf_rdm_pd_slot_value
;
1099 static int hf_rdm_pd_static_address_interface_identifier
;
1100 static int hf_rdm_pd_static_address_ipv4_address
;
1101 static int hf_rdm_pd_static_address_netmask
;
1102 static int hf_rdm_pd_tcp_comms_status_scope_string
;
1103 static int hf_rdm_pd_tcp_comms_status_broker_ipv4_address
;
1104 static int hf_rdm_pd_tcp_comms_status_broker_ipv6_address
;
1105 static int hf_rdm_pd_tcp_comms_status_broker_port
;
1106 static int hf_rdm_pd_tcp_comms_status_unhealthy_tcp_events
;
1107 static int hf_rdm_pd_zeroconf_mode_interface_identifier
;
1108 static int hf_rdm_pd_zeroconf_mode_enabled
;
1109 static int hf_rdm_pd_rec_value_support
;
1113 static expert_field ei_rdm_checksum
;
1115 /* begin manufacturer-specific constants and variables */
1118 /* ETC manufacturer-specific PIDs */
1119 #define ETC_PARAM_ID_LED_CURVE 0x8101
1120 #define ETC_PARAM_ID_LED_CURVE_DESCRIPTION 0x8102
1121 #define ETC_PARAM_ID_LED_STROBE 0x8103
1122 #define ETC_PARAM_ID_LED_OUTPUT_MODE 0x8104
1123 #define ETC_PARAM_ID_LED_OUTPUT_MODE_DESCRIPTION 0x8105
1124 #define ETC_PARAM_ID_LED_RED_SHIFT 0x8106
1125 #define ETC_PARAM_ID_LED_WHITE_POINT 0x8107
1126 #define ETC_PARAM_ID_LED_WHITE_POINT_DESCRIPTION 0x8108
1127 #define ETC_PARAM_ID_LED_FREQUENCY 0x8109
1128 #define ETC_PARAM_ID_DMX_LOSS_BEHAVIOR 0x810A
1129 #define ETC_PARAM_ID_DMX_LOSS_BEHAVIOR_DESCRIPTION 0x810B
1130 #define ETC_PARAM_ID_LED_PLUS_SEVEN 0x810C
1131 #define ETC_PARAM_ID_BACKLIGHT_BRIGHTNESS 0x810D
1132 #define ETC_PARAM_ID_BACKLIGHT_TIMEOUT 0x810E
1133 #define ETC_PARAM_ID_STATUS_INDICATORS 0x810F
1134 #define ETC_PARAM_ID_RECALIBRATE_FIXTURE 0x8110
1135 #define ETC_PARAM_ID_OVERTEMPMODE 0x8111
1136 #define ETC_PARAM_ID_SIMPLESETUPMODE 0x8112
1137 #define ETC_PARAM_ID_LED_STROBE_DESCRIPTION 0x8113
1138 #define ETC_PARAM_ID_LED_RED_SHIFT_DESCRIPTION 0x8114
1139 #define ETC_PARAM_ID_LED_PLUS_SEVEN_DESCRIPTION 0x8115
1140 #define ETC_PARAM_ID_BACKLIGHT_TIMEOUT_DESCRIPTION 0x8116
1141 #define ETC_PARAM_ID_SIMPLESETUPMODE_DESCRIPTION 0x8117
1142 #define ETC_PARAM_ID_OVERTEMPMODE_DESCRIPTION 0x8118
1143 #define ETC_PARAM_ID_LED_REQUESTED_XY 0x8119
1144 #define ETC_PARAM_ID_LED_CURRENT_XY 0x811A
1145 #define ETC_PARAM_ID_LED_CURRENT_PWM 0x811B
1146 #define ETC_PARAM_ID_LED_TRISTIMULUS 0x811C
1147 #define ETC_PARAM_ID_LED_INFORMATION 0x811D
1148 #define ETC_PARAM_ID_PRESETCONFIG 0x811E
1149 #define ETC_PARAM_ID_SEQUENCE_PLAYBACK 0x811F
1150 #define ETC_PARAM_ID_SEQUENCE_CONFIG 0x8120
1151 #define ETC_PARAM_ID_LOW_POWER_TIMEOUT 0x8121
1152 #define ETC_PARAM_ID_LOW_POWER_TIMEOUT_DESCRIPTION 0x8122
1153 #define ETC_PARAM_ID_LED_ENUM_FREQUENCY 0x8123
1154 #define ETC_PARAM_ID_LED_ENUM_FREQUENCY_DESCRIPTION 0x8124
1155 #define ETC_PARAM_ID_RGBI_PRESETCONFIG 0x8125
1156 #define ETC_PARAM_ID_CCT_PRESETCONFIG 0x8126
1157 #define ETC_PARAM_ID_SUPPLEMENTARY_DEVICE_VERSION 0x8130
1159 #define ETC_PARAM_ID_START_UWB_DISCOVER 0x8150
1160 #define ETC_PARAM_ID_START_UWB_MEASURE 0x8151
1161 #define ETC_PARAM_ID_POSITION 0x8152
1163 #define ETC_PARAM_ID_S4DIM_CALIBRATE 0x9000
1164 #define ETC_PARAM_ID_S4DIM_CALIBRATE_DESCRIPTION 0x9001
1165 #define ETC_PARAM_ID_S4DIM_TEST_MODE 0x9002
1166 #define ETC_PARAM_ID_S4DIM_TEST_MODE_DESCRIPTION 0x9003
1167 #define ETC_PARAM_ID_S4DIM_MAX_OUTPUT_VOLTAGE 0x9004
1168 #define ETC_PARAM_ID_S4DIM_MAX_OUTPUT_VOLTAGE_DESCRIPTION 0x9005
1169 #define ETC_PARAM_ID_POWER_COMMAND 0xA000
1170 #define ETC_PARAM_ID_POWER_COMMAND_DESCRIPTION 0xA001
1171 #define ETC_PARAM_ID_THRESHOLD_COMMAND 0xA002
1172 #define ETC_PARAM_ID_TURNON_DELAY_COMMAND 0xA003
1173 #define ETC_PARAM_ID_SET_DALI_SHORTADDRESS 0xA004
1174 #define ETC_PARAM_ID_DALI_GROUP_MEMBERSHIP 0xA005
1175 #define ETC_PARAM_ID_AUTOBIND 0xA006
1176 #define ETC_PARAM_ID_DELETE_SUBDEVICE 0xA007
1177 #define ETC_PARAM_ID_PACKET_DELAY 0xB000
1178 #define ETC_PARAM_ID_HAS_ENUM_TEXT 0xE000
1179 #define ETC_PARAM_ID_GET_ENUM_TEXT 0xE001
1180 #define ETC_PARAM_ID_PREPAREFORSOFTWAREDOWNLOAD 0xF000
1182 static const value_string etc_param_id_vals
[] = {
1183 { ETC_PARAM_ID_LED_CURVE
, "LED Curve" },
1184 { ETC_PARAM_ID_LED_CURVE_DESCRIPTION
, "LED Curve Description" },
1185 { ETC_PARAM_ID_LED_STROBE
, "LED Strobe" },
1186 { ETC_PARAM_ID_LED_OUTPUT_MODE
, "LED Output Mode" },
1187 { ETC_PARAM_ID_LED_OUTPUT_MODE_DESCRIPTION
, "LED Output Mode Description" },
1188 { ETC_PARAM_ID_LED_RED_SHIFT
, "LED Red Shift" },
1189 { ETC_PARAM_ID_LED_WHITE_POINT
, "LED White Point" },
1190 { ETC_PARAM_ID_LED_WHITE_POINT_DESCRIPTION
, "LED White Point Description" },
1191 { ETC_PARAM_ID_LED_FREQUENCY
, "LED Frequency" },
1192 { ETC_PARAM_ID_DMX_LOSS_BEHAVIOR
, "DMX Loss Behavior" },
1193 { ETC_PARAM_ID_DMX_LOSS_BEHAVIOR_DESCRIPTION
, "DMX Loss Behavior Description" },
1194 { ETC_PARAM_ID_LED_PLUS_SEVEN
, "LED Plus Seven" },
1195 { ETC_PARAM_ID_BACKLIGHT_BRIGHTNESS
, "Backlight Brightness" },
1196 { ETC_PARAM_ID_BACKLIGHT_TIMEOUT
, "Backlight Timeout" },
1197 { ETC_PARAM_ID_STATUS_INDICATORS
, "Status Indicators" },
1198 { ETC_PARAM_ID_RECALIBRATE_FIXTURE
, "Recalibrate Fixture" },
1199 { ETC_PARAM_ID_OVERTEMPMODE
, "Overtemp Mode" },
1200 { ETC_PARAM_ID_SIMPLESETUPMODE
, "Simple Setup Mode" },
1201 { ETC_PARAM_ID_LED_STROBE_DESCRIPTION
, "LED Strobe Description" },
1202 { ETC_PARAM_ID_LED_RED_SHIFT_DESCRIPTION
, "LED Red Shift Description" },
1203 { ETC_PARAM_ID_LED_PLUS_SEVEN_DESCRIPTION
, "LED Plus Seven Description" },
1204 { ETC_PARAM_ID_BACKLIGHT_TIMEOUT_DESCRIPTION
, "Backlight Timeout Description" },
1205 { ETC_PARAM_ID_SIMPLESETUPMODE_DESCRIPTION
, "Simple Setup Mode Description" },
1206 { ETC_PARAM_ID_OVERTEMPMODE_DESCRIPTION
, "Overtemp Mode Description" },
1207 { ETC_PARAM_ID_LED_REQUESTED_XY
, "LED Requested XY" },
1208 { ETC_PARAM_ID_LED_CURRENT_XY
, "LED Current XY" },
1209 { ETC_PARAM_ID_LED_CURRENT_PWM
, "LED Current PWM" },
1210 { ETC_PARAM_ID_LED_TRISTIMULUS
, "LED Tristimulus" },
1211 { ETC_PARAM_ID_LED_INFORMATION
, "LED Information" },
1212 { ETC_PARAM_ID_PRESETCONFIG
, "Preset Config" },
1213 { ETC_PARAM_ID_SEQUENCE_PLAYBACK
, "Sequence Playback" },
1214 { ETC_PARAM_ID_SEQUENCE_CONFIG
, "Sequence Config" },
1215 { ETC_PARAM_ID_LOW_POWER_TIMEOUT
, "Low Power Timeout" },
1216 { ETC_PARAM_ID_LOW_POWER_TIMEOUT_DESCRIPTION
, "Low Power Timeout Description" },
1217 { ETC_PARAM_ID_LED_ENUM_FREQUENCY
, "LED Enum Frequency" },
1218 { ETC_PARAM_ID_LED_ENUM_FREQUENCY_DESCRIPTION
, "LED Enum Frequency Description" },
1219 { ETC_PARAM_ID_RGBI_PRESETCONFIG
, "RGBI Preset Config" },
1220 { ETC_PARAM_ID_CCT_PRESETCONFIG
, "CCT Preset Config" },
1221 { ETC_PARAM_ID_SUPPLEMENTARY_DEVICE_VERSION
, "Supplementary Device Version" },
1223 { ETC_PARAM_ID_START_UWB_DISCOVER, "Start UWB Discover" },
1224 { ETC_PARAM_ID_START_UWB_MEASURE, "Start UWB Measure" },
1225 { ETC_PARAM_ID_POSITION, "Position" },
1227 { ETC_PARAM_ID_S4DIM_CALIBRATE
, "S4Dimmer Calibrate" },
1228 { ETC_PARAM_ID_S4DIM_CALIBRATE_DESCRIPTION
, "S4Dimmer Calibrate Description" },
1229 { ETC_PARAM_ID_S4DIM_TEST_MODE
, "S4Dimmer Test Mode" },
1230 { ETC_PARAM_ID_S4DIM_TEST_MODE_DESCRIPTION
, "S4Dimmer Test Mode Description" },
1231 { ETC_PARAM_ID_S4DIM_MAX_OUTPUT_VOLTAGE
, "S4Dimmer Max Output Voltage" },
1232 { ETC_PARAM_ID_S4DIM_MAX_OUTPUT_VOLTAGE_DESCRIPTION
, "S4Dimmer Max Output Voltage Description" },
1233 { ETC_PARAM_ID_POWER_COMMAND
, "Power Command" },
1234 { ETC_PARAM_ID_POWER_COMMAND_DESCRIPTION
, "Power Command Description" },
1235 { ETC_PARAM_ID_THRESHOLD_COMMAND
, "Threshold Command" },
1236 { ETC_PARAM_ID_TURNON_DELAY_COMMAND
, "Turn On Delay Command" },
1237 { ETC_PARAM_ID_SET_DALI_SHORTADDRESS
, "Set DALI Short Address" },
1238 { ETC_PARAM_ID_DALI_GROUP_MEMBERSHIP
, "DALI Group Membership" },
1239 { ETC_PARAM_ID_AUTOBIND
, "Auto Bind" },
1240 { ETC_PARAM_ID_DELETE_SUBDEVICE
, "Delete Subdevice" },
1241 { ETC_PARAM_ID_PACKET_DELAY
, "Packet Delay" },
1242 { ETC_PARAM_ID_HAS_ENUM_TEXT
, "Has Enum Text" },
1243 { ETC_PARAM_ID_GET_ENUM_TEXT
, "Get Enum Text" },
1244 { ETC_PARAM_ID_PREPAREFORSOFTWAREDOWNLOAD
, "Prepare For Software Load" },
1248 static value_string_ext etc_param_id_vals_ext
= VALUE_STRING_EXT_INIT(etc_param_id_vals
);
1250 #define ETC_LED_CURVE_STANDARD 0x00
1251 #define ETC_LED_CURVE_INCANDESCENT 0x01
1252 #define ETC_LED_CURVE_LINEAR 0x02
1253 #define ETC_LED_CURVE_QUICK 0x03
1255 static const value_string etc_led_curve_vals
[] = {
1256 { ETC_LED_CURVE_STANDARD
, "Standard" },
1257 { ETC_LED_CURVE_INCANDESCENT
, "Incandescent" },
1258 { ETC_LED_CURVE_LINEAR
, "Linear" },
1259 { ETC_LED_CURVE_QUICK
, "Quick" },
1263 #define ETC_LED_OUTPUT_MODE_REGULATED 0x00
1264 #define ETC_LED_OUTPUT_MODE_BOOST 0x01
1265 #define ETC_LED_OUTPUT_MODE_PROTECTED 0x02
1267 static const value_string etc_led_output_mode_vals
[] = {
1268 { ETC_LED_OUTPUT_MODE_REGULATED
, "Regulated" },
1269 { ETC_LED_OUTPUT_MODE_BOOST
, "Boost" },
1270 { ETC_LED_OUTPUT_MODE_PROTECTED
, "Protected" },
1274 #define ETC_LED_WHITE_POINT_2950K 0x00
1275 #define ETC_LED_WHITE_POINT_3200K 0x01
1276 #define ETC_LED_WHITE_POINT_5600K 0x02
1277 #define ETC_LED_WHITE_POINT_6500K 0x03
1279 static const value_string etc_led_white_point_vals
[] = {
1280 { ETC_LED_WHITE_POINT_2950K
, "2950 K" },
1281 { ETC_LED_WHITE_POINT_3200K
, "3200 K" },
1282 { ETC_LED_WHITE_POINT_5600K
, "5600 K" },
1283 { ETC_LED_WHITE_POINT_6500K
, "6500 K" },
1287 #define ETC_DMX_LOSS_BEHAVIOR_INSTANT 0x00
1288 #define ETC_DMX_LOSS_BEHAVIOR_WAIT2MIN 0x01
1289 #define ETC_DMX_LOSS_BEHAVIOR_HLL 0x02
1291 static const value_string etc_dmx_data_loss_vals
[] = {
1292 { ETC_DMX_LOSS_BEHAVIOR_INSTANT
, "Instant" },
1293 { ETC_DMX_LOSS_BEHAVIOR_WAIT2MIN
, "Hold Last Look 2 Minutes" },
1294 { ETC_DMX_LOSS_BEHAVIOR_HLL
, "Hold Last Look Forever" },
1298 #define ETC_DMX_BACKLIGHT_TIMEOUT_NEVER 0x00
1299 #define ETC_DMX_BACKLIGHT_TIMEOUT_30SEC 0x01
1300 #define ETC_DMX_BACKLIGHT_TIMEOUT_1MIN 0x02
1301 #define ETC_DMX_BACKLIGHT_TIMEOUT_5MIN 0x03
1302 #define ETC_DMX_BACKLIGHT_TIMEOUT_15MIN 0x04
1304 static const value_string etc_backlight_timeout_vals
[] = {
1305 { ETC_DMX_BACKLIGHT_TIMEOUT_NEVER
, "Never" },
1306 { ETC_DMX_BACKLIGHT_TIMEOUT_30SEC
, "30 Seconds" },
1307 { ETC_DMX_BACKLIGHT_TIMEOUT_1MIN
, "1 Minute" },
1308 { ETC_DMX_BACKLIGHT_TIMEOUT_5MIN
, "5 Minute" },
1309 { ETC_DMX_BACKLIGHT_TIMEOUT_15MIN
, "15 Minute" },
1313 #define ETC_OVERTEMP_MODE_DARK 0x00
1314 #define ETC_OVERTEMP_MODE_VISIBLE 0x01
1316 static const value_string etc_overtemp_mode_vals
[] = {
1317 { ETC_OVERTEMP_MODE_DARK
, "Dark When Overtemp" },
1318 { ETC_OVERTEMP_MODE_VISIBLE
, "Red When Overtemp" },
1322 #define ETC_EASY_MODE_GENERAL 0x00
1323 #define ETC_EASY_MODE_STAGE 0x01
1324 #define ETC_EASY_MODE_ARCH 0x02
1325 #define ETC_EASY_MODE_EFFECTS 0x03
1326 #define ETC_EASY_MODE_STUDIO 0x04
1327 #define ETC_EASY_MODE_ADVANCED 0x05
1329 static const value_string etc_simple_setup_mode_vals
[] = {
1330 { ETC_EASY_MODE_GENERAL
, "General Use" },
1331 { ETC_EASY_MODE_STAGE
, "Stage Setup" },
1332 { ETC_EASY_MODE_ARCH
, "Arch Setup" },
1333 { ETC_EASY_MODE_EFFECTS
, "Effects Setup" },
1334 { ETC_EASY_MODE_STUDIO
, "Studio Setup" },
1335 { ETC_EASY_MODE_ADVANCED
, "Advanced Setup" },
1339 #define ETC_LOW_POWER_TIMEOUT_NEVER 0x00
1340 #define ETC_LOW_POWER_TIMEOUT_15MIN 0x01
1341 #define ETC_LOW_POWER_TIMEOUT_30MIN 0x02
1342 #define ETC_LOW_POWER_TIMEOUT_1HOUR 0x03
1343 #define ETC_LOW_POWER_TIMEOUT_4HOURS 0x04
1344 #define ETC_LOW_POWER_TIMEOUT_8HOURS 0x05
1346 static const value_string etc_low_power_timeout_vals
[] = {
1347 { ETC_LOW_POWER_TIMEOUT_NEVER
, "Never" },
1348 { ETC_LOW_POWER_TIMEOUT_15MIN
, "15 Minutes" },
1349 { ETC_LOW_POWER_TIMEOUT_30MIN
, "30 Minutes" },
1350 { ETC_LOW_POWER_TIMEOUT_1HOUR
, "1 Hour" },
1351 { ETC_LOW_POWER_TIMEOUT_4HOURS
, "4 Hours" },
1352 { ETC_LOW_POWER_TIMEOUT_8HOURS
, "8 Hours" },
1356 #define ETC_LED_FREQ_ENUM_1200HZ 0x00
1357 #define ETC_LED_FREQ_ENUM_25000HZ 0x01
1359 static const value_string etc_led_frequency_enum_vals
[] = {
1360 { ETC_LED_FREQ_ENUM_1200HZ
, "1.2 kHz" },
1361 { ETC_LED_FREQ_ENUM_25000HZ
, "25 kHz" },
1365 #define ETC_MODEL_ID_SMARTBAR 0x0001
1366 #define ETC_MODEL_ID_SOURCE_4_LED_LUSTR_PLUS 0x0101
1367 #define ETC_MODEL_ID_DESIRE_ICE_40_LED 0x0102
1368 #define ETC_MODEL_ID_DESIRE_FIRE_40_LED 0x0103
1369 #define ETC_MODEL_ID_SOURCE_4_LED_TUNGSTEN 0x0107
1370 #define ETC_MODEL_ID_SOURCE_4_LED_DAYLIGHT 0x0108
1371 #define ETC_MODEL_ID_DESIRE_VIVID_40_LED 0x0109
1372 #define ETC_MODEL_ID_DESIRE_LUSTR_60_LED_OBS 0x0111
1373 #define ETC_MODEL_ID_DESIRE_ICE_60_LED 0x0112
1374 #define ETC_MODEL_ID_DESIRE_FIRE_60_LED 0x0113
1375 #define ETC_MODEL_ID_DESIRE_VIVID_60_LED 0x0119
1376 #define ETC_MODEL_ID_DESIRE_STUDIO_40_LED 0x0121
1377 #define ETC_MODEL_ID_DESIRE_STUDIO_60_LED 0x0129
1378 #define ETC_MODEL_ID_DESIRE_LUSTR_40_LED 0x0131
1379 #define ETC_MODEL_ID_DESIRE_LUSTR_60_LED 0x0139
1380 #define ETC_MODEL_ID_DESIRE_DAYLIGHT_40_LED 0x0141
1381 #define ETC_MODEL_ID_DESIRE_TUNGSTEN_40_LED 0x0142
1382 #define ETC_MODEL_ID_DESIRE_DAYLIGHT_60_LED 0x0149
1383 #define ETC_MODEL_ID_DESIRE_TUNGSTEN_60_LED 0x014A
1384 #define ETC_MODEL_ID_DESIRE_D22_LUSTR_PLUS_LED 0x0151
1385 #define ETC_MODEL_ID_DESIRE_D22_DAYLIGHT_LED 0x0159
1386 #define ETC_MODEL_ID_DESIRE_D22_TUNGSTEN_LED 0x015A
1387 #define ETC_MODEL_ID_SOURCE_4_LED_STUDIO_HD 0x0179
1388 #define ETC_MODEL_ID_SOURCE_4_LED_SERIES_2_LUSTR 0x0181
1389 #define ETC_MODEL_ID_DESIRE_D22_STUDIO_HD 0x0189
1390 #define ETC_MODEL_ID_SOURCE_4_LED_SERIES_2_TUNGSTEN_HD 0x0191
1391 #define ETC_MODEL_ID_SOURCE_4_LED_SERIES_2_DAYLIGHT_HD 0x0199
1392 #define ETC_MODEL_ID_COLORSOURCE_BOOTLOADER 0x0200
1393 #define ETC_MODEL_ID_COLORSOURCE_PAR 0x0201
1394 #define ETC_MODEL_ID_COLORSOURCE_PAR_DEEP_BLUE 0x0202
1395 #define ETC_MODEL_ID_COLORSOURCE_PAR_PEARL 0x0203
1396 #define ETC_MODEL_ID_COLORSOURCE_SPOT 0x0205
1397 #define ETC_MODEL_ID_COLORSOURCE_SPOT_DEEP_BLUE 0x0206
1398 #define ETC_MODEL_ID_COLORSOURCE_SPOT_PEARL 0x0207
1399 #define ETC_MODEL_ID_COLORSOURCE_LINEAR_1 0x0209
1400 #define ETC_MODEL_ID_COLORSOURCE_LINEAR_1_DEEP_BLUE 0x020A
1401 #define ETC_MODEL_ID_COLORSOURCE_LINEAR_1_PEARL 0x020B
1402 #define ETC_MODEL_ID_COLORSOURCE_LINEAR_2 0x020D
1403 #define ETC_MODEL_ID_COLORSOURCE_LINEAR_2_DEEP_BLUE 0x020E
1404 #define ETC_MODEL_ID_COLORSOURCE_LINEAR_2_PEARL 0x020F
1405 #define ETC_MODEL_ID_COLORSOURCE_LINEAR_4 0x0211
1406 #define ETC_MODEL_ID_COLORSOURCE_LINEAR_4_DEEP_BLUE 0x0212
1407 #define ETC_MODEL_ID_COLORSOURCE_LINEAR_4_PEARL 0x0213
1408 #define ETC_MODEL_ID_COLORSOURCE_CYC 0x0215
1409 #define ETC_MODEL_ID_SOURCE_FORWARD_120V 0x0800
1410 #define ETC_MODEL_ID_SOURCE_FORWARD_230V 0x0801
1411 #define ETC_MODEL_ID_IRIDEON_FPZ 0x0900
1412 #define ETC_MODEL_ID_SOURCE_FOUR_DIMMER 0x1001
1413 #define ETC_MODEL_ID_KILLSWITCH_WIRELESS 0x1002
1414 #define ETC_MODEL_ID_KILLSWITCH_DMX 0x1003
1415 #define ETC_MODEL_ID_KILLSWITCH_ETHERNET 0x1004
1416 #define ETC_MODEL_ID_KILLSWITCH_TRANSMITTER 0x1005
1417 #define ETC_MODEL_ID_DMX_ZONE_CONTROLLER_SINGLE_DIMMER 0x1006
1418 #define ETC_MODEL_ID_DMX_ZONE_CONTROLLER_RELAY 0x1007
1419 #define ETC_MODEL_ID_DMX_ZONE_CONTROLLER__4_8_CH 0x1008
1420 #define ETC_MODEL_ID_COLORSOURCE_THRUPOWER_DIMMER 0x1101
1421 #define ETC_MODEL_ID_DMX_DALI_GATEWAY_DIN_RAIL 0x1110
1423 static const value_string etc_model_id_vals
[] = {
1424 { ETC_MODEL_ID_SMARTBAR
, "Smartbar" },
1425 { ETC_MODEL_ID_SOURCE_4_LED_LUSTR_PLUS
, "Source 4 LED Lustr+" },
1426 { ETC_MODEL_ID_DESIRE_ICE_40_LED
, "Desire Ice 40 LED" },
1427 { ETC_MODEL_ID_DESIRE_FIRE_40_LED
, "Desire Fire 40 LED" },
1428 { ETC_MODEL_ID_SOURCE_4_LED_TUNGSTEN
, "Source 4 LED Tungsten" },
1429 { ETC_MODEL_ID_SOURCE_4_LED_DAYLIGHT
, "Source 4 LED Daylight" },
1430 { ETC_MODEL_ID_DESIRE_VIVID_40_LED
, "Desire Vivid 40 LED" },
1431 { ETC_MODEL_ID_DESIRE_LUSTR_60_LED_OBS
, "Desire Lustr 60 LED (obsolete)" },
1432 { ETC_MODEL_ID_DESIRE_ICE_60_LED
, "Desire Ice 60 LED" },
1433 { ETC_MODEL_ID_DESIRE_FIRE_60_LED
, "Desire Fire 60 LED" },
1434 { ETC_MODEL_ID_DESIRE_VIVID_60_LED
, "Desire Vivid 60 LED" },
1435 { ETC_MODEL_ID_DESIRE_STUDIO_40_LED
, "Desire Studio 40 LED" },
1436 { ETC_MODEL_ID_DESIRE_STUDIO_60_LED
, "Desire Studio 60 LED" },
1437 { ETC_MODEL_ID_DESIRE_LUSTR_40_LED
, "Desire Lustr 40 LED" },
1438 { ETC_MODEL_ID_DESIRE_LUSTR_60_LED
, "Desire Lustr 60 LED" },
1439 { ETC_MODEL_ID_DESIRE_DAYLIGHT_40_LED
, "Desire Daylight 40 LED" },
1440 { ETC_MODEL_ID_DESIRE_TUNGSTEN_40_LED
, "Desire Tungsten 40 LED" },
1441 { ETC_MODEL_ID_DESIRE_DAYLIGHT_60_LED
, "Desire Daylight 60 LED" },
1442 { ETC_MODEL_ID_DESIRE_TUNGSTEN_60_LED
, "Desire Tungsten 60 LED" },
1443 { ETC_MODEL_ID_DESIRE_D22_LUSTR_PLUS_LED
, "Desire D22 Lustr+ LED" },
1444 { ETC_MODEL_ID_DESIRE_D22_DAYLIGHT_LED
, "Desire D22 Daylight LED" },
1445 { ETC_MODEL_ID_DESIRE_D22_TUNGSTEN_LED
, "Desire D22 Tungsten LED" },
1446 { ETC_MODEL_ID_SOURCE_4_LED_STUDIO_HD
, "Source 4 LED Studio HD" },
1447 { ETC_MODEL_ID_SOURCE_4_LED_SERIES_2_LUSTR
, "Source 4 LED Series 2 Lustr" },
1448 { ETC_MODEL_ID_DESIRE_D22_STUDIO_HD
, "Desire D22 Studio HD" },
1449 { ETC_MODEL_ID_SOURCE_4_LED_SERIES_2_TUNGSTEN_HD
, "Source 4 LED Series 2 Tungsten HD" },
1450 { ETC_MODEL_ID_SOURCE_4_LED_SERIES_2_DAYLIGHT_HD
, "Source 4 LED Series 2 Daylight HD" },
1451 { ETC_MODEL_ID_COLORSOURCE_BOOTLOADER
, "ColorSource Bootloader" },
1452 { ETC_MODEL_ID_COLORSOURCE_PAR
, "ColorSource Par" },
1453 { ETC_MODEL_ID_COLORSOURCE_PAR_DEEP_BLUE
, "ColorSource Par DeepBlue" },
1454 { ETC_MODEL_ID_COLORSOURCE_PAR_PEARL
, "ColorSource Par Pearl" },
1455 { ETC_MODEL_ID_COLORSOURCE_SPOT
, "ColorSource Spot" },
1456 { ETC_MODEL_ID_COLORSOURCE_SPOT_DEEP_BLUE
, "ColorSource Spot DeepBlue" },
1457 { ETC_MODEL_ID_COLORSOURCE_SPOT_PEARL
, "ColorSource Spot Pearl" },
1458 { ETC_MODEL_ID_COLORSOURCE_LINEAR_1
, "ColorSource Linear 1" },
1459 { ETC_MODEL_ID_COLORSOURCE_LINEAR_1_DEEP_BLUE
, "ColorSource Linear 1 DeepBlue" },
1460 { ETC_MODEL_ID_COLORSOURCE_LINEAR_1_PEARL
, "ColorSource Linear 1 Pearl" },
1461 { ETC_MODEL_ID_COLORSOURCE_LINEAR_2
, "ColorSource Linear 2" },
1462 { ETC_MODEL_ID_COLORSOURCE_LINEAR_2_DEEP_BLUE
, "ColorSource Linear 2 DeepBlue" },
1463 { ETC_MODEL_ID_COLORSOURCE_LINEAR_2_PEARL
, "ColorSource Linear 2 Pearl" },
1464 { ETC_MODEL_ID_COLORSOURCE_LINEAR_4
, "ColorSource Linear 4" },
1465 { ETC_MODEL_ID_COLORSOURCE_LINEAR_4_DEEP_BLUE
, "ColorSource Linear 4 DeepBlue" },
1466 { ETC_MODEL_ID_COLORSOURCE_LINEAR_4_PEARL
, "ColorSource Linear 4 Pearl" },
1467 { ETC_MODEL_ID_COLORSOURCE_CYC
, "ColorSource Cyc" },
1468 { ETC_MODEL_ID_SOURCE_FORWARD_120V
, "Source Forward 120v" },
1469 { ETC_MODEL_ID_SOURCE_FORWARD_230V
, "Source Forward 230v" },
1470 { ETC_MODEL_ID_IRIDEON_FPZ
, "Irideon FPZ" },
1471 { ETC_MODEL_ID_SOURCE_FOUR_DIMMER
, "Source Four Dimmer" },
1472 { ETC_MODEL_ID_KILLSWITCH_WIRELESS
, "Killswitch Wireless" },
1473 { ETC_MODEL_ID_KILLSWITCH_DMX
, "Killswitch DMX" },
1474 { ETC_MODEL_ID_KILLSWITCH_ETHERNET
, "Killswitch Ethernet" },
1475 { ETC_MODEL_ID_KILLSWITCH_TRANSMITTER
, "Killswitch Transmitter" },
1476 { ETC_MODEL_ID_DMX_ZONE_CONTROLLER_SINGLE_DIMMER
, "DMX Zone Controller, Single Dimmer" },
1477 { ETC_MODEL_ID_DMX_ZONE_CONTROLLER_RELAY
, "DMX Zone Controller, Relay" },
1478 { ETC_MODEL_ID_DMX_ZONE_CONTROLLER__4_8_CH
, "DMX Zone Controller, 4-8 Channel Room Controller" },
1479 { ETC_MODEL_ID_COLORSOURCE_THRUPOWER_DIMMER
, "ColorSource Thrupower Dimmer" },
1480 { ETC_MODEL_ID_DMX_DALI_GATEWAY_DIN_RAIL
, "DMX-DALI Gateway, DIN Rail" },
1484 static int hf_etc_parameter_id
; /* every manufacturer needs one of these */
1485 static int hf_etc_pd_parameter_id
; /* every manufacturer needs one of these */
1486 static int hf_etc_pd_device_model_id
;
1487 static int hf_etc_pd_led_curve
;
1488 static int hf_etc_pd_led_curve_description_curve
;
1489 static int hf_etc_pd_led_curve_description_text
;
1490 static int hf_etc_pd_led_strobe
;
1491 static int hf_etc_pd_led_output_mode
;
1492 static int hf_etc_pd_led_output_mode_description_mode
;
1493 static int hf_etc_pd_led_output_mode_description_text
;
1494 static int hf_etc_pd_led_red_shift
;
1495 static int hf_etc_pd_led_white_point
;
1496 static int hf_etc_pd_led_white_point_description_white_point
;
1497 static int hf_etc_pd_led_white_point_description_text
;
1498 static int hf_etc_pd_led_frequency
;
1499 static int hf_etc_pd_dmx_data_loss_behavior
;
1500 static int hf_etc_pd_dmx_data_loss_behavior_description_behavior
;
1501 static int hf_etc_pd_dmx_data_loss_behavior_description_text
;
1502 static int hf_etc_pd_led_plus_seven
;
1503 static int hf_etc_pd_backlight_brightness
;
1504 static int hf_etc_pd_backlight_timeout
;
1505 static int hf_etc_pd_status_indicators
;
1506 static int hf_etc_pd_overtemp_mode
;
1507 static int hf_etc_pd_simple_setup_mode
;
1508 static int hf_etc_pd_led_strobe_description_strobe
;
1509 static int hf_etc_pd_led_strobe_description_text
;
1510 static int hf_etc_pd_red_shift_description_red_shift
;
1511 static int hf_etc_pd_red_shift_description_text
;
1512 static int hf_etc_pd_plus_seven_description_plus_seven
;
1513 static int hf_etc_pd_plus_seven_description_text
;
1514 static int hf_etc_pd_backlight_timeout_description_timeout
;
1515 static int hf_etc_pd_backlight_timeout_description_text
;
1516 static int hf_etc_pd_simple_setup_mode_description_mode
;
1517 static int hf_etc_pd_simple_setup_mode_description_text
;
1518 static int hf_etc_pd_overtemp_mode_description_mode
;
1519 static int hf_etc_pd_overtemp_mode_description_text
;
1520 static int hf_etc_pd_led_requested_xy_x
;
1521 static int hf_etc_pd_led_requested_xy_y
;
1522 static int hf_etc_pd_led_current_xy_x
;
1523 static int hf_etc_pd_led_current_xy_y
;
1524 static int hf_etc_pd_current_pwm_led_number
;
1525 static int hf_etc_pd_current_pwm_channel_duty_cycle
;
1526 static int hf_etc_pd_tristimulus_led_number
;
1527 static int hf_etc_pd_tristimulus_x
;
1528 static int hf_etc_pd_tristimulus_y
;
1529 static int hf_etc_pd_tristimulus_z
;
1530 static int hf_etc_pd_led_information_led_number
;
1531 static int hf_etc_pd_led_information_type
;
1532 static int hf_etc_pd_led_information_dmx_control_channel
;
1533 static int hf_etc_pd_led_information_drive_current
;
1534 static int hf_etc_pd_led_information_gamut_polygon_order
;
1535 static int hf_etc_pd_led_information_quantity
;
1536 static int hf_etc_pd_preset_config_preset_number
;
1537 static int hf_etc_pd_preset_config_fade_time
;
1538 static int hf_etc_pd_preset_config_delay_time
;
1539 static int hf_etc_pd_preset_config_hue
;
1540 static int hf_etc_pd_preset_config_saturation
;
1541 static int hf_etc_pd_preset_config_intensity
;
1542 static int hf_etc_pd_preset_config_strobe
;
1543 static int hf_etc_pd_sequence_playback_sequence_number
;
1544 static int hf_etc_pd_sequence_config_sequence_number
;
1545 static int hf_etc_pd_sequence_config_preset_steps
;
1546 static int hf_etc_pd_sequence_config_preset_step
;
1547 static int hf_etc_pd_sequence_config_step_link_times
;
1548 static int hf_etc_pd_sequence_config_step_link_time
;
1549 static int hf_etc_pd_sequence_config_rate
;
1550 static int hf_etc_pd_sequence_config_end_state
;
1551 static int hf_etc_pd_low_power_timeout
;
1552 static int hf_etc_pd_low_power_timeout_description_timeout
;
1553 static int hf_etc_pd_low_power_timeout_description_text
;
1554 static int hf_etc_pd_led_enum_frequency
;
1555 static int hf_etc_pd_led_enum_frequency_description_frequency
;
1556 static int hf_etc_pd_led_enum_frequency_description_text
;
1557 static int hf_etc_pd_rgbi_preset_config_preset_number
;
1558 static int hf_etc_pd_rgbi_preset_config_fade_time
;
1559 static int hf_etc_pd_rgbi_preset_config_delay_time
;
1560 static int hf_etc_pd_rgbi_preset_config_red
;
1561 static int hf_etc_pd_rgbi_preset_config_green
;
1562 static int hf_etc_pd_rgbi_preset_config_blue
;
1563 static int hf_etc_pd_rgbi_preset_config_intensity
;
1564 static int hf_etc_pd_rgbi_preset_config_strobe
;
1565 static int hf_etc_pd_cct_preset_config_preset_number
;
1566 static int hf_etc_pd_cct_preset_config_fade_time
;
1567 static int hf_etc_pd_cct_preset_config_delay_time
;
1568 static int hf_etc_pd_cct_preset_config_white_point
;
1569 static int hf_etc_pd_cct_preset_config_tint
;
1570 static int hf_etc_pd_cct_preset_config_strobe
;
1571 static int hf_etc_pd_cct_preset_config_intensity
;
1572 static int hf_etc_pd_cct_preset_config_tone
;
1573 static int hf_etc_pd_cct_preset_config_reserved
;
1574 static int hf_etc_pd_supplementary_device_version_param_index
;
1575 static int hf_etc_pd_supplementary_device_version_param_description
;
1576 static int hf_etc_pd_power_command
;
1577 static int hf_etc_pd_power_command_description_state
;
1578 static int hf_etc_pd_power_command_description_text
;
1579 static int hf_etc_pd_dali_short_address
;
1580 static int hf_etc_pd_dali_group_membership
;
1581 static int hf_etc_pd_auto_bind
;
1582 static int hf_etc_pd_packet_delay
;
1583 static int hf_etc_pd_has_enum_text_pid
;
1584 static int hf_etc_pd_has_enum_text_true_false
;
1585 static int hf_etc_pd_get_enum_text_pid
;
1586 static int hf_etc_pd_get_enum_text_enum
;
1587 static int hf_etc_pd_get_enum_text_description
;
1589 static int ett_etc_sequence_config_steps
;
1590 static int ett_etc_sequence_config_times
;
1593 /* end manufacturer-specific constants and variables */
1596 rdm_checksum(tvbuff_t
*tvb
, unsigned length
)
1598 uint16_t sum
= RDM_SC_RDM
;
1600 for (i
= 0; i
< length
; i
++)
1601 sum
+= tvb_get_uint8(tvb
, i
);
1606 rdm_proto_tree_add_numeric_item(proto_tree
*tree
, int hfindex
, tvbuff_t
*tvb
, unsigned *offset_ptr
, uint8_t len
)
1608 unsigned offset
= *offset_ptr
;
1609 proto_tree_add_item(tree
, hfindex
, tvb
, offset
, len
, ENC_BIG_ENDIAN
);
1614 rdm_proto_tree_add_ascii_item(proto_tree
*tree
, int hfindex
, tvbuff_t
*tvb
, unsigned *offset_ptr
, int len
)
1616 unsigned offset
= *offset_ptr
;
1617 proto_tree_add_item(tree
, hfindex
, tvb
, offset
, len
, ENC_ASCII
|ENC_NA
);
1622 rdm_proto_tree_add_bytes_item(proto_tree
*tree
, int hfindex
, tvbuff_t
*tvb
, unsigned *offset_ptr
, int len
)
1624 unsigned offset
= *offset_ptr
;
1625 proto_tree_add_item(tree
, hfindex
, tvb
, offset
, len
, ENC_NA
);
1630 dissect_rdm_pd_queued_message(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
1633 case RDM_CC_GET_COMMAND
:
1634 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_queued_message_status
, tvb
, &offset
, 1);
1642 dissect_rdm_pd_dmx_start_address(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
1645 case RDM_CC_SET_COMMAND
:
1646 case RDM_CC_GET_COMMAND_RESPONSE
:
1647 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_start_address
, tvb
, &offset
, 2);
1655 dissect_rdm_pd_device_info(tvbuff_t
*tvb _U_
, unsigned offset
, proto_tree
*tree _U_
, uint8_t cc
, uint8_t len _U_
, uint16_t device_manufacturer_id
)
1658 case RDM_CC_GET_COMMAND_RESPONSE
:
1659 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_proto_vers
, tvb
, &offset
, 2);
1660 switch(device_manufacturer_id
) {
1661 case RDM_MANUFACTURER_ID_ETC
:
1662 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_device_model_id
, tvb
, &offset
, 2);
1665 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_device_model_id
, tvb
, &offset
, 2);
1668 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_product_cat
, tvb
, &offset
, 2);
1669 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_software_vers_id
, tvb
, &offset
, 4);
1670 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_footprint
, tvb
, &offset
, 2);
1671 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_pers_current
, tvb
, &offset
, 1);
1672 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_pers_total
, tvb
, &offset
, 1);
1673 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_start_address
, tvb
, &offset
, 2);
1674 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sub_device_count
, tvb
, &offset
, 2);
1675 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_count
, tvb
, &offset
, 1);
1684 dissect_rdm_pd_device_model_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
1687 case RDM_CC_GET_COMMAND_RESPONSE
:
1688 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_device_model_description
, tvb
, &offset
, len
);
1697 dissect_rdm_pd_device_label(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
1700 case RDM_CC_SET_COMMAND
:
1701 case RDM_CC_GET_COMMAND_RESPONSE
:
1702 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_device_label
, tvb
, &offset
, len
);
1711 dissect_rdm_pd_device_hours(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
1714 case RDM_CC_SET_COMMAND
:
1715 case RDM_CC_GET_COMMAND_RESPONSE
:
1716 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_device_hours
, tvb
, &offset
, 4);
1725 dissect_rdm_pd_lamp_hours(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
1728 case RDM_CC_SET_COMMAND
:
1729 case RDM_CC_GET_COMMAND_RESPONSE
:
1730 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_lamp_hours
, tvb
, &offset
, 4);
1739 dissect_rdm_pd_lamp_strikes(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
1742 case RDM_CC_SET_COMMAND
:
1743 case RDM_CC_GET_COMMAND_RESPONSE
:
1744 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_lamp_strikes
, tvb
, &offset
, 4);
1753 dissect_rdm_pd_sensor_definition(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
1756 case RDM_CC_GET_COMMAND
:
1757 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_nr
, tvb
, &offset
, 1);
1760 case RDM_CC_GET_COMMAND_RESPONSE
:
1761 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_nr
, tvb
, &offset
, 1);
1762 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_type
, tvb
, &offset
, 1);
1763 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_unit
, tvb
, &offset
, 1);
1764 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_prefix
, tvb
, &offset
, 1);
1765 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_range_min_value
, tvb
, &offset
, 2);
1766 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_range_max_value
, tvb
, &offset
, 2);
1767 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_normal_min_value
, tvb
, &offset
, 2);
1768 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_normal_max_value
, tvb
, &offset
, 2);
1769 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_recorded_value_support
, tvb
, &offset
, 1);
1770 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_sensor_description
, tvb
, &offset
, len
-13);
1778 dissect_rdm_pd_sensor_value(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
1780 uint8_t original_len
= len
;
1783 case RDM_CC_GET_COMMAND
:
1784 case RDM_CC_SET_COMMAND
:
1785 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_nr
, tvb
, &offset
, 1);
1788 case RDM_CC_GET_COMMAND_RESPONSE
:
1789 case RDM_CC_SET_COMMAND_RESPONSE
:
1790 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_nr
, tvb
, &offset
, 1);
1791 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_value_pres
, tvb
, &offset
, 2);
1793 if (original_len
== 7 || original_len
== 9) {
1794 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_value_low
, tvb
, &offset
, 2);
1795 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_value_high
, tvb
, &offset
, 2);
1798 if (original_len
== 5 || original_len
== 9) {
1799 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_value_rec
, tvb
, &offset
, 2);
1809 dissect_rdm_pd_manufacturer_label(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
1812 case RDM_CC_GET_COMMAND_RESPONSE
:
1813 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_manu_label
, tvb
, &offset
, len
);
1821 dissect_rdm_pd_disc_unique_branch(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
1824 case RDM_CC_DISCOVERY_COMMAND
:
1825 rdm_proto_tree_add_bytes_item(tree
, hf_rdm_pd_disc_unique_branch_lb_uid
, tvb
, &offset
, 6);
1826 rdm_proto_tree_add_bytes_item(tree
, hf_rdm_pd_disc_unique_branch_ub_uid
, tvb
, &offset
, 6);
1834 dissect_rdm_pd_disc_mute(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
1837 case RDM_CC_DISCOVERY_COMMAND_RESPONSE
:
1838 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_disc_mute_control_field
, tvb
, &offset
, 2);
1840 rdm_proto_tree_add_bytes_item(tree
, hf_rdm_pd_disc_mute_binding_uid
, tvb
, &offset
, 6);
1849 dissect_rdm_pd_disc_un_mute(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
1852 case RDM_CC_DISCOVERY_COMMAND_RESPONSE
:
1853 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_disc_unmute_control_field
, tvb
, &offset
, 2);
1855 rdm_proto_tree_add_bytes_item(tree
, hf_rdm_pd_disc_unmute_binding_uid
, tvb
, &offset
, 6);
1864 dissect_rdm_pd_proxied_devices(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
1867 case RDM_CC_GET_COMMAND_RESPONSE
:
1869 rdm_proto_tree_add_bytes_item(tree
, hf_rdm_pd_proxied_devices_uid
, tvb
, &offset
, 6);
1879 dissect_rdm_pd_proxied_device_count(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
1882 case RDM_CC_GET_COMMAND_RESPONSE
:
1883 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_proxied_device_count
, tvb
, &offset
, 2);
1884 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_proxied_device_list_change
, tvb
, &offset
, 1);
1892 dissect_rdm_pd_comms_status(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
1895 case RDM_CC_GET_COMMAND_RESPONSE
:
1896 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_comms_status_short_msg
, tvb
, &offset
, 2);
1897 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_comms_status_len_mismatch
, tvb
, &offset
, 2);
1898 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_comms_status_csum_fail
, tvb
, &offset
, 2);
1906 dissect_rdm_pd_status_messages(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
1909 case RDM_CC_GET_COMMAND
:
1910 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_status_messages_type
, tvb
, &offset
, 1);
1913 case RDM_CC_GET_COMMAND_RESPONSE
:
1915 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_status_messages_sub_device_id
, tvb
, &offset
, 2);
1916 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_status_messages_type
, tvb
, &offset
, 1);
1917 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_status_messages_id
, tvb
, &offset
, 2);
1918 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_status_messages_data_value_1
, tvb
, &offset
, 2);
1919 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_status_messages_data_value_2
, tvb
, &offset
, 2);
1929 dissect_rdm_pd_status_id_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
1932 case RDM_CC_GET_COMMAND
:
1933 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_status_id
, tvb
, &offset
, 2);
1936 case RDM_CC_GET_COMMAND_RESPONSE
:
1937 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_status_id_description
, tvb
, &offset
, len
);
1945 dissect_rdm_pd_clear_status_id(tvbuff_t
*tvb _U_
, unsigned offset
, proto_tree
*tree _U_
, uint8_t cc _U_
, uint8_t len _U_
)
1951 dissect_rdm_pd_sub_device_status_report_threshold(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
1954 case RDM_CC_SET_COMMAND
:
1955 case RDM_CC_GET_COMMAND_RESPONSE
:
1956 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sub_device_status_report_threshold_status_type
, tvb
, &offset
, 1);
1964 add_param_id_to_tree(uint16_t param_id
, proto_tree
*tree
, tvbuff_t
*tvb
, unsigned *offset
, uint16_t device_manufacturer_id
)
1966 if (param_id
< 0x8000) {
1967 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_parameter_id
, tvb
, offset
, 2);
1969 switch(device_manufacturer_id
) {
1970 case RDM_MANUFACTURER_ID_ETC
:
1971 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_parameter_id
, tvb
, offset
, 2);
1974 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_parameter_id
, tvb
, offset
, 2);
1981 dissect_rdm_pd_supported_parameters(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
, uint16_t device_manufacturer_id
)
1986 case RDM_CC_GET_COMMAND_RESPONSE
:
1988 param_id
= tvb_get_ntohs(tvb
, offset
);
1989 add_param_id_to_tree(param_id
, tree
, tvb
, &offset
, device_manufacturer_id
);
1999 dissect_rdm_pd_parameter_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
, uint16_t device_manufacturer_id
)
2004 case RDM_CC_GET_COMMAND
:
2005 param_id
= tvb_get_ntohs(tvb
, offset
);
2006 add_param_id_to_tree(param_id
, tree
, tvb
, &offset
, device_manufacturer_id
);
2009 case RDM_CC_GET_COMMAND_RESPONSE
:
2010 param_id
= tvb_get_ntohs(tvb
, offset
);
2011 add_param_id_to_tree(param_id
, tree
, tvb
, &offset
, device_manufacturer_id
);
2012 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_parameter_pdl_size
, tvb
, &offset
, 1);
2013 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_parameter_data_type
, tvb
, &offset
, 1);
2014 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_parameter_cmd_class
, tvb
, &offset
, 1);
2015 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_parameter_type
, tvb
, &offset
, 1);
2016 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_parameter_unit
, tvb
, &offset
, 1);
2017 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_parameter_prefix
, tvb
, &offset
, 1);
2018 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_parameter_min_value
, tvb
, &offset
, 4);
2019 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_parameter_max_value
, tvb
, &offset
, 4);
2020 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_parameter_default_value
, tvb
, &offset
, 4);
2021 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_parameter_description
, tvb
, &offset
, len
-20);
2029 dissect_rdm_pd_product_detail_id_list(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2032 case RDM_CC_GET_COMMAND_RESPONSE
:
2034 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_product_detail_id_list
, tvb
, &offset
, 2);
2044 dissect_rdm_pd_factory_defaults(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2047 case RDM_CC_GET_COMMAND_RESPONSE
:
2048 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_factory_defaults
, tvb
, &offset
, 1);
2056 dissect_rdm_pd_language_capabilities(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2059 case RDM_CC_GET_COMMAND_RESPONSE
:
2061 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_language_code
, tvb
, &offset
, 2);
2071 dissect_rdm_pd_language(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2074 case RDM_CC_SET_COMMAND
:
2075 case RDM_CC_GET_COMMAND_RESPONSE
:
2076 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_language_code
, tvb
, &offset
, 2);
2084 dissect_rdm_pd_software_version_label(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2087 case RDM_CC_GET_COMMAND_RESPONSE
:
2088 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_software_version_label
, tvb
, &offset
, len
);
2096 dissect_rdm_pd_boot_software_version_id(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2099 case RDM_CC_GET_COMMAND_RESPONSE
:
2100 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_boot_software_version_id
, tvb
, &offset
, 4);
2108 dissect_rdm_pd_boot_software_version_label(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2111 case RDM_CC_GET_COMMAND_RESPONSE
:
2112 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_boot_software_version_label
, tvb
, &offset
, len
);
2120 dissect_rdm_pd_dmx_personality(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2123 case RDM_CC_SET_COMMAND
:
2124 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_pers_nr
, tvb
, &offset
, 1);
2127 case RDM_CC_GET_COMMAND_RESPONSE
:
2128 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_pers_current
, tvb
, &offset
, 1);
2129 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_pers_count
, tvb
, &offset
, 1);
2137 dissect_rdm_pd_dmx_personality_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2140 case RDM_CC_GET_COMMAND
:
2141 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_pers_requested
, tvb
, &offset
, 1);
2144 case RDM_CC_GET_COMMAND_RESPONSE
:
2145 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_pers_requested
, tvb
, &offset
, 1);
2146 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_pers_slots
, tvb
, &offset
, 2);
2147 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_dmx_pers_text
, tvb
, &offset
, len
-3);
2155 dissect_rdm_pd_slot_info(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2158 case RDM_CC_GET_COMMAND_RESPONSE
:
2160 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_slot_offset
, tvb
, &offset
, 2);
2161 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_slot_type
, tvb
, &offset
, 1);
2162 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_slot_label_id
, tvb
, &offset
, 2);
2172 dissect_rdm_pd_slot_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2175 case RDM_CC_GET_COMMAND
:
2176 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_slot_nr
, tvb
, &offset
, 2);
2179 case RDM_CC_GET_COMMAND_RESPONSE
:
2180 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_slot_nr
, tvb
, &offset
, 2);
2181 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_slot_description
, tvb
, &offset
, len
-2);
2189 dissect_rdm_pd_slot_value(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2192 case RDM_CC_GET_COMMAND_RESPONSE
:
2194 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_slot_offset
, tvb
, &offset
, 2);
2195 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_slot_value
, tvb
, &offset
, 1);
2205 dissect_rdm_pd_dmx_block_address(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2208 case RDM_CC_GET_COMMAND_RESPONSE
:
2209 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_block_address_subdevice_footprint
, tvb
, &offset
, 2);
2210 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_block_address_base_dmx_address
, tvb
, &offset
, 2);
2213 case RDM_CC_SET_COMMAND
:
2214 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_block_address_base_dmx_address
, tvb
, &offset
, 2);
2222 dissect_rdm_pd_dmx_fail_mode(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2225 case RDM_CC_GET_COMMAND_RESPONSE
:
2226 case RDM_CC_SET_COMMAND
:
2227 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_fail_mode_scene_number
, tvb
, &offset
, 2);
2228 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_fail_mode_loss_of_signal_delay
, tvb
, &offset
, 2);
2229 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_fail_mode_hold_time
, tvb
, &offset
, 2);
2230 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_fail_mode_level
, tvb
, &offset
, 1);
2238 dissect_rdm_pd_dmx_startup_mode(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2241 case RDM_CC_GET_COMMAND_RESPONSE
:
2242 case RDM_CC_SET_COMMAND
:
2243 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_startup_mode_scene_number
, tvb
, &offset
, 2);
2244 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_startup_mode_loss_of_signal_delay
, tvb
, &offset
, 2);
2245 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_startup_mode_hold_time
, tvb
, &offset
, 2);
2246 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dmx_startup_mode_level
, tvb
, &offset
, 1);
2254 dissect_rdm_pd_record_sensors(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2257 case RDM_CC_GET_COMMAND
:
2258 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_nr
, tvb
, &offset
, 1);
2261 case RDM_CC_GET_COMMAND_RESPONSE
:
2262 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_nr
, tvb
, &offset
, 1);
2263 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_type
, tvb
, &offset
, 1);
2264 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_unit
, tvb
, &offset
, 1);
2265 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_prefix
, tvb
, &offset
, 1);
2266 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_range_min_value
, tvb
, &offset
, 2);
2267 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_range_max_value
, tvb
, &offset
, 2);
2268 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_normal_min_value
, tvb
, &offset
, 2);
2269 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_sensor_normal_max_value
, tvb
, &offset
, 2);
2270 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_rec_value_support
, tvb
, &offset
, 1);
2271 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_sensor_description
, tvb
, &offset
, len
-13);
2279 dissect_rdm_pd_dimmer_info(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2282 case RDM_CC_GET_COMMAND_RESPONSE
:
2283 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dimmer_info_minimum_level_lower_limit
, tvb
, &offset
, 2);
2284 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dimmer_info_minimum_level_upper_limit
, tvb
, &offset
, 2);
2285 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dimmer_info_maximum_level_lower_limit
, tvb
, &offset
, 2);
2286 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dimmer_info_maximum_level_upper_limit
, tvb
, &offset
, 2);
2287 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dimmer_info_number_of_supported_curves
, tvb
, &offset
, 1);
2288 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dimmer_info_levels_resolution
, tvb
, &offset
, 1);
2289 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dimmer_info_minimum_level_split_levels_supported
, tvb
, &offset
, 1);
2297 dissect_rdm_pd_minimum_level(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2300 case RDM_CC_GET_COMMAND_RESPONSE
:
2301 case RDM_CC_SET_COMMAND
:
2302 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_minimum_level_increasing
, tvb
, &offset
, 2);
2303 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_minimum_level_decreasing
, tvb
, &offset
, 2);
2304 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_minimum_level_on_below_minimum
, tvb
, &offset
, 1);
2312 dissect_rdm_pd_maximum_level(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2315 case RDM_CC_GET_COMMAND_RESPONSE
:
2316 case RDM_CC_SET_COMMAND
:
2317 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_maximum_level_level
, tvb
, &offset
, 2);
2325 dissect_rdm_pd_curve(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2328 case RDM_CC_GET_COMMAND_RESPONSE
:
2329 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_curve_curve
, tvb
, &offset
, 1);
2330 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_curve_number_of_curves
, tvb
, &offset
, 1);
2333 case RDM_CC_SET_COMMAND
:
2334 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_curve_curve
, tvb
, &offset
, 1);
2342 dissect_rdm_pd_curve_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2345 case RDM_CC_GET_COMMAND
:
2346 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_curve_description_curve
, tvb
, &offset
, 1);
2349 case RDM_CC_GET_COMMAND_RESPONSE
:
2350 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_curve_description_curve
, tvb
, &offset
, 1);
2351 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_curve_description_text
, tvb
, &offset
, len
-1);
2359 dissect_rdm_pd_output_response_time(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2362 case RDM_CC_GET_COMMAND_RESPONSE
:
2363 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_output_response_time_response_time
, tvb
, &offset
, 1);
2364 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_output_response_time_number_of_response_times
, tvb
, &offset
, 1);
2367 case RDM_CC_SET_COMMAND
:
2368 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_output_response_time_response_time
, tvb
, &offset
, 1);
2376 dissect_rdm_pd_output_response_time_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2379 case RDM_CC_GET_COMMAND
:
2380 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_output_response_time_description_output_response_time
, tvb
, &offset
, 1);
2383 case RDM_CC_GET_COMMAND_RESPONSE
:
2384 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_output_response_time_description_output_response_time
, tvb
, &offset
, 1);
2385 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_output_response_time_description_text
, tvb
, &offset
, len
-1);
2393 dissect_rdm_pd_modulation_frequency(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2396 case RDM_CC_GET_COMMAND_RESPONSE
:
2397 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_modulation_frequency_modulation_frequency
, tvb
, &offset
, 1);
2398 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_modulation_frequency_number_of_modulation_frequencies
, tvb
, &offset
, 1);
2401 case RDM_CC_SET_COMMAND
:
2402 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_modulation_frequency_modulation_frequency
, tvb
, &offset
, 1);
2410 dissect_rdm_pd_modulation_frequency_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2413 case RDM_CC_GET_COMMAND
:
2414 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_modulation_frequency_description_modulation_frequency
, tvb
, &offset
, 1);
2417 case RDM_CC_GET_COMMAND_RESPONSE
:
2418 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_modulation_frequency_description_modulation_frequency
, tvb
, &offset
, 1);
2419 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_modulation_frequency_description_text
, tvb
, &offset
, len
-1);
2427 dissect_rdm_pd_lamp_state(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2430 case RDM_CC_SET_COMMAND
:
2431 case RDM_CC_GET_COMMAND_RESPONSE
:
2432 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_lamp_state
, tvb
, &offset
, 1);
2440 dissect_rdm_pd_lamp_on_mode(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2443 case RDM_CC_SET_COMMAND
:
2444 case RDM_CC_GET_COMMAND_RESPONSE
:
2445 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_lamp_on_mode
, tvb
, &offset
, 1);
2453 dissect_rdm_pd_device_power_cycles(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2456 case RDM_CC_SET_COMMAND
:
2457 case RDM_CC_GET_COMMAND_RESPONSE
:
2458 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_device_power_cycles
, tvb
, &offset
, 4);
2466 dissect_rdm_pd_burn_in(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2469 case RDM_CC_GET_COMMAND_RESPONSE
:
2470 case RDM_CC_SET_COMMAND
:
2471 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_burn_in
, tvb
, &offset
, 1);
2479 dissect_rdm_pd_display_invert(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2482 case RDM_CC_SET_COMMAND
:
2483 case RDM_CC_GET_COMMAND_RESPONSE
:
2484 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_display_invert
, tvb
, &offset
, 1);
2492 dissect_rdm_pd_display_level(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2495 case RDM_CC_SET_COMMAND
:
2496 case RDM_CC_GET_COMMAND_RESPONSE
:
2497 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_display_level
, tvb
, &offset
, 1);
2505 dissect_rdm_pd_pan_invert(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2508 case RDM_CC_SET_COMMAND
:
2509 case RDM_CC_GET_COMMAND_RESPONSE
:
2510 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_pan_invert
, tvb
, &offset
, 1);
2518 dissect_rdm_pd_tilt_invert(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2521 case RDM_CC_SET_COMMAND
:
2522 case RDM_CC_GET_COMMAND_RESPONSE
:
2523 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_tilt_invert
, tvb
, &offset
, 1);
2531 dissect_rdm_pd_pan_tilt_swap(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2534 case RDM_CC_SET_COMMAND
:
2535 case RDM_CC_GET_COMMAND_RESPONSE
:
2536 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_tilt_swap
, tvb
, &offset
, 1);
2544 dissect_rdm_pd_real_time_clock(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2547 case RDM_CC_SET_COMMAND
:
2548 case RDM_CC_GET_COMMAND_RESPONSE
:
2549 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_real_time_clock_year
, tvb
, &offset
, 2);
2550 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_real_time_clock_month
, tvb
, &offset
, 1);
2551 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_real_time_clock_day
, tvb
, &offset
, 1);
2552 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_real_time_clock_hour
, tvb
, &offset
, 1);
2553 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_real_time_clock_minute
, tvb
, &offset
, 1);
2554 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_real_time_clock_second
, tvb
, &offset
, 1);
2562 dissect_rdm_pd_lock_pin(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2565 case RDM_CC_GET_COMMAND_RESPONSE
:
2566 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_lock_pin_pin_code
, tvb
, &offset
, 2);
2569 case RDM_CC_SET_COMMAND
:
2570 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_lock_pin_new_pin_code
, tvb
, &offset
, 2);
2571 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_lock_pin_pin_code
, tvb
, &offset
, 2);
2579 dissect_rdm_pd_lock_state(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2582 case RDM_CC_GET_COMMAND_RESPONSE
:
2583 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_lock_state_lock_state
, tvb
, &offset
, 1);
2584 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_lock_state_number_of_lock_states
, tvb
, &offset
, 1);
2587 case RDM_CC_SET_COMMAND
:
2588 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_lock_state_pin_code
, tvb
, &offset
, 2);
2589 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_lock_state_lock_state
, tvb
, &offset
, 1);
2597 dissect_rdm_pd_lock_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2600 case RDM_CC_GET_COMMAND
:
2601 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_lock_state_description_lock_state
, tvb
, &offset
, 1);
2604 case RDM_CC_GET_COMMAND_RESPONSE
:
2605 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_lock_state_description_lock_state
, tvb
, &offset
, 1);
2606 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_lock_state_description_text
, tvb
, &offset
, len
-1);
2614 dissect_rdm_pd_list_interfaces(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2617 case RDM_CC_GET_COMMAND_RESPONSE
:
2619 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_list_interfaces_interface_identifier
, tvb
, &offset
, 4);
2620 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_list_interfaces_interface_hardware_type
, tvb
, &offset
, 2);
2630 dissect_rdm_pd_interface_label(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2633 case RDM_CC_GET_COMMAND
:
2634 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_interface_label_interface_identifier
, tvb
, &offset
, 4);
2636 case RDM_CC_GET_COMMAND_RESPONSE
:
2637 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_interface_label_interface_identifier
, tvb
, &offset
, 4);
2638 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_interface_label_label
, tvb
, &offset
, len
-4);
2646 dissect_rdm_pd_hardware_address_type1(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2649 case RDM_CC_GET_COMMAND
:
2650 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_hardware_address_type1_interface_identifier
, tvb
, &offset
, 4);
2652 case RDM_CC_GET_COMMAND_RESPONSE
:
2653 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_hardware_address_type1_interface_identifier
, tvb
, &offset
, 4);
2654 rdm_proto_tree_add_bytes_item(tree
, hf_rdm_pd_hardware_address_type1_hardware_address
, tvb
, &offset
, 6);
2662 dissect_rdm_pd_dhcp_mode(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2665 case RDM_CC_GET_COMMAND
:
2666 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dhcp_mode_interface_identifier
, tvb
, &offset
, 4);
2668 case RDM_CC_GET_COMMAND_RESPONSE
:
2669 case RDM_CC_SET_COMMAND
:
2670 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dhcp_mode_interface_identifier
, tvb
, &offset
, 4);
2671 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dhcp_mode_enabled
, tvb
, &offset
, 1);
2679 dissect_rdm_pd_zeroconf_mode(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2682 case RDM_CC_GET_COMMAND
:
2683 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_zeroconf_mode_interface_identifier
, tvb
, &offset
, 4);
2685 case RDM_CC_GET_COMMAND_RESPONSE
:
2686 case RDM_CC_SET_COMMAND
:
2687 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_zeroconf_mode_interface_identifier
, tvb
, &offset
, 4);
2688 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_zeroconf_mode_enabled
, tvb
, &offset
, 1);
2696 dissect_rdm_pd_current_address(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2699 case RDM_CC_GET_COMMAND
:
2700 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_current_address_interface_identifier
, tvb
, &offset
, 4);
2702 case RDM_CC_GET_COMMAND_RESPONSE
:
2703 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_current_address_interface_identifier
, tvb
, &offset
, 4);
2704 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_current_address_ipv4_address
, tvb
, &offset
, 4);
2705 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_current_address_netmask
, tvb
, &offset
, 1);
2706 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_current_address_dhcp_status
, tvb
, &offset
, 1);
2714 dissect_rdm_pd_static_address(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2717 case RDM_CC_GET_COMMAND
:
2718 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_static_address_interface_identifier
, tvb
, &offset
, 4);
2720 case RDM_CC_GET_COMMAND_RESPONSE
:
2721 case RDM_CC_SET_COMMAND
:
2722 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_static_address_interface_identifier
, tvb
, &offset
, 4);
2723 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_static_address_ipv4_address
, tvb
, &offset
, 4);
2724 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_static_address_netmask
, tvb
, &offset
, 1);
2732 dissect_rdm_pd_interface_renew_dhcp(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2735 case RDM_CC_SET_COMMAND
:
2736 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_interface_renew_dhcp_interface_identifier
, tvb
, &offset
, 4);
2744 dissect_rdm_pd_interface_release_dhcp(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2747 case RDM_CC_SET_COMMAND
:
2748 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_interface_release_dhcp_interface_identifier
, tvb
, &offset
, 4);
2756 dissect_rdm_pd_interface_apply_configuration(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2759 case RDM_CC_SET_COMMAND
:
2760 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_interface_apply_configuration_interface_identifier
, tvb
, &offset
, 4);
2768 dissect_rdm_pd_ipv4_default_route(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2771 case RDM_CC_GET_COMMAND_RESPONSE
:
2772 case RDM_CC_SET_COMMAND
:
2773 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_ipv4_default_route_interface_identifier
, tvb
, &offset
, 4);
2774 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_ipv4_default_route_ipv4_default_route
, tvb
, &offset
, 4);
2782 dissect_rdm_pd_dns_ipv4_name_server(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2785 case RDM_CC_GET_COMMAND
:
2786 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dns_ipv4_name_server_index
, tvb
, &offset
, 1);
2788 case RDM_CC_GET_COMMAND_RESPONSE
:
2789 case RDM_CC_SET_COMMAND
:
2790 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dns_ipv4_name_server_index
, tvb
, &offset
, 1);
2791 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_dns_ipv4_name_server_address
, tvb
, &offset
, 4);
2799 dissect_rdm_pd_dns_hostname(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2802 case RDM_CC_GET_COMMAND_RESPONSE
:
2803 case RDM_CC_SET_COMMAND
:
2804 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_dns_hostname
, tvb
, &offset
, len
);
2812 dissect_rdm_pd_dns_domain_name(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2815 case RDM_CC_GET_COMMAND_RESPONSE
:
2816 case RDM_CC_SET_COMMAND
:
2817 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_dns_domain_name
, tvb
, &offset
, len
);
2825 dissect_rdm_pd_identify_device(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2828 case RDM_CC_SET_COMMAND
:
2829 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_identify_device
, tvb
, &offset
, 1);
2832 case RDM_CC_GET_COMMAND_RESPONSE
:
2833 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_identify_device_state
, tvb
, &offset
, 1);
2841 dissect_rdm_pd_reset_device(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2844 case RDM_CC_SET_COMMAND
:
2845 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_reset_device
, tvb
, &offset
, 1);
2853 dissect_rdm_pd_power_state(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2856 case RDM_CC_SET_COMMAND
:
2857 case RDM_CC_GET_COMMAND_RESPONSE
:
2858 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_power_state
, tvb
, &offset
, 1);
2866 dissect_rdm_pd_perform_selftest(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2869 case RDM_CC_SET_COMMAND
:
2870 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_selftest_nr
, tvb
, &offset
, 1);
2873 case RDM_CC_GET_COMMAND_RESPONSE
:
2874 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_selftest_state
, tvb
, &offset
, 1);
2882 dissect_rdm_pd_self_test_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
2885 case RDM_CC_GET_COMMAND
:
2886 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_selftest_nr
, tvb
, &offset
, 1);
2889 case RDM_CC_GET_COMMAND_RESPONSE
:
2890 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_selftest_nr
, tvb
, &offset
, 1);
2891 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_selftest_description
, tvb
, &offset
, len
-1);
2899 dissect_rdm_pd_capture_preset(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2902 case RDM_CC_SET_COMMAND
:
2903 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_capture_preset_scene_nr
, tvb
, &offset
, 2);
2904 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_capture_preset_up_fade_time
, tvb
, &offset
, 2);
2905 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_capture_preset_down_fade_time
, tvb
, &offset
, 2);
2906 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_capture_preset_wait_time
, tvb
, &offset
, 2);
2914 dissect_rdm_pd_preset_playback(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len _U_
)
2917 case RDM_CC_SET_COMMAND
:
2918 case RDM_CC_GET_COMMAND_RESPONSE
:
2919 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_playback_mode
, tvb
, &offset
, 2);
2920 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_playback_level
, tvb
, &offset
, 1);
2928 dissect_rdm_pd_identify_mode(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2931 case RDM_CC_GET_COMMAND_RESPONSE
:
2932 case RDM_CC_SET_COMMAND
:
2933 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_identify_mode
, tvb
, &offset
, 1);
2941 dissect_rdm_pd_preset_info(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2944 case RDM_CC_GET_COMMAND_RESPONSE
:
2945 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_level_field_supported
, tvb
, &offset
, 1);
2946 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_preset_sequence_supported
, tvb
, &offset
, 1);
2947 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_split_times_supported
, tvb
, &offset
, 1);
2948 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_dmx_fail_infinite_delay_time_supported
, tvb
, &offset
, 1);
2949 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_dmx_fail_infinite_hold_time_supported
, tvb
, &offset
, 1);
2950 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_start_up_infinite_hold_time_supported
, tvb
, &offset
, 1);
2951 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_maximum_scene_number
, tvb
, &offset
, 2);
2952 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_minimum_preset_fade_time_supported
, tvb
, &offset
, 2);
2953 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_maximum_preset_fade_time_supported
, tvb
, &offset
, 2);
2954 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_minimum_preset_wait_time_supported
, tvb
, &offset
, 2);
2955 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_maximum_preset_wait_time_supported
, tvb
, &offset
, 2);
2956 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_minimum_dmx_fail_delay_time_supported
, tvb
, &offset
, 2);
2957 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_maximum_dmx_fail_delay_time_supported
, tvb
, &offset
, 2);
2958 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_minimum_dmx_fail_hold_time_supported
, tvb
, &offset
, 2);
2959 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_maximum_dmx_fail_hold_time_supported
, tvb
, &offset
, 2);
2960 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_minimum_start_up_delay_time_supported
, tvb
, &offset
, 2);
2961 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_maximum_start_up_delay_time_supported
, tvb
, &offset
, 2);
2962 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_minimum_start_up_hold_time_supported
, tvb
, &offset
, 2);
2963 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_info_maximum_start_up_hold_time_supported
, tvb
, &offset
, 2);
2971 dissect_rdm_pd_preset_status(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
2974 case RDM_CC_GET_COMMAND
:
2975 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_status_scene_number
, tvb
, &offset
, 2);
2977 case RDM_CC_GET_COMMAND_RESPONSE
:
2978 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_status_scene_number
, tvb
, &offset
, 2);
2979 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_status_up_fade_time
, tvb
, &offset
, 2);
2980 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_status_down_fade_time
, tvb
, &offset
, 2);
2981 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_status_wait_time
, tvb
, &offset
, 2);
2982 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_status_programmed
, tvb
, &offset
, 1);
2984 case RDM_CC_SET_COMMAND
:
2985 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_status_scene_number
, tvb
, &offset
, 2);
2986 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_status_up_fade_time
, tvb
, &offset
, 2);
2987 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_status_down_fade_time
, tvb
, &offset
, 2);
2988 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_status_wait_time
, tvb
, &offset
, 2);
2989 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_status_clear_preset
, tvb
, &offset
, 1);
2997 dissect_rdm_pd_preset_mergemode(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3000 case RDM_CC_GET_COMMAND_RESPONSE
:
3001 case RDM_CC_SET_COMMAND
:
3002 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_preset_mergemode
, tvb
, &offset
, 1);
3010 dissect_rdm_pd_power_on_self_test(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3013 case RDM_CC_GET_COMMAND_RESPONSE
:
3014 case RDM_CC_SET_COMMAND
:
3015 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_power_on_self_test
, tvb
, &offset
, 1);
3023 dissect_rdm_pd_background_queued_status_policy(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3026 case RDM_CC_GET_COMMAND_RESPONSE
:
3027 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_background_queued_status_policy_current_policy
, tvb
, &offset
, 1);
3028 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_background_queued_status_policy_number_of_policies
, tvb
, &offset
, 1);
3030 case RDM_CC_SET_COMMAND
:
3031 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_background_queued_status_policy_current_policy
, tvb
, &offset
, 1);
3039 dissect_rdm_pd_background_queued_status_policy_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3042 case RDM_CC_GET_COMMAND
:
3043 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_background_queued_status_policy_description_policy
, tvb
, &offset
, 1);
3045 case RDM_CC_GET_COMMAND_RESPONSE
:
3046 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_background_queued_status_policy_description_policy
, tvb
, &offset
, 1);
3047 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_background_queued_status_policy_description_description
, tvb
, &offset
, len
-1);
3055 dissect_rdm_pd_endpoint_list(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3058 case RDM_CC_GET_COMMAND_RESPONSE
:
3059 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_list_change_number
, tvb
, &offset
, 4);
3062 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_list_endpoint_id
, tvb
, &offset
, 2);
3063 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_list_endpoint_type
, tvb
, &offset
, 1);
3073 dissect_rdm_pd_search_domain(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3076 case RDM_CC_GET_COMMAND_RESPONSE
:
3077 case RDM_CC_SET_COMMAND
:
3078 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_search_domain_dns_domain_name
, tvb
, &offset
, len
);
3085 dissect_rdm_pd_endpoint_to_universe(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3088 case RDM_CC_GET_COMMAND
:
3089 case RDM_CC_SET_COMMAND_RESPONSE
:
3090 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_to_universe_endpoint_id
, tvb
, &offset
, 2);
3092 case RDM_CC_GET_COMMAND_RESPONSE
:
3093 case RDM_CC_SET_COMMAND
:
3094 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_to_universe_endpoint_id
, tvb
, &offset
, 2);
3095 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_to_universe_universe_number
, tvb
, &offset
, 2);
3103 dissect_rdm_pd_rdm_traffic_enable(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3106 case RDM_CC_GET_COMMAND
:
3107 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_rdm_traffic_enable_endpoint_id
, tvb
, &offset
, 2);
3109 case RDM_CC_GET_COMMAND_RESPONSE
:
3110 case RDM_CC_SET_COMMAND
:
3111 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_rdm_traffic_enable_endpoint_id
, tvb
, &offset
, 2);
3112 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_rdm_traffic_enable_rdm_enabled
, tvb
, &offset
, 1);
3120 dissect_rdm_pd_endpoint_mode(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3123 case RDM_CC_GET_COMMAND
:
3124 case RDM_CC_SET_COMMAND_RESPONSE
:
3125 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_mode_endpoint_id
, tvb
, &offset
, 2);
3127 case RDM_CC_GET_COMMAND_RESPONSE
:
3128 case RDM_CC_SET_COMMAND
:
3129 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_mode_endpoint_id
, tvb
, &offset
, 2);
3130 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_mode_endpoint_mode
, tvb
, &offset
, 1);
3138 dissect_rdm_pd_endpoint_label(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3141 case RDM_CC_GET_COMMAND
:
3142 case RDM_CC_SET_COMMAND_RESPONSE
:
3143 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_label_endpoint_id
, tvb
, &offset
, 2);
3145 case RDM_CC_GET_COMMAND_RESPONSE
:
3146 case RDM_CC_SET_COMMAND
:
3147 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_label_endpoint_id
, tvb
, &offset
, 2);
3148 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_endpoint_label_label
, tvb
, &offset
, len
-2);
3156 dissect_rdm_pd_discovery_state(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3159 case RDM_CC_GET_COMMAND
:
3160 case RDM_CC_SET_COMMAND_RESPONSE
:
3161 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_discovery_state_endpoint_id
, tvb
, &offset
, 2);
3163 case RDM_CC_GET_COMMAND_RESPONSE
:
3164 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_discovery_state_endpoint_id
, tvb
, &offset
, 2);
3165 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_discovery_state_device_count
, tvb
, &offset
, 2);
3166 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_discovery_state_discovery_state
, tvb
, &offset
, 1);
3168 case RDM_CC_SET_COMMAND
:
3169 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_discovery_state_endpoint_id
, tvb
, &offset
, 2);
3170 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_discovery_state_discovery_state
, tvb
, &offset
, 1);
3178 dissect_rdm_pd_endpoint_timing(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3181 case RDM_CC_GET_COMMAND
:
3182 case RDM_CC_SET_COMMAND_RESPONSE
:
3183 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_timing_endpoint_id
, tvb
, &offset
, 2);
3185 case RDM_CC_GET_COMMAND_RESPONSE
:
3186 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_timing_endpoint_id
, tvb
, &offset
, 2);
3187 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_timing_setting
, tvb
, &offset
, 1);
3188 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_timing_number_of_settings
, tvb
, &offset
, 1);
3190 case RDM_CC_SET_COMMAND
:
3191 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_timing_endpoint_id
, tvb
, &offset
, 2);
3192 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_timing_setting
, tvb
, &offset
, 1);
3200 dissect_rdm_pd_endpoint_timing_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3203 case RDM_CC_GET_COMMAND
:
3204 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_timing_description_setting
, tvb
, &offset
, 1);
3206 case RDM_CC_GET_COMMAND_RESPONSE
:
3207 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_timing_description_setting
, tvb
, &offset
, 1);
3208 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_endpoint_timing_description_description
, tvb
, &offset
, len
-1);
3216 dissect_rdm_pd_binding_control_fields(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3219 case RDM_CC_GET_COMMAND
:
3220 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_binding_control_fields_endpoint_id
, tvb
, &offset
, 2);
3221 rdm_proto_tree_add_bytes_item(tree
, hf_rdm_pd_binding_control_fields_uid
, tvb
, &offset
, 6);
3223 case RDM_CC_GET_COMMAND_RESPONSE
:
3224 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_binding_control_fields_endpoint_id
, tvb
, &offset
, 2);
3225 rdm_proto_tree_add_bytes_item(tree
, hf_rdm_pd_binding_control_fields_uid
, tvb
, &offset
, 6);
3226 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_binding_control_fields_control_field
, tvb
, &offset
, 2);
3227 rdm_proto_tree_add_bytes_item(tree
, hf_rdm_pd_binding_control_fields_binding_uid
, tvb
, &offset
, 6);
3235 dissect_rdm_pd_identify_endpoint(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3238 case RDM_CC_GET_COMMAND
:
3239 case RDM_CC_SET_COMMAND_RESPONSE
:
3240 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_identify_endpoint_endpoint_id
, tvb
, &offset
, 2);
3242 case RDM_CC_GET_COMMAND_RESPONSE
:
3243 case RDM_CC_SET_COMMAND
:
3244 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_identify_endpoint_endpoint_id
, tvb
, &offset
, 2);
3245 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_identify_endpoint_identify_state
, tvb
, &offset
, 1);
3253 dissect_rdm_pd_background_discovery(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3256 case RDM_CC_GET_COMMAND
:
3257 case RDM_CC_SET_COMMAND_RESPONSE
:
3258 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_background_discovery_endpoint_id
, tvb
, &offset
, 2);
3260 case RDM_CC_GET_COMMAND_RESPONSE
:
3261 case RDM_CC_SET_COMMAND
:
3262 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_background_discovery_endpoint_id
, tvb
, &offset
, 2);
3263 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_background_discovery_enabled
, tvb
, &offset
, 1);
3271 dissect_rdm_pd_endpoint_responder_list_change(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3274 case RDM_CC_GET_COMMAND
:
3275 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_responder_list_change_endpoint_id
, tvb
, &offset
, 2);
3277 case RDM_CC_GET_COMMAND_RESPONSE
:
3278 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_responder_list_change_endpoint_id
, tvb
, &offset
, 2);
3279 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_responder_list_change_change_number
, tvb
, &offset
, 4);
3287 dissect_rdm_pd_endpoint_responders(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3290 case RDM_CC_GET_COMMAND
:
3291 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_responders_endpoint_id
, tvb
, &offset
, 2);
3293 case RDM_CC_GET_COMMAND_RESPONSE
:
3294 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_responders_endpoint_id
, tvb
, &offset
, 2);
3295 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_responders_change_number
, tvb
, &offset
, 4);
3298 rdm_proto_tree_add_bytes_item(tree
, hf_rdm_pd_endpoint_responders_uid
, tvb
, &offset
, 6);
3308 dissect_rdm_pd_tcp_comms_status(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3311 case RDM_CC_GET_COMMAND_RESPONSE
:
3313 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_tcp_comms_status_scope_string
, tvb
, &offset
, 63);
3314 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_tcp_comms_status_broker_ipv4_address
, tvb
, &offset
, 4);
3315 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_tcp_comms_status_broker_ipv6_address
, tvb
, &offset
, 16);
3316 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_tcp_comms_status_broker_port
, tvb
, &offset
, 2);
3317 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_tcp_comms_status_unhealthy_tcp_events
, tvb
, &offset
, 2);
3321 case RDM_CC_SET_COMMAND
:
3322 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_tcp_comms_status_scope_string
, tvb
, &offset
, 63);
3330 dissect_rdm_pd_endpoint_list_change(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3333 case RDM_CC_GET_COMMAND_RESPONSE
:
3334 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_endpoint_list_change_change_number
, tvb
, &offset
, 4);
3342 dissect_rdm_pd_component_scope(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3345 case RDM_CC_GET_COMMAND
:
3346 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_component_scope_scope_slot
, tvb
, &offset
, 2);
3348 case RDM_CC_GET_COMMAND_RESPONSE
:
3349 case RDM_CC_SET_COMMAND
:
3350 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_component_scope_scope_slot
, tvb
, &offset
, 2);
3351 rdm_proto_tree_add_ascii_item(tree
, hf_rdm_pd_component_scope_scope_string
, tvb
, &offset
, 63);
3352 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_component_scope_scope_static_config_type
, tvb
, &offset
, 1);
3353 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_component_scope_scope_static_ipv4_address
, tvb
, &offset
, 4);
3354 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_component_scope_scope_static_ipv6_address
, tvb
, &offset
, 16);
3355 rdm_proto_tree_add_numeric_item(tree
, hf_rdm_pd_component_scope_scope_static_port
, tvb
, &offset
, 2);
3363 dissect_rdm_pd_broker_status(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3366 case RDM_CC_GET_COMMAND_RESPONSE
:
3367 rdm_proto_tree_add_numeric_item(tree
, hf_rem_pd_broker_status_set_allowed
, tvb
, &offset
, 1);
3368 rdm_proto_tree_add_numeric_item(tree
, hf_rem_pd_broker_status_state
, tvb
, &offset
, 1);
3370 case RDM_CC_SET_COMMAND
:
3371 rdm_proto_tree_add_numeric_item(tree
, hf_rem_pd_broker_status_state
, tvb
, &offset
, 1);
3379 dissect_etc_pd_led_curve(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3382 case RDM_CC_GET_COMMAND_RESPONSE
:
3383 case RDM_CC_SET_COMMAND
:
3384 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_curve
, tvb
, &offset
, 1);
3392 dissect_etc_pd_led_curve_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3395 case RDM_CC_GET_COMMAND
:
3396 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_curve_description_curve
, tvb
, &offset
, 1);
3398 case RDM_CC_GET_COMMAND_RESPONSE
:
3399 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_curve_description_curve
, tvb
, &offset
, 1);
3400 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_led_curve_description_text
, tvb
, &offset
, len
-1);
3408 dissect_etc_pd_led_strobe(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3411 case RDM_CC_GET_COMMAND_RESPONSE
:
3412 case RDM_CC_SET_COMMAND
:
3413 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_strobe
, tvb
, &offset
, 1);
3421 dissect_etc_pd_led_output_mode(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3424 case RDM_CC_GET_COMMAND_RESPONSE
:
3425 case RDM_CC_SET_COMMAND
:
3426 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_output_mode
, tvb
, &offset
, 1);
3434 dissect_etc_pd_led_output_mode_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3437 case RDM_CC_GET_COMMAND
:
3438 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_output_mode_description_mode
, tvb
, &offset
, 1);
3440 case RDM_CC_GET_COMMAND_RESPONSE
:
3441 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_output_mode_description_mode
, tvb
, &offset
, 1);
3442 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_led_output_mode_description_text
, tvb
, &offset
, len
-1);
3450 dissect_etc_pd_led_red_shift(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3453 case RDM_CC_GET_COMMAND_RESPONSE
:
3454 case RDM_CC_SET_COMMAND
:
3455 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_red_shift
, tvb
, &offset
, 1);
3463 dissect_etc_pd_led_white_point(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3466 case RDM_CC_GET_COMMAND_RESPONSE
:
3467 case RDM_CC_SET_COMMAND
:
3468 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_white_point
, tvb
, &offset
, 1);
3476 dissect_etc_pd_led_white_point_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3479 case RDM_CC_GET_COMMAND
:
3480 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_white_point_description_white_point
, tvb
, &offset
, 1);
3482 case RDM_CC_GET_COMMAND_RESPONSE
:
3483 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_white_point_description_white_point
, tvb
, &offset
, 1);
3484 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_led_white_point_description_text
, tvb
, &offset
, len
-1);
3492 dissect_etc_pd_led_frequency(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3495 case RDM_CC_GET_COMMAND_RESPONSE
:
3496 case RDM_CC_SET_COMMAND
:
3497 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_frequency
, tvb
, &offset
, 2);
3505 dissect_etc_pd_dmx_data_loss_behavior(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3508 case RDM_CC_GET_COMMAND_RESPONSE
:
3509 case RDM_CC_SET_COMMAND
:
3510 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_dmx_data_loss_behavior
, tvb
, &offset
, 1);
3518 dissect_etc_pd_dmx_data_loss_behavior_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3521 case RDM_CC_GET_COMMAND
:
3522 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_dmx_data_loss_behavior_description_behavior
, tvb
, &offset
, 1);
3524 case RDM_CC_GET_COMMAND_RESPONSE
:
3525 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_dmx_data_loss_behavior_description_behavior
, tvb
, &offset
, 1);
3526 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_dmx_data_loss_behavior_description_text
, tvb
, &offset
, len
-1);
3534 dissect_etc_pd_led_plus_seven(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3537 case RDM_CC_GET_COMMAND_RESPONSE
:
3538 case RDM_CC_SET_COMMAND
:
3539 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_plus_seven
, tvb
, &offset
, 1);
3547 dissect_etc_pd_backlight_brightness(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3550 case RDM_CC_GET_COMMAND_RESPONSE
:
3551 case RDM_CC_SET_COMMAND
:
3552 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_backlight_brightness
, tvb
, &offset
, 1);
3560 dissect_etc_pd_backlight_timeout(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3563 case RDM_CC_GET_COMMAND_RESPONSE
:
3564 case RDM_CC_SET_COMMAND
:
3565 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_backlight_timeout
, tvb
, &offset
, 1);
3573 dissect_etc_pd_status_indicators(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3576 case RDM_CC_GET_COMMAND_RESPONSE
:
3577 case RDM_CC_SET_COMMAND
:
3578 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_status_indicators
, tvb
, &offset
, 1);
3586 dissect_etc_pd_recalibrate_fixture(unsigned offset
)
3588 /* set-only, no data */
3593 dissect_etc_pd_overtemp_mode(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3596 case RDM_CC_GET_COMMAND_RESPONSE
:
3597 case RDM_CC_SET_COMMAND
:
3598 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_overtemp_mode
, tvb
, &offset
, 1);
3606 dissect_etc_pd_simple_setup_mode(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3609 case RDM_CC_GET_COMMAND_RESPONSE
:
3610 case RDM_CC_SET_COMMAND
:
3611 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_simple_setup_mode
, tvb
, &offset
, 1);
3619 dissect_etc_pd_led_strobe_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3622 case RDM_CC_GET_COMMAND
:
3623 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_strobe_description_strobe
, tvb
, &offset
, 1);
3625 case RDM_CC_GET_COMMAND_RESPONSE
:
3626 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_strobe_description_strobe
, tvb
, &offset
, 1);
3627 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_led_strobe_description_text
, tvb
, &offset
, len
-1);
3635 dissect_etc_pd_red_shift_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3638 case RDM_CC_GET_COMMAND
:
3639 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_red_shift_description_red_shift
, tvb
, &offset
, 1);
3641 case RDM_CC_GET_COMMAND_RESPONSE
:
3642 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_red_shift_description_red_shift
, tvb
, &offset
, 1);
3643 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_red_shift_description_text
, tvb
, &offset
, len
-1);
3651 dissect_etc_pd_plus_seven_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3654 case RDM_CC_GET_COMMAND
:
3655 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_plus_seven_description_plus_seven
, tvb
, &offset
, 1);
3657 case RDM_CC_GET_COMMAND_RESPONSE
:
3658 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_plus_seven_description_plus_seven
, tvb
, &offset
, 1);
3659 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_plus_seven_description_text
, tvb
, &offset
, len
-1);
3667 dissect_etc_pd_backlight_timeout_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3670 case RDM_CC_GET_COMMAND
:
3671 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_backlight_timeout_description_timeout
, tvb
, &offset
, 1);
3673 case RDM_CC_GET_COMMAND_RESPONSE
:
3674 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_backlight_timeout_description_timeout
, tvb
, &offset
, 1);
3675 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_backlight_timeout_description_text
, tvb
, &offset
, len
-1);
3683 dissect_etc_pd_simple_setup_mode_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3686 case RDM_CC_GET_COMMAND
:
3687 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_simple_setup_mode_description_mode
, tvb
, &offset
, 1);
3689 case RDM_CC_GET_COMMAND_RESPONSE
:
3690 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_simple_setup_mode_description_mode
, tvb
, &offset
, 1);
3691 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_simple_setup_mode_description_text
, tvb
, &offset
, len
-1);
3699 dissect_etc_pd_overtemp_mode_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3702 case RDM_CC_GET_COMMAND
:
3703 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_overtemp_mode_description_mode
, tvb
, &offset
, 1);
3705 case RDM_CC_GET_COMMAND_RESPONSE
:
3706 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_overtemp_mode_description_mode
, tvb
, &offset
, 1);
3707 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_overtemp_mode_description_text
, tvb
, &offset
, len
-1);
3715 dissect_etc_pd_led_requested_xy(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3718 case RDM_CC_GET_COMMAND_RESPONSE
:
3719 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_requested_xy_x
, tvb
, &offset
, 2);
3720 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_requested_xy_y
, tvb
, &offset
, 2);
3728 dissect_etc_pd_led_current_xy(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3731 case RDM_CC_GET_COMMAND_RESPONSE
:
3732 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_current_xy_x
, tvb
, &offset
, 2);
3733 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_current_xy_y
, tvb
, &offset
, 2);
3741 dissect_etc_pd_current_pwm(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3744 case RDM_CC_GET_COMMAND
:
3745 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_current_pwm_led_number
, tvb
, &offset
, 1);
3747 case RDM_CC_GET_COMMAND_RESPONSE
:
3748 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_current_pwm_led_number
, tvb
, &offset
, 1);
3749 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_current_pwm_channel_duty_cycle
, tvb
, &offset
, 2);
3757 dissect_etc_pd_tristimulus(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3760 case RDM_CC_GET_COMMAND
:
3761 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_tristimulus_led_number
, tvb
, &offset
, 1);
3763 case RDM_CC_GET_COMMAND_RESPONSE
:
3764 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_tristimulus_led_number
, tvb
, &offset
, 1);
3765 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_tristimulus_x
, tvb
, &offset
, 4);
3766 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_tristimulus_y
, tvb
, &offset
, 4);
3767 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_tristimulus_z
, tvb
, &offset
, 4);
3775 dissect_etc_pd_led_information(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3778 case RDM_CC_GET_COMMAND
:
3779 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_information_led_number
, tvb
, &offset
, 1);
3781 case RDM_CC_GET_COMMAND_RESPONSE
:
3782 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_information_led_number
, tvb
, &offset
, 1);
3783 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_information_type
, tvb
, &offset
, 1);
3784 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_information_dmx_control_channel
, tvb
, &offset
, 1);
3785 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_information_drive_current
, tvb
, &offset
, 2);
3786 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_information_gamut_polygon_order
, tvb
, &offset
, 1);
3787 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_information_quantity
, tvb
, &offset
, 1);
3795 dissect_etc_pd_preset_config(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3798 case RDM_CC_GET_COMMAND
:
3799 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_preset_config_preset_number
, tvb
, &offset
, 2);
3801 case RDM_CC_GET_COMMAND_RESPONSE
:
3802 case RDM_CC_SET_COMMAND
:
3803 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_preset_config_preset_number
, tvb
, &offset
, 2);
3804 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_preset_config_fade_time
, tvb
, &offset
, 2);
3805 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_preset_config_delay_time
, tvb
, &offset
, 2);
3806 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_preset_config_hue
, tvb
, &offset
, 2);
3807 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_preset_config_saturation
, tvb
, &offset
, 1);
3808 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_preset_config_intensity
, tvb
, &offset
, 1);
3809 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_preset_config_strobe
, tvb
, &offset
, 1);
3817 dissect_etc_pd_sequence_playback(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3820 case RDM_CC_GET_COMMAND_RESPONSE
:
3821 case RDM_CC_SET_COMMAND
:
3822 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_sequence_playback_sequence_number
, tvb
, &offset
, 2);
3830 dissect_etc_pd_sequence_config(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3833 proto_tree
*preset_steps_tree
, *preset_steps_sub_item
;
3834 proto_tree
*step_link_times_tree
, *step_link_times_sub_item
;
3837 case RDM_CC_GET_COMMAND
:
3838 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_sequence_config_sequence_number
, tvb
, &offset
, 2);
3840 case RDM_CC_GET_COMMAND_RESPONSE
:
3841 case RDM_CC_SET_COMMAND
:
3842 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_sequence_config_sequence_number
, tvb
, &offset
, 2);
3844 preset_steps_tree
= proto_tree_add_item(tree
, hf_etc_pd_sequence_config_preset_steps
, tvb
, offset
, 24, ENC_NA
);
3845 preset_steps_sub_item
= proto_item_add_subtree(preset_steps_tree
, ett_etc_sequence_config_steps
);
3846 for (i
= 0; i
< 24; i
++) {
3847 rdm_proto_tree_add_numeric_item(preset_steps_sub_item
, hf_etc_pd_sequence_config_preset_step
, tvb
, &offset
, 1);
3850 step_link_times_tree
= proto_tree_add_item(tree
, hf_etc_pd_sequence_config_step_link_times
, tvb
, offset
, 48, ENC_NA
);
3851 step_link_times_sub_item
= proto_item_add_subtree(step_link_times_tree
, ett_etc_sequence_config_times
);
3852 for (i
= 0; i
< 24; i
++) {
3853 rdm_proto_tree_add_numeric_item(step_link_times_sub_item
, hf_etc_pd_sequence_config_step_link_time
, tvb
, &offset
, 2);
3856 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_sequence_config_rate
, tvb
, &offset
, 2);
3857 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_sequence_config_end_state
, tvb
, &offset
, 1);
3866 dissect_etc_pd_low_power_timeout(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3869 case RDM_CC_GET_COMMAND_RESPONSE
:
3870 case RDM_CC_SET_COMMAND
:
3871 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_low_power_timeout
, tvb
, &offset
, 1);
3879 dissect_etc_pd_low_power_timeout_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3882 case RDM_CC_GET_COMMAND
:
3883 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_low_power_timeout_description_timeout
, tvb
, &offset
, 1);
3885 case RDM_CC_GET_COMMAND_RESPONSE
:
3886 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_low_power_timeout_description_timeout
, tvb
, &offset
, 1);
3887 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_low_power_timeout_description_text
, tvb
, &offset
, len
-1);
3895 dissect_etc_pd_led_enum_frequency(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3898 case RDM_CC_GET_COMMAND_RESPONSE
:
3899 case RDM_CC_SET_COMMAND
:
3900 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_enum_frequency
, tvb
, &offset
, 1);
3908 dissect_etc_pd_led_enum_frequency_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3911 case RDM_CC_GET_COMMAND
:
3912 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_enum_frequency_description_frequency
, tvb
, &offset
, 1);
3914 case RDM_CC_GET_COMMAND_RESPONSE
:
3915 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_led_enum_frequency_description_frequency
, tvb
, &offset
, 1);
3916 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_led_enum_frequency_description_text
, tvb
, &offset
, len
-1);
3924 dissect_etc_pd_rgbi_preset_config(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3927 case RDM_CC_GET_COMMAND
:
3928 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_rgbi_preset_config_preset_number
, tvb
, &offset
, 2);
3930 case RDM_CC_GET_COMMAND_RESPONSE
:
3931 case RDM_CC_SET_COMMAND
:
3932 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_rgbi_preset_config_preset_number
, tvb
, &offset
, 2);
3933 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_rgbi_preset_config_fade_time
, tvb
, &offset
, 2);
3934 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_rgbi_preset_config_delay_time
, tvb
, &offset
, 2);
3935 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_rgbi_preset_config_red
, tvb
, &offset
, 1);
3936 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_rgbi_preset_config_green
, tvb
, &offset
, 1);
3937 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_rgbi_preset_config_blue
, tvb
, &offset
, 1);
3938 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_rgbi_preset_config_intensity
, tvb
, &offset
, 1);
3939 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_rgbi_preset_config_strobe
, tvb
, &offset
, 1);
3947 dissect_etc_pd_cct_preset_config(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3950 case RDM_CC_GET_COMMAND
:
3951 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_cct_preset_config_preset_number
, tvb
, &offset
, 2);
3953 case RDM_CC_GET_COMMAND_RESPONSE
:
3954 case RDM_CC_SET_COMMAND
:
3955 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_cct_preset_config_preset_number
, tvb
, &offset
, 2);
3956 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_cct_preset_config_fade_time
, tvb
, &offset
, 2);
3957 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_cct_preset_config_delay_time
, tvb
, &offset
, 2);
3958 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_cct_preset_config_white_point
, tvb
, &offset
, 2);
3959 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_cct_preset_config_tint
, tvb
, &offset
, 2);
3960 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_cct_preset_config_strobe
, tvb
, &offset
, 1);
3961 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_cct_preset_config_intensity
, tvb
, &offset
, 2);
3962 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_cct_preset_config_tone
, tvb
, &offset
, 1);
3963 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_cct_preset_config_reserved
, tvb
, &offset
, 4);
3971 dissect_etc_pd_supplementary_device_version(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
3974 case RDM_CC_GET_COMMAND
:
3975 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_supplementary_device_version_param_index
, tvb
, &offset
, 1);
3977 case RDM_CC_GET_COMMAND_RESPONSE
:
3978 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_supplementary_device_version_param_index
, tvb
, &offset
, 1);
3979 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_supplementary_device_version_param_description
, tvb
, &offset
, len
-1);
3987 dissect_etc_pd_power_command(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
3990 case RDM_CC_GET_COMMAND_RESPONSE
:
3991 case RDM_CC_SET_COMMAND
:
3992 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_power_command
, tvb
, &offset
, 1);
4000 dissect_etc_pd_power_command_description(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
4003 case RDM_CC_GET_COMMAND
:
4004 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_power_command_description_state
, tvb
, &offset
, 1);
4006 case RDM_CC_GET_COMMAND_RESPONSE
:
4007 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_power_command_description_state
, tvb
, &offset
, 1);
4008 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_power_command_description_text
, tvb
, &offset
, len
-1);
4016 dissect_etc_pd_dali_short_address(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
4019 case RDM_CC_GET_COMMAND_RESPONSE
:
4020 case RDM_CC_SET_COMMAND
:
4021 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_dali_short_address
, tvb
, &offset
, 1);
4029 dissect_etc_pd_dali_group_membership(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
4032 case RDM_CC_GET_COMMAND_RESPONSE
:
4033 case RDM_CC_SET_COMMAND
:
4034 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_dali_group_membership
, tvb
, &offset
, 2);
4042 dissect_etc_pd_auto_bind(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
4045 case RDM_CC_GET_COMMAND_RESPONSE
:
4046 case RDM_CC_SET_COMMAND
:
4047 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_auto_bind
, tvb
, &offset
, 1);
4055 dissect_etc_pd_delete_subdevice(unsigned offset
)
4057 /* set-only, no data */
4062 dissect_etc_pd_packet_delay(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
4065 case RDM_CC_GET_COMMAND_RESPONSE
:
4066 case RDM_CC_SET_COMMAND
:
4067 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_packet_delay
, tvb
, &offset
, 1);
4075 dissect_etc_pd_has_enum_text(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
)
4078 case RDM_CC_GET_COMMAND
:
4079 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_has_enum_text_pid
, tvb
, &offset
, 2);
4081 case RDM_CC_GET_COMMAND_RESPONSE
:
4082 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_has_enum_text_pid
, tvb
, &offset
, 2);
4083 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_has_enum_text_true_false
, tvb
, &offset
, 1);
4091 dissect_etc_pd_get_enum_text(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint8_t len
)
4094 case RDM_CC_GET_COMMAND
:
4095 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_get_enum_text_pid
, tvb
, &offset
, 2);
4096 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_get_enum_text_enum
, tvb
, &offset
, 4);
4098 case RDM_CC_GET_COMMAND_RESPONSE
:
4099 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_get_enum_text_pid
, tvb
, &offset
, 2);
4100 rdm_proto_tree_add_numeric_item(tree
, hf_etc_pd_get_enum_text_enum
, tvb
, &offset
, 4);
4101 rdm_proto_tree_add_ascii_item(tree
, hf_etc_pd_get_enum_text_description
, tvb
, &offset
, len
-6);
4109 dissect_etc_pd_prepare_for_software_download(unsigned offset
)
4111 /* set-only, no data */
4116 dissect_etc_pid(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint16_t param_id
, uint8_t pdl
)
4119 case ETC_PARAM_ID_LED_CURVE
:
4120 offset
= dissect_etc_pd_led_curve(tvb
, offset
, tree
, cc
);
4122 case ETC_PARAM_ID_LED_CURVE_DESCRIPTION
:
4123 offset
= dissect_etc_pd_led_curve_description(tvb
, offset
, tree
, cc
, pdl
);
4125 case ETC_PARAM_ID_LED_STROBE
:
4126 offset
= dissect_etc_pd_led_strobe(tvb
, offset
, tree
, cc
);
4128 case ETC_PARAM_ID_LED_OUTPUT_MODE
:
4129 offset
= dissect_etc_pd_led_output_mode(tvb
, offset
, tree
, cc
);
4131 case ETC_PARAM_ID_LED_OUTPUT_MODE_DESCRIPTION
:
4132 offset
= dissect_etc_pd_led_output_mode_description(tvb
, offset
, tree
, cc
, pdl
);
4134 case ETC_PARAM_ID_LED_RED_SHIFT
:
4135 offset
= dissect_etc_pd_led_red_shift(tvb
, offset
, tree
, cc
);
4137 case ETC_PARAM_ID_LED_WHITE_POINT
:
4138 offset
= dissect_etc_pd_led_white_point(tvb
, offset
, tree
, cc
);
4140 case ETC_PARAM_ID_LED_WHITE_POINT_DESCRIPTION
:
4141 offset
= dissect_etc_pd_led_white_point_description(tvb
, offset
, tree
, cc
, pdl
);
4143 case ETC_PARAM_ID_LED_FREQUENCY
:
4144 offset
= dissect_etc_pd_led_frequency(tvb
, offset
, tree
, cc
);
4146 case ETC_PARAM_ID_DMX_LOSS_BEHAVIOR
:
4147 offset
= dissect_etc_pd_dmx_data_loss_behavior(tvb
, offset
, tree
, cc
);
4149 case ETC_PARAM_ID_DMX_LOSS_BEHAVIOR_DESCRIPTION
:
4150 offset
= dissect_etc_pd_dmx_data_loss_behavior_description(tvb
, offset
, tree
, cc
, pdl
);
4152 case ETC_PARAM_ID_LED_PLUS_SEVEN
:
4153 offset
= dissect_etc_pd_led_plus_seven(tvb
, offset
, tree
, cc
);
4155 case ETC_PARAM_ID_BACKLIGHT_BRIGHTNESS
:
4156 offset
= dissect_etc_pd_backlight_brightness(tvb
, offset
, tree
, cc
);
4158 case ETC_PARAM_ID_BACKLIGHT_TIMEOUT
:
4159 offset
= dissect_etc_pd_backlight_timeout(tvb
, offset
, tree
, cc
);
4161 case ETC_PARAM_ID_STATUS_INDICATORS
:
4162 offset
= dissect_etc_pd_status_indicators(tvb
, offset
, tree
, cc
);
4164 case ETC_PARAM_ID_RECALIBRATE_FIXTURE
:
4165 offset
= dissect_etc_pd_recalibrate_fixture(offset
);
4167 case ETC_PARAM_ID_OVERTEMPMODE
:
4168 offset
= dissect_etc_pd_overtemp_mode(tvb
, offset
, tree
, cc
);
4170 case ETC_PARAM_ID_SIMPLESETUPMODE
:
4171 offset
= dissect_etc_pd_simple_setup_mode(tvb
, offset
, tree
, cc
);
4173 case ETC_PARAM_ID_LED_STROBE_DESCRIPTION
:
4174 offset
= dissect_etc_pd_led_strobe_description(tvb
, offset
, tree
, cc
, pdl
);
4176 case ETC_PARAM_ID_LED_RED_SHIFT_DESCRIPTION
:
4177 offset
= dissect_etc_pd_red_shift_description(tvb
, offset
, tree
, cc
, pdl
);
4179 case ETC_PARAM_ID_LED_PLUS_SEVEN_DESCRIPTION
:
4180 offset
= dissect_etc_pd_plus_seven_description(tvb
, offset
, tree
, cc
, pdl
);
4182 case ETC_PARAM_ID_BACKLIGHT_TIMEOUT_DESCRIPTION
:
4183 offset
= dissect_etc_pd_backlight_timeout_description(tvb
, offset
, tree
, cc
, pdl
);
4185 case ETC_PARAM_ID_SIMPLESETUPMODE_DESCRIPTION
:
4186 offset
= dissect_etc_pd_simple_setup_mode_description(tvb
, offset
, tree
, cc
, pdl
);
4188 case ETC_PARAM_ID_OVERTEMPMODE_DESCRIPTION
:
4189 offset
= dissect_etc_pd_overtemp_mode_description(tvb
, offset
, tree
, cc
, pdl
);
4191 case ETC_PARAM_ID_LED_REQUESTED_XY
:
4192 offset
= dissect_etc_pd_led_requested_xy(tvb
, offset
, tree
, cc
);
4194 case ETC_PARAM_ID_LED_CURRENT_XY
:
4195 offset
= dissect_etc_pd_led_current_xy(tvb
, offset
, tree
, cc
);
4197 case ETC_PARAM_ID_LED_CURRENT_PWM
:
4198 offset
= dissect_etc_pd_current_pwm(tvb
, offset
, tree
, cc
);
4200 case ETC_PARAM_ID_LED_TRISTIMULUS
:
4201 offset
= dissect_etc_pd_tristimulus(tvb
, offset
, tree
, cc
);
4203 case ETC_PARAM_ID_LED_INFORMATION
:
4204 offset
= dissect_etc_pd_led_information(tvb
, offset
, tree
, cc
);
4206 case ETC_PARAM_ID_PRESETCONFIG
:
4207 offset
= dissect_etc_pd_preset_config(tvb
, offset
, tree
, cc
);
4209 case ETC_PARAM_ID_SEQUENCE_PLAYBACK
:
4210 offset
= dissect_etc_pd_sequence_playback(tvb
, offset
, tree
, cc
);
4212 case ETC_PARAM_ID_SEQUENCE_CONFIG
:
4213 offset
= dissect_etc_pd_sequence_config(tvb
, offset
, tree
, cc
);
4215 case ETC_PARAM_ID_LOW_POWER_TIMEOUT
:
4216 offset
= dissect_etc_pd_low_power_timeout(tvb
, offset
, tree
, cc
);
4218 case ETC_PARAM_ID_LOW_POWER_TIMEOUT_DESCRIPTION
:
4219 offset
= dissect_etc_pd_low_power_timeout_description(tvb
, offset
, tree
, cc
, pdl
);
4221 case ETC_PARAM_ID_LED_ENUM_FREQUENCY
:
4222 offset
= dissect_etc_pd_led_enum_frequency(tvb
, offset
, tree
, cc
);
4224 case ETC_PARAM_ID_LED_ENUM_FREQUENCY_DESCRIPTION
:
4225 offset
= dissect_etc_pd_led_enum_frequency_description(tvb
, offset
, tree
, cc
, pdl
);
4227 case ETC_PARAM_ID_RGBI_PRESETCONFIG
:
4228 offset
= dissect_etc_pd_rgbi_preset_config(tvb
, offset
, tree
, cc
);
4230 case ETC_PARAM_ID_CCT_PRESETCONFIG
:
4231 offset
= dissect_etc_pd_cct_preset_config(tvb
, offset
, tree
, cc
);
4233 case ETC_PARAM_ID_SUPPLEMENTARY_DEVICE_VERSION
:
4234 offset
= dissect_etc_pd_supplementary_device_version(tvb
, offset
, tree
, cc
, pdl
);
4237 case ETC_PARAM_ID_START_UWB_DISCOVER:
4239 case ETC_PARAM_ID_START_UWB_MEASURE:
4241 case ETC_PARAM_ID_POSITION:
4244 /* TODO: begin need descriptions */
4245 case ETC_PARAM_ID_S4DIM_CALIBRATE
:
4247 case ETC_PARAM_ID_S4DIM_CALIBRATE_DESCRIPTION
:
4249 case ETC_PARAM_ID_S4DIM_TEST_MODE
:
4251 case ETC_PARAM_ID_S4DIM_TEST_MODE_DESCRIPTION
:
4253 case ETC_PARAM_ID_S4DIM_MAX_OUTPUT_VOLTAGE
:
4255 case ETC_PARAM_ID_S4DIM_MAX_OUTPUT_VOLTAGE_DESCRIPTION
:
4257 /* TODO: end need descriptions */
4258 case ETC_PARAM_ID_POWER_COMMAND
:
4259 offset
= dissect_etc_pd_power_command(tvb
, offset
, tree
, cc
);
4261 case ETC_PARAM_ID_POWER_COMMAND_DESCRIPTION
:
4262 offset
= dissect_etc_pd_power_command_description(tvb
, offset
, tree
, cc
, pdl
);
4264 /* TODO: begin need descriptions */
4265 case ETC_PARAM_ID_THRESHOLD_COMMAND
:
4267 case ETC_PARAM_ID_TURNON_DELAY_COMMAND
:
4269 /* TODO: end need descriptions */
4270 case ETC_PARAM_ID_SET_DALI_SHORTADDRESS
:
4271 offset
= dissect_etc_pd_dali_short_address(tvb
, offset
, tree
, cc
);
4273 case ETC_PARAM_ID_DALI_GROUP_MEMBERSHIP
:
4274 offset
= dissect_etc_pd_dali_group_membership(tvb
, offset
, tree
, cc
);
4276 case ETC_PARAM_ID_AUTOBIND
:
4277 offset
= dissect_etc_pd_auto_bind(tvb
, offset
, tree
, cc
);
4279 case ETC_PARAM_ID_DELETE_SUBDEVICE
:
4280 offset
= dissect_etc_pd_delete_subdevice(offset
);
4282 case ETC_PARAM_ID_PACKET_DELAY
:
4283 offset
= dissect_etc_pd_packet_delay(tvb
, offset
, tree
, cc
);
4285 case ETC_PARAM_ID_HAS_ENUM_TEXT
:
4286 offset
= dissect_etc_pd_has_enum_text(tvb
, offset
, tree
, cc
);
4288 case ETC_PARAM_ID_GET_ENUM_TEXT
:
4289 offset
= dissect_etc_pd_get_enum_text(tvb
, offset
, tree
, cc
, pdl
);
4291 case ETC_PARAM_ID_PREPAREFORSOFTWAREDOWNLOAD
:
4292 offset
= dissect_etc_pd_prepare_for_software_download(offset
);
4295 proto_tree_add_item(tree
, hf_rdm_parameter_data_raw
, tvb
, offset
, pdl
, ENC_NA
);
4303 dissect_manufacturer_specific_pid(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint16_t param_id
, uint8_t pdl
, uint16_t device_manufacturer_id
)
4305 switch(device_manufacturer_id
) {
4306 case RDM_MANUFACTURER_ID_ETC
:
4307 offset
= dissect_etc_pid(tvb
, offset
, tree
, cc
, param_id
, pdl
);
4310 proto_tree_add_item(tree
, hf_rdm_parameter_data_raw
, tvb
, offset
, pdl
, ENC_NA
);
4319 dissect_rdm_mdb_param_data(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint16_t param_id
, uint8_t pdl
, uint16_t device_manufacturer_id
)
4321 if (param_id
>= 0x8000) {
4322 offset
= dissect_manufacturer_specific_pid(tvb
, offset
, tree
, cc
, param_id
, pdl
, device_manufacturer_id
);
4325 case RDM_PARAM_ID_SENSOR_VALUE
:
4326 offset
= dissect_rdm_pd_sensor_value(tvb
, offset
, tree
, cc
, pdl
);
4329 case RDM_PARAM_ID_QUEUED_MESSAGE
:
4330 offset
= dissect_rdm_pd_queued_message(tvb
, offset
, tree
, cc
, pdl
);
4333 case RDM_PARAM_ID_DMX_START_ADDRESS
:
4334 offset
= dissect_rdm_pd_dmx_start_address(tvb
, offset
, tree
, cc
, pdl
);
4337 case RDM_PARAM_ID_DEVICE_INFO
:
4338 offset
= dissect_rdm_pd_device_info(tvb
, offset
, tree
, cc
, pdl
, device_manufacturer_id
);
4341 case RDM_PARAM_ID_DEVICE_MODEL_DESCRIPTION
:
4342 offset
= dissect_rdm_pd_device_model_description(tvb
, offset
, tree
, cc
, pdl
);
4345 case RDM_PARAM_ID_DEVICE_LABEL
:
4346 offset
= dissect_rdm_pd_device_label(tvb
, offset
, tree
, cc
, pdl
);
4349 case RDM_PARAM_ID_DEVICE_HOURS
:
4350 offset
= dissect_rdm_pd_device_hours(tvb
, offset
, tree
, cc
, pdl
);
4353 case RDM_PARAM_ID_LAMP_HOURS
:
4354 offset
= dissect_rdm_pd_lamp_hours(tvb
, offset
, tree
, cc
, pdl
);
4357 case RDM_PARAM_ID_LAMP_STRIKES
:
4358 offset
= dissect_rdm_pd_lamp_strikes(tvb
, offset
, tree
, cc
, pdl
);
4361 case RDM_PARAM_ID_SENSOR_DEFINITION
:
4362 offset
= dissect_rdm_pd_sensor_definition(tvb
, offset
, tree
, cc
, pdl
);
4365 case RDM_PARAM_ID_MANUFACTURER_LABEL
:
4366 offset
= dissect_rdm_pd_manufacturer_label(tvb
, offset
, tree
, cc
, pdl
);
4369 case RDM_PARAM_ID_DISC_UNIQUE_BRANCH
:
4370 offset
= dissect_rdm_pd_disc_unique_branch(tvb
, offset
, tree
, cc
, pdl
);
4373 case RDM_PARAM_ID_DISC_MUTE
:
4374 offset
= dissect_rdm_pd_disc_mute(tvb
, offset
, tree
, cc
, pdl
);
4377 case RDM_PARAM_ID_DISC_UN_MUTE
:
4378 offset
= dissect_rdm_pd_disc_un_mute(tvb
, offset
, tree
, cc
, pdl
);
4381 case RDM_PARAM_ID_PROXIED_DEVICES
:
4382 offset
= dissect_rdm_pd_proxied_devices(tvb
, offset
, tree
, cc
, pdl
);
4385 case RDM_PARAM_ID_PROXIED_DEVICE_COUNT
:
4386 offset
= dissect_rdm_pd_proxied_device_count(tvb
, offset
, tree
, cc
, pdl
);
4389 case RDM_PARAM_ID_COMMS_STATUS
:
4390 offset
= dissect_rdm_pd_comms_status(tvb
, offset
, tree
, cc
, pdl
);
4393 case RDM_PARAM_ID_STATUS_MESSAGES
:
4394 offset
= dissect_rdm_pd_status_messages(tvb
, offset
, tree
, cc
, pdl
);
4397 case RDM_PARAM_ID_STATUS_ID_DESCRIPTION
:
4398 offset
= dissect_rdm_pd_status_id_description(tvb
, offset
, tree
, cc
, pdl
);
4401 case RDM_PARAM_ID_CLEAR_STATUS_ID
:
4402 offset
= dissect_rdm_pd_clear_status_id(tvb
, offset
, tree
, cc
, pdl
);
4405 case RDM_PARAM_ID_SUB_DEVICE_STATUS_REPORT_THRESHOLD
:
4406 offset
= dissect_rdm_pd_sub_device_status_report_threshold(tvb
, offset
, tree
, cc
, pdl
);
4409 case RDM_PARAM_ID_SUPPORTED_PARAMETERS
:
4410 offset
= dissect_rdm_pd_supported_parameters(tvb
, offset
, tree
, cc
, pdl
, device_manufacturer_id
);
4413 case RDM_PARAM_ID_PARAMETER_DESCRIPTION
:
4414 offset
= dissect_rdm_pd_parameter_description(tvb
, offset
, tree
, cc
, pdl
, device_manufacturer_id
);
4417 case RDM_PARAM_ID_PRODUCT_DETAIL_ID_LIST
:
4418 offset
= dissect_rdm_pd_product_detail_id_list(tvb
, offset
, tree
, cc
, pdl
);
4421 case RDM_PARAM_ID_FACTORY_DEFAULTS
:
4422 offset
= dissect_rdm_pd_factory_defaults(tvb
, offset
, tree
, cc
, pdl
);
4425 case RDM_PARAM_ID_LANGUAGE_CAPABILITIES
:
4426 offset
= dissect_rdm_pd_language_capabilities(tvb
, offset
, tree
, cc
, pdl
);
4429 case RDM_PARAM_ID_LANGUAGE
:
4430 offset
= dissect_rdm_pd_language(tvb
, offset
, tree
, cc
, pdl
);
4433 case RDM_PARAM_ID_SOFTWARE_VERSION_LABEL
:
4434 offset
= dissect_rdm_pd_software_version_label(tvb
, offset
, tree
, cc
, pdl
);
4437 case RDM_PARAM_ID_BOOT_SOFTWARE_VERSION_ID
:
4438 offset
= dissect_rdm_pd_boot_software_version_id(tvb
, offset
, tree
, cc
, pdl
);
4441 case RDM_PARAM_ID_BOOT_SOFTWARE_VERSION_LABEL
:
4442 offset
= dissect_rdm_pd_boot_software_version_label(tvb
, offset
, tree
, cc
, pdl
);
4445 case RDM_PARAM_ID_DMX_PERSONALITY
:
4446 offset
= dissect_rdm_pd_dmx_personality(tvb
, offset
, tree
, cc
, pdl
);
4449 case RDM_PARAM_ID_DMX_PERSONALITY_DESCRIPTION
:
4450 offset
= dissect_rdm_pd_dmx_personality_description(tvb
, offset
, tree
, cc
, pdl
);
4453 case RDM_PARAM_ID_SLOT_INFO
:
4454 offset
= dissect_rdm_pd_slot_info(tvb
, offset
, tree
, cc
, pdl
);
4457 case RDM_PARAM_ID_SLOT_DESCRIPTION
:
4458 offset
= dissect_rdm_pd_slot_description(tvb
, offset
, tree
, cc
, pdl
);
4461 case RDM_PARAM_ID_DEFAULT_SLOT_VALUE
:
4462 offset
= dissect_rdm_pd_slot_value(tvb
, offset
, tree
, cc
, pdl
);
4465 case RDM_PARAM_ID_DMX_BLOCK_ADDRESS
:
4466 offset
= dissect_rdm_pd_dmx_block_address(tvb
, offset
, tree
, cc
);
4469 case RDM_PARAM_ID_DMX_FAIL_MODE
:
4470 offset
= dissect_rdm_pd_dmx_fail_mode(tvb
, offset
, tree
, cc
);
4473 case RDM_PARAM_ID_DMX_STARTUP_MODE
:
4474 offset
= dissect_rdm_pd_dmx_startup_mode(tvb
, offset
, tree
, cc
);
4477 case RDM_PARAM_ID_RECORD_SENSORS
:
4478 offset
= dissect_rdm_pd_record_sensors(tvb
, offset
, tree
, cc
, pdl
);
4481 case RDM_PARAM_ID_DIMMER_INFO
:
4482 offset
= dissect_rdm_pd_dimmer_info(tvb
, offset
, tree
, cc
);
4485 case RDM_PARAM_ID_MINIMUM_LEVEL
:
4486 offset
= dissect_rdm_pd_minimum_level(tvb
, offset
, tree
, cc
);
4489 case RDM_PARAM_ID_MAXIMUM_LEVEL
:
4490 offset
= dissect_rdm_pd_maximum_level(tvb
, offset
, tree
, cc
);
4493 case RDM_PARAM_ID_CURVE
:
4494 offset
= dissect_rdm_pd_curve(tvb
, offset
, tree
, cc
);
4497 case RDM_PARAM_ID_CURVE_DESCRIPTION
:
4498 offset
= dissect_rdm_pd_curve_description(tvb
, offset
, tree
, cc
, pdl
);
4501 case RDM_PARAM_ID_OUTPUT_RESPONSE_TIME
:
4502 offset
= dissect_rdm_pd_output_response_time(tvb
, offset
, tree
, cc
);
4505 case RDM_PARAM_ID_OUTPUT_RESPONSE_TIME_DESCRIPTION
:
4506 offset
= dissect_rdm_pd_output_response_time_description(tvb
, offset
, tree
, cc
, pdl
);
4509 case RDM_PARAM_ID_MODULATION_FREQUENCY
:
4510 offset
= dissect_rdm_pd_modulation_frequency(tvb
, offset
, tree
, cc
);
4513 case RDM_PARAM_ID_MODULATION_FREQUENCY_DESCRIPTION
:
4514 offset
= dissect_rdm_pd_modulation_frequency_description(tvb
, offset
, tree
, cc
, pdl
);
4517 case RDM_PARAM_ID_LAMP_STATE
:
4518 offset
= dissect_rdm_pd_lamp_state(tvb
, offset
, tree
, cc
, pdl
);
4521 case RDM_PARAM_ID_LAMP_ON_MODE
:
4522 offset
= dissect_rdm_pd_lamp_on_mode(tvb
, offset
, tree
, cc
, pdl
);
4525 case RDM_PARAM_ID_DEVICE_POWER_CYCLES
:
4526 offset
= dissect_rdm_pd_device_power_cycles(tvb
, offset
, tree
, cc
, pdl
);
4529 case RDM_PARAM_ID_BURN_IN
:
4530 offset
= dissect_rdm_pd_burn_in(tvb
, offset
, tree
, cc
);
4533 case RDM_PARAM_ID_DISPLAY_INVERT
:
4534 offset
= dissect_rdm_pd_display_invert(tvb
, offset
, tree
, cc
, pdl
);
4537 case RDM_PARAM_ID_DISPLAY_LEVEL
:
4538 offset
= dissect_rdm_pd_display_level(tvb
, offset
, tree
, cc
, pdl
);
4541 case RDM_PARAM_ID_PAN_INVERT
:
4542 offset
= dissect_rdm_pd_pan_invert(tvb
, offset
, tree
, cc
, pdl
);
4545 case RDM_PARAM_ID_TILT_INVERT
:
4546 offset
= dissect_rdm_pd_tilt_invert(tvb
, offset
, tree
, cc
, pdl
);
4549 case RDM_PARAM_ID_PAN_TILT_SWAP
:
4550 offset
= dissect_rdm_pd_pan_tilt_swap(tvb
, offset
, tree
, cc
, pdl
);
4553 case RDM_PARAM_ID_REAL_TIME_CLOCK
:
4554 offset
= dissect_rdm_pd_real_time_clock(tvb
, offset
, tree
, cc
, pdl
);
4557 case RDM_PARAM_ID_LOCK_PIN
:
4558 offset
= dissect_rdm_pd_lock_pin(tvb
, offset
, tree
, cc
);
4561 case RDM_PARAM_ID_LOCK_STATE
:
4562 offset
= dissect_rdm_pd_lock_state(tvb
, offset
, tree
, cc
);
4565 case RDM_PARAM_ID_LOCK_STATE_DESCRIPTION
:
4566 offset
= dissect_rdm_pd_lock_description(tvb
, offset
, tree
, cc
, pdl
);
4569 case RDM_PARAM_ID_LIST_INTERFACES
:
4570 offset
= dissect_rdm_pd_list_interfaces(tvb
, offset
, tree
, cc
, pdl
);
4573 case RDM_PARAM_ID_INTERFACE_LABEL
:
4574 offset
= dissect_rdm_pd_interface_label(tvb
, offset
, tree
, cc
, pdl
);
4577 case RDM_PARAM_ID_INTERFACE_HARDWARE_ADDRESS_TYPE1
:
4578 offset
= dissect_rdm_pd_hardware_address_type1(tvb
, offset
, tree
, cc
);
4581 case RDM_PARAM_ID_IPV4_DHCP_MODE
:
4582 offset
= dissect_rdm_pd_dhcp_mode(tvb
, offset
, tree
, cc
);
4585 case RDM_PARAM_ID_IPV4_ZEROCONF_MODE
:
4586 offset
= dissect_rdm_pd_zeroconf_mode(tvb
, offset
, tree
, cc
);
4589 case RDM_PARAM_ID_IPV4_CURRENT_ADDRESS
:
4590 offset
= dissect_rdm_pd_current_address(tvb
, offset
, tree
, cc
);
4593 case RDM_PARAM_ID_IPV4_STATIC_ADDRESS
:
4594 offset
= dissect_rdm_pd_static_address(tvb
, offset
, tree
, cc
);
4597 case RDM_PARAM_ID_INTERFACE_RENEW_DHCP
:
4598 offset
= dissect_rdm_pd_interface_renew_dhcp(tvb
, offset
, tree
, cc
);
4601 case RDM_PARAM_ID_INTERFACE_RELEASE_DHCP
:
4602 offset
= dissect_rdm_pd_interface_release_dhcp(tvb
, offset
, tree
, cc
);
4605 case RDM_PARAM_ID_INTERFACE_APPLY_CONFIGURATION
:
4606 offset
= dissect_rdm_pd_interface_apply_configuration(tvb
, offset
, tree
, cc
);
4609 case RDM_PARAM_ID_IPV4_DEFAULT_ROUTE
:
4610 offset
= dissect_rdm_pd_ipv4_default_route(tvb
, offset
, tree
, cc
);
4613 case RDM_PARAM_ID_DNS_IPV4_NAME_SERVER
:
4614 offset
= dissect_rdm_pd_dns_ipv4_name_server(tvb
, offset
, tree
, cc
);
4617 case RDM_PARAM_ID_DNS_HOSTNAME
:
4618 offset
= dissect_rdm_pd_dns_hostname(tvb
, offset
, tree
, cc
, pdl
);
4621 case RDM_PARAM_ID_DNS_DOMAIN_NAME
:
4622 offset
= dissect_rdm_pd_dns_domain_name(tvb
, offset
, tree
, cc
, pdl
);
4625 case RDM_PARAM_ID_IDENTIFY_DEVICE
:
4626 offset
= dissect_rdm_pd_identify_device(tvb
, offset
, tree
, cc
, pdl
);
4629 case RDM_PARAM_ID_RESET_DEVICE
:
4630 offset
= dissect_rdm_pd_reset_device(tvb
, offset
, tree
, cc
, pdl
);
4633 case RDM_PARAM_ID_POWER_STATE
:
4634 offset
= dissect_rdm_pd_power_state(tvb
, offset
, tree
, cc
, pdl
);
4637 case RDM_PARAM_ID_PERFORM_SELFTEST
:
4638 offset
= dissect_rdm_pd_perform_selftest(tvb
, offset
, tree
, cc
, pdl
);
4641 case RDM_PARAM_ID_SELF_TEST_DESCRIPTION
:
4642 offset
= dissect_rdm_pd_self_test_description(tvb
, offset
, tree
, cc
, pdl
);
4645 case RDM_PARAM_ID_CAPTURE_PRESET
:
4646 offset
= dissect_rdm_pd_capture_preset(tvb
, offset
, tree
, cc
, pdl
);
4649 case RDM_PARAM_ID_PRESET_PLAYBACK
:
4650 offset
= dissect_rdm_pd_preset_playback(tvb
, offset
, tree
, cc
, pdl
);
4653 case RDM_PARAM_ID_IDENTIFY_MODE
:
4654 offset
= dissect_rdm_pd_identify_mode(tvb
, offset
, tree
, cc
);
4657 case RDM_PARAM_ID_PRESET_INFO
:
4658 offset
= dissect_rdm_pd_preset_info(tvb
, offset
, tree
, cc
);
4661 case RDM_PARAM_ID_PRESET_STATUS
:
4662 offset
= dissect_rdm_pd_preset_status(tvb
, offset
, tree
, cc
);
4665 case RDM_PARAM_ID_PRESET_MERGEMODE
:
4666 offset
= dissect_rdm_pd_preset_mergemode(tvb
, offset
, tree
, cc
);
4669 case RDM_PARAM_ID_POWER_ON_SELF_TEST
:
4670 offset
= dissect_rdm_pd_power_on_self_test(tvb
, offset
, tree
, cc
);
4673 case RDM_PARAM_ID_BACKGROUND_QUEUED_STATUS_POLICY
:
4674 offset
= dissect_rdm_pd_background_queued_status_policy(tvb
, offset
, tree
, cc
);
4677 case RDM_PARAM_ID_BACKGROUND_QUEUED_STATUS_POLICY_DESCRIPTION
:
4678 offset
= dissect_rdm_pd_background_queued_status_policy_description(tvb
, offset
, tree
, cc
, pdl
);
4681 case RDM_PARAM_ID_ENDPOINT_LIST
:
4682 offset
= dissect_rdm_pd_endpoint_list(tvb
, offset
, tree
, cc
, pdl
);
4685 case RDM_PARAM_ID_SEARCH_DOMAIN
:
4686 offset
= dissect_rdm_pd_search_domain(tvb
, offset
, tree
, cc
, pdl
);
4689 case RDM_PARAM_ID_ENDPOINT_TO_UNIVERSE
:
4690 offset
= dissect_rdm_pd_endpoint_to_universe(tvb
, offset
, tree
, cc
);
4693 case RDM_PARAM_ID_RDM_TRAFFIC_ENABLE
:
4694 offset
= dissect_rdm_pd_rdm_traffic_enable(tvb
, offset
, tree
, cc
);
4697 case RDM_PARAM_ID_ENDPOINT_MODE
:
4698 offset
= dissect_rdm_pd_endpoint_mode(tvb
, offset
, tree
, cc
);
4701 case RDM_PARAM_ID_ENDPOINT_LABEL
:
4702 offset
= dissect_rdm_pd_endpoint_label(tvb
, offset
, tree
, cc
, pdl
);
4705 case RDM_PARAM_ID_DISCOVERY_STATE
:
4706 offset
= dissect_rdm_pd_discovery_state(tvb
, offset
, tree
, cc
);
4709 case RDM_PARAM_ID_ENDPOINT_TIMING
:
4710 offset
= dissect_rdm_pd_endpoint_timing(tvb
, offset
, tree
, cc
);
4713 case RDM_PARAM_ID_ENDPOINT_TIMING_DESCRIPTION
:
4714 offset
= dissect_rdm_pd_endpoint_timing_description(tvb
, offset
, tree
, cc
, pdl
);
4717 case RDM_PARAM_ID_BINDING_CONTROL_FIELDS
:
4718 offset
= dissect_rdm_pd_binding_control_fields(tvb
, offset
, tree
, cc
);
4721 case RDM_PARAM_ID_IDENTIFY_ENDPOINT
:
4722 offset
= dissect_rdm_pd_identify_endpoint(tvb
, offset
, tree
, cc
);
4725 case RDM_PARAM_ID_BACKGROUND_DISCOVERY
:
4726 offset
= dissect_rdm_pd_background_discovery(tvb
, offset
, tree
, cc
);
4729 case RDM_PARAM_ID_ENDPOINT_RESPONDER_LIST_CHANGE
:
4730 offset
= dissect_rdm_pd_endpoint_responder_list_change(tvb
, offset
, tree
, cc
);
4733 case RDM_PARAM_ID_ENDPOINT_RESPONDERS
:
4734 offset
= dissect_rdm_pd_endpoint_responders(tvb
, offset
, tree
, cc
, pdl
);
4737 case RDM_PARAM_ID_TCP_COMMS_STATUS
:
4738 offset
= dissect_rdm_pd_tcp_comms_status(tvb
, offset
, tree
, cc
, pdl
);
4741 case RDM_PARAM_ID_ENDPOINT_LIST_CHANGE
:
4742 offset
= dissect_rdm_pd_endpoint_list_change(tvb
, offset
, tree
, cc
);
4745 case RDM_PARAM_ID_COMPONENT_SCOPE
:
4746 offset
= dissect_rdm_pd_component_scope(tvb
, offset
, tree
, cc
);
4749 case RDM_PARAM_ID_BROKER_STATUS
:
4750 offset
= dissect_rdm_pd_broker_status(tvb
, offset
, tree
, cc
);
4754 proto_tree_add_item(tree
, hf_rdm_parameter_data_raw
, tvb
,
4755 offset
, pdl
, ENC_NA
);
4765 dissect_rdm_pd_ack_overflow(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint16_t param_id _U_
, uint8_t pdl
)
4769 case RDM_CC_GET_COMMAND_RESPONSE
:
4770 case RDM_CC_SET_COMMAND_RESPONSE
:
4771 proto_tree_add_item(tree
, hf_rdm_pd_ack_overflow_raw_data
, tvb
, offset
, pdl
, ENC_NA
);
4781 dissect_rdm_pd_ack_timer(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint16_t param_id _U_
, uint8_t pdl
)
4785 case RDM_CC_GET_COMMAND_RESPONSE
:
4786 case RDM_CC_SET_COMMAND_RESPONSE
:
4787 proto_tree_add_item(tree
, hf_rdm_pd_ack_timer_estimated_response_time
, tvb
,
4788 offset
, 2, ENC_BIG_ENDIAN
);
4797 dissect_rdm_pd_nack_reason(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint8_t cc
, uint16_t param_id _U_
, uint8_t pdl _U_
)
4801 case RDM_CC_GET_COMMAND_RESPONSE
:
4802 case RDM_CC_SET_COMMAND_RESPONSE
:
4803 proto_tree_add_item(tree
, hf_rdm_pd_nack_reason_code
, tvb
,
4804 offset
, 2, ENC_BIG_ENDIAN
);
4814 is_response(uint8_t command_class
)
4816 if ((command_class
& RDM_CC_COMMAND_RESPONSE_FLAG
) == RDM_CC_COMMAND_RESPONSE_FLAG
) {
4823 add_pid_to_tree(uint16_t param_id
, proto_tree
*mdb_tree
, tvbuff_t
*tvb
, unsigned offset
, uint16_t device_manufacturer_id
)
4825 if (param_id
< 0x8000) {
4826 proto_tree_add_item(mdb_tree
, hf_rdm_parameter_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4828 switch(device_manufacturer_id
) {
4829 case RDM_MANUFACTURER_ID_ETC
:
4830 proto_tree_add_item(mdb_tree
, hf_etc_parameter_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4833 proto_tree_add_item(mdb_tree
, hf_rdm_parameter_id
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
4840 dissect_rdm_mdb(tvbuff_t
*tvb
, unsigned offset
, proto_tree
*tree
, uint16_t device_manufacturer_id
)
4845 uint8_t parameter_data_length
;
4846 proto_tree
*hi
,*si
, *mdb_tree
;
4848 rt
= tvb_get_uint8(tvb
, offset
);
4849 cc
= tvb_get_uint8(tvb
, offset
+ 4);
4851 if (is_response(cc
)) {
4852 proto_tree_add_item(tree
, hf_rdm_response_type
, tvb
,
4853 offset
, 1, ENC_BIG_ENDIAN
);
4857 proto_tree_add_item(tree
, hf_rdm_port_id
, tvb
,
4858 offset
, 1, ENC_BIG_ENDIAN
);
4862 proto_tree_add_item(tree
, hf_rdm_message_count
, tvb
,
4863 offset
, 1, ENC_BIG_ENDIAN
);
4866 proto_tree_add_item(tree
, hf_rdm_sub_device
, tvb
,
4867 offset
, 2, ENC_BIG_ENDIAN
);
4870 hi
= proto_tree_add_item(tree
, hf_rdm_mdb
, tvb
,
4871 offset
, -1, ENC_NA
);
4872 mdb_tree
= proto_item_add_subtree(hi
,ett_rdm
);
4874 proto_tree_add_item(mdb_tree
, hf_rdm_command_class
, tvb
,
4875 offset
, 1, ENC_BIG_ENDIAN
);
4878 param_id
= tvb_get_ntohs(tvb
, offset
);
4879 add_pid_to_tree(param_id
, mdb_tree
, tvb
, offset
, device_manufacturer_id
);
4882 parameter_data_length
= tvb_get_uint8(tvb
, offset
);
4883 proto_tree_add_item(mdb_tree
, hf_rdm_parameter_data_length
, tvb
,
4884 offset
, 1, ENC_BIG_ENDIAN
);
4886 proto_item_set_len( mdb_tree
, parameter_data_length
+ 4);
4888 if (parameter_data_length
> 0) {
4890 hi
= proto_tree_add_item(mdb_tree
, hf_rdm_parameter_data
, tvb
,
4891 offset
, parameter_data_length
, ENC_NA
);
4892 si
= proto_item_add_subtree(hi
,ett_rdm
);
4894 if (is_response(cc
)) {
4897 case RDM_RESPONSE_TYPE_ACK
:
4898 offset
= dissect_rdm_mdb_param_data(tvb
, offset
, si
, cc
, param_id
, parameter_data_length
, device_manufacturer_id
);
4900 case RDM_RESPONSE_TYPE_ACK_TIMER
:
4901 offset
= dissect_rdm_pd_ack_timer(tvb
, offset
, si
, cc
, param_id
, parameter_data_length
);
4903 case RDM_RESPONSE_TYPE_NACK_REASON
:
4904 offset
= dissect_rdm_pd_nack_reason(tvb
, offset
, si
, cc
, param_id
, parameter_data_length
);
4906 case RDM_RESPONSE_TYPE_ACK_OVERFLOW
:
4907 offset
= dissect_rdm_pd_ack_overflow(tvb
, offset
, si
, cc
, param_id
, parameter_data_length
);
4912 offset
= dissect_rdm_mdb_param_data(tvb
, offset
, si
, cc
, param_id
, parameter_data_length
, device_manufacturer_id
);
4920 get_device_manufacturer_id(uint8_t command_class
, uint16_t source_manufacturer_id
, uint16_t destination_manufacturer_id
)
4922 if ((command_class
== RDM_CC_GET_COMMAND
) ||
4923 (command_class
== RDM_CC_SET_COMMAND
)) {
4924 return destination_manufacturer_id
;
4926 if ((command_class
== RDM_CC_GET_COMMAND_RESPONSE
) ||
4927 (command_class
== RDM_CC_SET_COMMAND_RESPONSE
)) {
4928 return source_manufacturer_id
;
4934 dissect_rdm(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
4936 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "RDM");
4937 col_clear(pinfo
->cinfo
, COL_INFO
);
4941 uint8_t command_class
;
4942 uint16_t destination_manufacturer_id
;
4943 uint16_t source_manufacturer_id
;
4944 uint16_t device_manufacturer_id
;
4945 uint32_t destination_device_id
;
4946 uint32_t source_device_id
;
4947 unsigned message_length
, offset
= 0;
4949 proto_tree
*ti
= proto_tree_add_item(tree
, proto_rdm
, tvb
,
4950 offset
, -1, ENC_NA
);
4951 proto_tree
*rdm_tree
= proto_item_add_subtree(ti
, ett_rdm
);
4953 proto_tree_add_item(rdm_tree
, hf_rdm_sub_start_code
, tvb
,
4954 offset
, 1, ENC_BIG_ENDIAN
);
4957 message_length
= tvb_get_uint8(tvb
, offset
);
4958 proto_tree_add_item(rdm_tree
, hf_rdm_message_length
, tvb
,
4959 offset
, 1, ENC_BIG_ENDIAN
);
4962 destination_manufacturer_id
= tvb_get_ntohs(tvb
, offset
);
4963 destination_device_id
= tvb_get_ntohl(tvb
, offset
+ 2);
4964 proto_item_append_text(ti
, ", Dst UID: %04x:%08x",
4965 destination_manufacturer_id
, destination_device_id
);
4966 proto_tree_add_item(rdm_tree
, hf_rdm_dest_uid
, tvb
,
4970 source_manufacturer_id
= tvb_get_ntohs(tvb
, offset
);
4971 source_device_id
= tvb_get_ntohl(tvb
, offset
+ 2);
4972 proto_item_append_text(ti
, ", Src UID: %04x:%08x",
4973 source_manufacturer_id
, source_device_id
);
4974 proto_tree_add_item(rdm_tree
, hf_rdm_src_uid
, tvb
,
4978 proto_tree_add_item(rdm_tree
, hf_rdm_transaction_number
, tvb
,
4979 offset
, 1, ENC_BIG_ENDIAN
);
4982 command_class
= tvb_get_uint8(tvb
, offset
+ 4);
4983 device_manufacturer_id
= get_device_manufacturer_id(command_class
, source_manufacturer_id
, destination_manufacturer_id
);
4984 offset
= dissect_rdm_mdb(tvb
, offset
, rdm_tree
, device_manufacturer_id
);
4986 padding_size
= offset
- (message_length
- 1);
4987 if (padding_size
> 0) {
4988 proto_tree_add_item(rdm_tree
, hf_rdm_intron
, tvb
,
4989 offset
, padding_size
, ENC_NA
);
4990 offset
+= padding_size
;
4993 proto_tree_add_checksum(rdm_tree
, tvb
, offset
, hf_rdm_checksum
, hf_rdm_checksum_status
, &ei_rdm_checksum
, pinfo
, rdm_checksum(tvb
, offset
),
4994 ENC_BIG_ENDIAN
, PROTO_CHECKSUM_VERIFY
);
4997 if (offset
< tvb_reported_length(tvb
)) {
4998 proto_tree_add_item(rdm_tree
, hf_rdm_trailer
, tvb
,
4999 offset
, -1, ENC_NA
);
5002 return tvb_captured_length(tvb
);
5006 proto_register_rdm(void)
5008 static hf_register_info hf
[] = {
5009 { &hf_rdm_sub_start_code
,
5010 { "Sub-start code", "rdm.ssc",
5011 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5014 { &hf_rdm_message_length
,
5015 { "Message length", "rdm.len",
5016 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5020 { "Destination UID", "rdm.dst",
5021 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5025 { "Source UID", "rdm.src",
5026 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5029 { &hf_rdm_transaction_number
,
5030 { "Transaction number", "rdm.tn",
5031 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5035 { "Port ID", "rdm.port_id",
5036 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5039 { &hf_rdm_response_type
,
5040 { "Response type", "rdm.rt",
5041 FT_UINT8
, BASE_HEX
, VALS(rdm_rt_vals
), 0x0,
5044 { &hf_rdm_message_count
,
5045 { "Message count", "rdm.mc",
5046 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5049 { &hf_rdm_sub_device
,
5050 { "Sub-device", "rdm.sd",
5051 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5055 { "Message Data Block", "rdm.mdb",
5056 FT_NONE
, BASE_NONE
, NULL
, 0x0,
5059 { &hf_rdm_command_class
,
5060 { "Command class", "rdm.cc",
5061 FT_UINT8
, BASE_HEX
, VALS(rdm_cc_vals
), 0x0,
5064 { &hf_rdm_parameter_id
,
5065 { "Parameter ID", "rdm.pid",
5066 FT_UINT16
, BASE_HEX
| BASE_EXT_STRING
, &rdm_param_id_vals_ext
, 0x0,
5069 { &hf_rdm_parameter_data_length
,
5070 { "Parameter data length", "rdm.pdl",
5071 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5074 { &hf_rdm_parameter_data
,
5075 { "Parameter data", "rdm.pd",
5076 FT_NONE
, BASE_NONE
, NULL
, 0x0,
5079 { &hf_rdm_parameter_data_raw
,
5080 { "Raw Data", "rdm.pd.raw",
5081 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5085 { "Intron", "rdm.intron",
5086 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5090 { "Checksum", "rdm.checksum",
5091 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
5094 { &hf_rdm_checksum_status
,
5095 { "Checksum Status", "rdm.checksum.status",
5096 FT_UINT8
, BASE_NONE
, VALS(proto_checksum_vals
), 0x0,
5100 { "Trailer", "rdm.trailer",
5101 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5104 { &hf_rdm_pd_ack_overflow_raw_data
,
5105 { "Raw Data", "rdm.pd.ack_overflow.raw_data",
5106 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5109 { &hf_rdm_pd_ack_timer_estimated_response_time
,
5110 { "Estimated Response Time", "rdm.pd.ack_timer.estimated_response_time",
5111 FT_INT16
, BASE_DEC
, NULL
, 0x0,
5114 { &hf_rdm_pd_nack_reason_code
,
5115 { "NACK Reason Code", "rdm.pd.nack_reason.code",
5116 FT_UINT16
, BASE_HEX
, VALS(rdm_nr_vals
), 0x0,
5119 { &hf_rdm_pd_queued_message_status
,
5120 { "Status", "rdm.pd.queued_message.status",
5121 FT_UINT8
, BASE_HEX
, VALS(rdm_status_vals
), 0x0,
5124 { &hf_rdm_pd_sensor_nr
,
5125 { "Sensor Nr.", "rdm.pd.sensor.nr",
5126 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5129 { &hf_rdm_pd_sensor_value_pres
,
5130 { "Sensor Present Value", "rdm.pd.sensor.value.present",
5131 FT_INT16
, BASE_DEC
, NULL
, 0x0,
5134 { &hf_rdm_pd_sensor_value_low
,
5135 { "Sensor Lowest Value", "rdm.pd.sensor.value.lowest",
5136 FT_INT16
, BASE_DEC
, NULL
, 0x0,
5139 { &hf_rdm_pd_sensor_value_high
,
5140 { "Sensor Highest Value", "rdm.pd.sensor.value.highest",
5141 FT_INT16
, BASE_DEC
, NULL
, 0x0,
5144 { &hf_rdm_pd_sensor_value_rec
,
5145 { "Sensor Recorded Value", "rdm.pd.sensor.value.recorded",
5146 FT_INT16
, BASE_DEC
, NULL
, 0x0,
5149 { &hf_rdm_pd_sensor_range_min_value
,
5150 { "Sensor Range Min. Value", "rdm.pd.sensor.range.min_value",
5151 FT_INT16
, BASE_DEC
, NULL
, 0x0,
5154 { &hf_rdm_pd_sensor_range_max_value
,
5155 { "Sensor Range Max. Value", "rdm.pd.sensor.range.max_value",
5156 FT_INT16
, BASE_DEC
, NULL
, 0x0,
5159 { &hf_rdm_pd_sensor_normal_min_value
,
5160 { "Sensor Normal Min. Value", "rdm.pd.sensor.normal.min_value",
5161 FT_INT16
, BASE_DEC
, NULL
, 0x0,
5164 { &hf_rdm_pd_sensor_normal_max_value
,
5165 { "Sensor Normal Max. Value", "rdm.pd.sensor.normal.max_value",
5166 FT_INT16
, BASE_DEC
, NULL
, 0x0,
5169 { &hf_rdm_pd_sensor_recorded_value_support
,
5170 { "Sensor Recorded Value Support", "rdm.pd.sensor.recorded_value_support",
5171 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5174 { &hf_rdm_pd_sensor_type
,
5175 { "Sensor Type", "rdm.pd.sensor_type",
5176 FT_UINT8
, BASE_HEX
| BASE_EXT_STRING
, &rdm_sensor_type_vals_ext
, 0x0,
5179 { &hf_rdm_pd_sensor_unit
,
5180 { "Sensor Unit", "rdm.pd.sensor_unit",
5181 FT_UINT8
, BASE_HEX
| BASE_EXT_STRING
, &rdm_unit_vals_ext
, 0x0,
5184 { &hf_rdm_pd_sensor_prefix
,
5185 { "Sensor Prefix", "rdm.pd.sensor_prefix",
5186 FT_UINT8
, BASE_HEX
| BASE_EXT_STRING
, &rdm_prefix_vals_ext
, 0x0,
5189 { &hf_rdm_pd_sensor_description
,
5190 { "Sensor Description", "rdm.pd.sensor.description",
5191 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5194 { &hf_rdm_pd_manu_label
,
5195 { "Manufacturer Label", "rdm.pd.manu_label",
5196 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5200 { &hf_rdm_pd_device_label
,
5201 { "Device Label", "rdm.pd.device_label",
5202 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5205 { &hf_rdm_pd_dmx_start_address
,
5206 { "DMX Start Address", "rdm.pd.dmx_start_address",
5207 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5210 { &hf_rdm_pd_device_hours
,
5211 { "Device Hours", "rdm.pd.device_hours",
5212 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5215 { &hf_rdm_pd_lamp_hours
,
5216 { "Lamp Hours", "rdm.pd.lamp_hours",
5217 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5220 { &hf_rdm_pd_lamp_strikes
,
5221 { "Lamp Strikes", "rdm.pd.lamp_strikes",
5222 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5225 { &hf_rdm_pd_proto_vers
,
5226 { "RDM Protocol Version", "rdm.pd.proto_vers",
5227 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
5230 { &hf_rdm_pd_device_model_id
,
5231 { "Device Model ID", "rdm.pd.device_model_id",
5232 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
5235 { &hf_rdm_pd_product_cat
,
5236 { "Product Category", "rdm.pd.product_cat",
5237 FT_UINT16
, BASE_HEX
| BASE_EXT_STRING
, &rdm_product_cat_vals_ext
, 0x0,
5240 { &hf_rdm_pd_software_vers_id
,
5241 { "Software Version ID", "rdm.pd.software_version_id",
5242 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
5245 { &hf_rdm_pd_dmx_footprint
,
5246 { "DMX Footprint", "rdm.pd.dmx_footprint",
5247 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5250 { &hf_rdm_pd_dmx_pers_current
,
5251 { "Current DMX Personality", "rdm.pd.dmx_pers_current",
5252 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5255 { &hf_rdm_pd_dmx_pers_total
,
5256 { "Total nr. DMX Personalities", "rdm.pd.dmx_pers_total",
5257 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5260 { &hf_rdm_pd_sub_device_count
,
5261 { "Sub-Device Count", "rdm.pd.sub_device_count",
5262 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5265 { &hf_rdm_pd_sensor_count
,
5266 { "Sensor Count", "rdm.pd.sensor_count",
5267 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5270 { &hf_rdm_pd_device_model_description
,
5271 { "Device Model Description", "rdm.pd.device_model_description",
5272 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5275 { &hf_rdm_pd_disc_unique_branch_lb_uid
,
5276 { "Lower Bound UID", "rdm.pd.disc_unique_branch.lb_uid",
5277 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5280 { &hf_rdm_pd_disc_unique_branch_ub_uid
,
5281 { "Upper Bound UID", "rdm.pd.disc_unique_branch.ub_uid",
5282 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5285 { &hf_rdm_pd_disc_mute_control_field
,
5286 { "Control Field", "rdm.pd.disc_mute.control_field",
5287 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5290 { &hf_rdm_pd_disc_mute_binding_uid
,
5291 { "Binding UID", "rdm.pd.disc_mute.binding_uid",
5292 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5295 { &hf_rdm_pd_disc_unmute_control_field
,
5296 { "Control Field", "rdm.pd.disc_unmute.control_field",
5297 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5300 { &hf_rdm_pd_disc_unmute_binding_uid
,
5301 { "Binding UID", "rdm.pd.disc_unmute.binding_uid",
5302 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5305 { &hf_rdm_pd_proxied_devices_uid
,
5306 { "UID", "rdm.pd.proxied_devices.uid",
5307 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5310 { &hf_rdm_pd_proxied_device_count
,
5311 { "Device Count", "rdm.pd.device_count",
5312 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5315 { &hf_rdm_pd_proxied_device_list_change
,
5316 { "List Change", "rdm.pd.list_change",
5317 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5320 { &hf_rdm_pd_real_time_clock_year
,
5321 { "Year", "rdm.pd.real_time_clock.year",
5322 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5325 { &hf_rdm_pd_real_time_clock_month
,
5326 { "Month", "rdm.pd.real_time_clock.month",
5327 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5330 { &hf_rdm_pd_real_time_clock_day
,
5331 { "Day", "rdm.pd.real_time_clock.day",
5332 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5335 { &hf_rdm_pd_real_time_clock_hour
,
5336 { "Hour", "rdm.pd.real_time_clock.hour",
5337 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5340 { &hf_rdm_pd_real_time_clock_minute
,
5341 { "Minute", "rdm.pd.real_time_clock.minute",
5342 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5345 { &hf_rdm_pd_real_time_clock_second
,
5346 { "Second", "rdm.pd.real_time_clock.second",
5347 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5350 { &hf_rdm_pd_lamp_state
,
5351 { "Lamp State", "rdm.pd.lamp_state",
5352 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5355 { &hf_rdm_pd_lamp_on_mode
,
5356 { "Lamp On Mode", "rdm.pd.lamp_on_mode",
5357 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5360 { &hf_rdm_pd_device_power_cycles
,
5361 { "Device Power Cycles", "rdm.pd.device_power_cycles",
5362 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5365 { &hf_rdm_pd_display_invert
,
5366 { "Display Invert", "rdm.pd.display_invert",
5367 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5370 { &hf_rdm_pd_display_level
,
5371 { "Display Level", "rdm.pd.display_level",
5372 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5375 { &hf_rdm_pd_pan_invert
,
5376 { "Pan Invert", "rdm.pd.pan_invert",
5377 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5380 { &hf_rdm_pd_tilt_invert
,
5381 { "Tilt Invert", "rdm.pd.tilt_invert",
5382 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5385 { &hf_rdm_pd_tilt_swap
,
5386 { "Tilt Swap", "rdm.pd.tilt_swap",
5387 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5390 { &hf_rdm_pd_selftest_nr
,
5391 { "Selftest Nr.", "rdm.pd.selftest.nr",
5392 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5395 { &hf_rdm_pd_selftest_state
,
5396 { "Selftest State", "rdm.pd.selftest.state",
5397 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5400 { &hf_rdm_pd_selftest_description
,
5401 { "Selftest Description", "rdm.pd.selftest.description",
5402 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5405 { &hf_rdm_pd_language_code
,
5406 { "Language Code", "rdm.pd.language_code",
5407 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5410 { &hf_rdm_pd_identify_device
,
5411 { "Identify Device", "rdm.pd.identify_device",
5412 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5415 { &hf_rdm_pd_identify_device_state
,
5416 { "Identify Device State", "rdm.pd.identify_device.state",
5417 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5420 { &hf_rdm_pd_reset_device
,
5421 { "Reset Device", "rdm.pd.reset_device",
5422 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5425 { &hf_rdm_pd_power_state
,
5426 { "Power State", "rdm.pd.power_state",
5427 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5430 { &hf_rdm_pd_capture_preset_scene_nr
,
5431 { "Scene Nr.", "rdm.pd.capture_preset.scene_nr",
5432 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5435 { &hf_rdm_pd_capture_preset_up_fade_time
,
5436 { "Up Fade Time", "rdm.pd.capture_preset.up_fade_time",
5437 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5440 { &hf_rdm_pd_capture_preset_down_fade_time
,
5441 { "Down Fade Time", "rdm.pd.capture_preset.down_fade_time",
5442 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5445 { &hf_rdm_pd_capture_preset_wait_time
,
5446 { "Wait Time", "rdm.pd.capture_preset.wait_time",
5447 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5450 { &hf_rdm_pd_preset_playback_mode
,
5451 { "Mode", "rdm.pd.preset_playback.mode",
5452 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5455 { &hf_rdm_pd_preset_playback_level
,
5456 { "Level", "rdm.pd.preset_playback.level",
5457 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5460 { &hf_rdm_pd_parameter_id
,
5461 { "ID", "rdm.pd.parameter.id",
5462 FT_UINT16
, BASE_HEX
, VALS(rdm_param_id_vals
), 0x0,
5465 { &hf_rdm_pd_parameter_pdl_size
,
5466 { "PDL Size", "rdm.pd.parameter.pdl_size",
5467 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5470 { &hf_rdm_pd_parameter_data_type
,
5471 { "Data Type", "rdm.pd.parameter.data_type",
5472 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5475 { &hf_rdm_pd_parameter_cmd_class
,
5476 { "Command Class", "rdm.pd.parameter.cmd_class",
5477 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5480 { &hf_rdm_pd_parameter_type
,
5481 { "Type", "rdm.pd.parameter.type",
5482 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5485 { &hf_rdm_pd_parameter_unit
,
5486 { "Unit", "rdm.pd.parameter.unit",
5487 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5490 { &hf_rdm_pd_parameter_prefix
,
5491 { "Prefix", "rdm.pd.parameter.prefix",
5492 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5495 { &hf_rdm_pd_parameter_min_value
,
5496 { "Min. Value", "rdm.pd.parameter.min_value",
5497 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5500 { &hf_rdm_pd_parameter_max_value
,
5501 { "Max. Value", "rdm.pd.parameter.max_value",
5502 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5505 { &hf_rdm_pd_parameter_default_value
,
5506 { "Default Value", "rdm.pd.parameter.default_value",
5507 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5510 { &hf_rdm_pd_parameter_description
,
5511 { "Description", "rdm.pd.parameter.description",
5512 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5515 { &hf_rdm_pd_software_version_label
,
5516 { "Version Label", "rdm.pd.software_version.label",
5517 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5520 { &hf_rdm_pd_boot_software_version_id
,
5521 { "Version ID", "rdm.pd.boot_software_version.id",
5522 FT_UINT32
, BASE_HEX
, NULL
, 0x0,
5525 { &hf_rdm_pd_boot_software_version_label
,
5526 { "Version Label", "rdm.pd.boot_software_version.label",
5527 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5530 { &hf_rdm_pd_comms_status_short_msg
,
5531 { "Short Msg", "rdm.pd.comms_status.short_msg",
5532 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5535 { &hf_rdm_pd_comms_status_len_mismatch
,
5536 { "Len Mismatch", "rdm.pd.comms_status.len_mismatch",
5537 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5540 { &hf_rdm_pd_comms_status_csum_fail
,
5541 { "Checksum Fail", "rdm.pd.comms_status.csum_fail",
5542 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5545 { &hf_rdm_pd_status_messages_type
,
5546 { "Type", "rdm.pd.status_messages.type",
5547 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5550 { &hf_rdm_pd_status_messages_sub_device_id
,
5551 { "Sub. Device ID", "rdm.pd.status_messages.sub_devices_id",
5552 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
5555 { &hf_rdm_pd_status_messages_id
,
5556 { "ID", "rdm.pd.status_messages.id",
5557 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
5560 { &hf_rdm_pd_status_messages_data_value_1
,
5561 { "Data Value 1", "rdm.pd.status_messages.data_value_1",
5562 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
5565 { &hf_rdm_pd_status_messages_data_value_2
,
5566 { "Data Value 2", "rdm.pd.status_messages.data_value_2",
5567 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
5570 { &hf_rdm_pd_status_id
,
5571 { "ID", "rdm.pd.status_id",
5572 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5575 { &hf_rdm_pd_status_id_description
,
5576 { "Description", "rdm.pd.status_id.description",
5577 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5580 { &hf_rdm_pd_sub_device_status_report_threshold_status_type
,
5581 { "Status Type", "rdm.pd.sub_device_status_report_threshold.status_type",
5582 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
5585 { &hf_rdm_pd_product_detail_id_list
,
5586 { "Sensor Count", "rdm.pd.product_detail_id_list",
5587 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
5590 { &hf_rdm_pd_factory_defaults
,
5591 { "Factory Defaults", "rdm.pd.factory_defaults",
5592 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5595 { &hf_rdm_pd_background_discovery_endpoint_id
,
5596 { "Endpoint ID", "rdm.pd.background_discovery.endpoint_id",
5597 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5600 { &hf_rdm_pd_background_discovery_enabled
,
5601 { "Enabled", "rdm.pd.background_discovery.enabled",
5602 FT_UINT8
, BASE_DEC
, VALS(enabled_disabled_vals
), 0x0,
5605 { &hf_rdm_pd_background_queued_status_policy_current_policy
,
5606 { "Current Policy", "rdm.pd.background_queued_status_policy.current_policy",
5607 FT_UINT8
, BASE_DEC
, VALS(rdm_status_vals
), 0x0,
5610 { &hf_rdm_pd_background_queued_status_policy_number_of_policies
,
5611 { "Number Of Policies", "rdm.pd.background_queued_status_policy.number_of_policies",
5612 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5615 { &hf_rdm_pd_background_queued_status_policy_description_policy
,
5616 { "Policy", "rdm.pd.background_queued_status_policy_description.policy",
5617 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5620 { &hf_rdm_pd_background_queued_status_policy_description_description
,
5621 { "Description", "rdm.pd.background_queued_status_policy_description.description",
5622 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5625 { &hf_rdm_pd_search_domain_dns_domain_name
,
5626 { "DNS Domain Name", "rdm.pd.search_domain.dns_domain_name",
5627 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5630 { &hf_rdm_pd_binding_control_fields_endpoint_id
,
5631 { "Endpoint ID", "rdm.pd.binding_control_fields.endpoint_id",
5632 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5635 { &hf_rdm_pd_binding_control_fields_uid
,
5636 { "UID", "rdm.pd.binding_control_fields.uid",
5637 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5640 { &hf_rdm_pd_binding_control_fields_control_field
,
5641 { "Control Field", "rdm.pd.binding_control_fields.control_field",
5642 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5645 { &hf_rdm_pd_binding_control_fields_binding_uid
,
5646 { "Binding UID", "rdm.pd.binding_control_fields.binding_uid",
5647 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5650 { &hf_rem_pd_broker_status_set_allowed
,
5651 { "Set Allowed", "rdm.pd.broker_status.set_allowed",
5652 FT_UINT8
, BASE_DEC
, VALS(true_false_vals
), 0x0,
5655 { &hf_rem_pd_broker_status_state
,
5656 { "State", "rdm.pd.broker_status.state",
5657 FT_UINT8
, BASE_DEC
, VALS(rdmnet_broker_status_states_vals
), 0x0,
5660 { &hf_rdm_pd_burn_in
,
5661 { "Burn In", "rdm.pd.burn_in",
5662 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5665 { &hf_rdm_pd_component_scope_scope_slot
,
5666 { "Scope Slot", "rdm.pd.component_scope.scope_slot",
5667 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5670 { &hf_rdm_pd_component_scope_scope_string
,
5671 { "Scope String", "rdm.pd.component_scope.scope_string",
5672 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5675 { &hf_rdm_pd_component_scope_scope_static_config_type
,
5676 { "Static Config. Type", "rdm.pd.component_scope.static_config_type",
5677 FT_UINT8
, BASE_DEC
, VALS(rdmnet_component_scope_static_config_type_vals
), 0x0,
5680 { &hf_rdm_pd_component_scope_scope_static_ipv4_address
,
5681 { "Static IPv4 Address", "rdm.pd.component_scope.static_ipv4_address",
5682 FT_IPv4
, BASE_NONE
, NULL
, 0x0,
5685 { &hf_rdm_pd_component_scope_scope_static_ipv6_address
,
5686 { "Static IPv6 Address", "rdm.pd.component_scope.static_ipv6_address",
5687 FT_IPv6
, BASE_NONE
, NULL
, 0x0,
5690 { &hf_rdm_pd_component_scope_scope_static_port
,
5691 { "Static Port", "rdm.pd.component_scope.static_port",
5692 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5695 { &hf_rdm_pd_current_address_interface_identifier
,
5696 { "Interface Identifier", "rdm.pd.current_address.interface_identifier",
5697 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5700 { &hf_rdm_pd_current_address_ipv4_address
,
5701 { "IPv4 Address", "rdm.pd.current_address.ipv4_address",
5702 FT_IPv4
, BASE_NONE
, NULL
, 0x0,
5705 { &hf_rdm_pd_current_address_netmask
,
5706 { "Netmask", "rdm.pd.current_address.netmask",
5707 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5710 { &hf_rdm_pd_current_address_dhcp_status
,
5711 { "DHCP Status", "rdm.pd.current_address.dhcp_status",
5712 FT_UINT8
, BASE_DEC
, VALS(rdm_dhcp_status_vals
), 0x0,
5715 { &hf_rdm_pd_curve_curve
,
5716 { "Curve", "rdm.pd.curve.curve",
5717 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5720 { &hf_rdm_pd_curve_number_of_curves
,
5721 { "Number Of Curves", "rdm.pd.curve.number_of_curves",
5722 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5725 { &hf_rdm_pd_curve_description_curve
,
5726 { "Curve", "rdm.pd.curve_description.curve",
5727 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5730 { &hf_rdm_pd_curve_description_text
,
5731 { "Description", "rdm.pd.curve_description.description",
5732 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5735 { &hf_rdm_pd_dhcp_mode_interface_identifier
,
5736 { "Interface Identifier", "rdm.pd.dhcp_mode.interface_identifier",
5737 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5740 { &hf_rdm_pd_dhcp_mode_enabled
,
5741 { "Enabled", "rdm.pd.dhcp_mode.enabled",
5742 FT_UINT8
, BASE_DEC
, VALS(enabled_disabled_vals
), 0x0,
5745 { &hf_rdm_pd_dimmer_info_minimum_level_lower_limit
,
5746 { "Minimum Level Lower Limit", "rdm.pd.dimmer_info.minimum_level_lower_limit",
5747 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5750 { &hf_rdm_pd_dimmer_info_minimum_level_upper_limit
,
5751 { "Minimum Level Upper Limit", "rdm.pd.dimmer_info.minimum_level_upper_limit",
5752 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5755 { &hf_rdm_pd_dimmer_info_maximum_level_lower_limit
,
5756 { "Maximum Level Lower Limit", "rdm.pd.dimmer_info.maximum_level_lower_limit",
5757 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5760 { &hf_rdm_pd_dimmer_info_maximum_level_upper_limit
,
5761 { "Maximum Level Upper Limit", "rdm.pd.dimmer_info.maximum_level_upper_limit",
5762 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5765 { &hf_rdm_pd_dimmer_info_number_of_supported_curves
,
5766 { "Number Of Supported Curves", "rdm.pd.dimmer_info.number_of_supported_curves",
5767 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5770 { &hf_rdm_pd_dimmer_info_levels_resolution
,
5771 { "Levels Resolution", "rdm.pd.dimmer_info.levels_resolution",
5772 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5775 { &hf_rdm_pd_dimmer_info_minimum_level_split_levels_supported
,
5776 { "Minimum Level Split Levels Supported", "rdm.pd.dimmer_info.minimum_level_split_levels_supported",
5777 FT_UINT8
, BASE_DEC
, VALS(true_false_vals
), 0x0,
5780 { &hf_rdm_pd_discovery_state_endpoint_id
,
5781 { "Endpoint ID", "rdm.pd.discovery_state.endpoint_id",
5782 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5785 { &hf_rdm_pd_discovery_state_device_count
,
5786 { "Device Count", "rdm.pd.discovery_state.device_count",
5787 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5790 { &hf_rdm_pd_discovery_state_discovery_state
,
5791 { "State", "rdm.pd.discovery_state.state",
5792 FT_UINT8
, BASE_DEC
, VALS(rdm_discovery_state_vals
), 0x0,
5795 { &hf_rdm_pd_dmx_block_address_base_dmx_address
,
5796 { "Base DMX Address", "rdm.pd.dmx_block_address.base_dmx_address",
5797 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5800 { &hf_rdm_pd_dmx_block_address_subdevice_footprint
,
5801 { "Sub-Device Footprint", "rdm.pd.dmx_block_address.subdevice_footprint",
5802 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5805 { &hf_rdm_pd_dmx_fail_mode_scene_number
,
5806 { "Scene Number", "rdm.pd.dmx_fail_mode.scene_number",
5807 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5810 { &hf_rdm_pd_dmx_fail_mode_loss_of_signal_delay
,
5811 { "Loss Of Signal Delay", "rdm.pd.dmx_fail_mode.loss_of_signal_delay",
5812 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5815 { &hf_rdm_pd_dmx_fail_mode_hold_time
,
5816 { "Hold Time", "rdm.pd.dmx_fail_mode.hold_time",
5817 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5820 { &hf_rdm_pd_dmx_fail_mode_level
,
5821 { "Level", "rdm.pd.dmx_fail_mode.level",
5822 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5825 { &hf_rdm_pd_dmx_pers_nr
,
5826 { "DMX Pers. Nr.", "rdm.pd.dmx_pers.nr",
5827 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5830 { &hf_rdm_pd_dmx_pers_count
,
5831 { "DMX Pers. Count", "rdm.pd.dmx_pers.count",
5832 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5835 { &hf_rdm_pd_dmx_pers_requested
,
5836 { "DMX Pers. Requested", "rdm.pd.dmx_pers.requested",
5837 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5840 { &hf_rdm_pd_dmx_pers_slots
,
5841 { "DMX Pers. Slots", "rdm.pd.dmx_pers.slots",
5842 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5845 { &hf_rdm_pd_dmx_pers_text
,
5846 { "DMX Pers. Text", "rdm.pd.dmx_pers.text",
5847 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5850 { &hf_rdm_pd_dmx_startup_mode_scene_number
,
5851 { "Scene Number", "rdm.pd.dmx_startup_mode.scene_number",
5852 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5855 { &hf_rdm_pd_dmx_startup_mode_loss_of_signal_delay
,
5856 { "Startup Delay Time", "rdm.pd.dmx_startup_mode.startup_delay_time",
5857 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5860 { &hf_rdm_pd_dmx_startup_mode_hold_time
,
5861 { "Hold Time", "rdm.pd.dmx_startup_mode.hold_time",
5862 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5865 { &hf_rdm_pd_dmx_startup_mode_level
,
5866 { "Level", "rdm.pd.dmx_startup_mode.level",
5867 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5870 { &hf_rdm_pd_dns_domain_name
,
5871 { "Domain Name", "rdm.pd.dns_domain_name",
5872 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5875 { &hf_rdm_pd_dns_hostname
,
5876 { "Host Name", "rdm.pd.dns_hostname",
5877 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5880 { &hf_rdm_pd_dns_ipv4_name_server_index
,
5881 { "Index", "rdm.pd.dns_ipv4_name_server.index",
5882 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5885 { &hf_rdm_pd_dns_ipv4_name_server_address
,
5886 { "Index", "rdm.pd.dns_ipv4_name_server.address",
5887 FT_IPv4
, BASE_NONE
, NULL
, 0x0,
5890 { &hf_rdm_pd_endpoint_label_endpoint_id
,
5891 { "Endpoint ID", "rdm.pd.endpoint_label.endpoint_id",
5892 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5895 { &hf_rdm_pd_endpoint_label_label
,
5896 { "Label", "rdm.pd.endpoint_label.label",
5897 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5900 { &hf_rdm_pd_endpoint_list_change_number
,
5901 { "List Change Number", "rdm.pd.endpoint_list.change_number",
5902 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5905 { &hf_rdm_pd_endpoint_list_endpoint_id
,
5906 { "Endpoint ID", "rdm.pd.endpoint_list.endpoint_id",
5907 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5910 { &hf_rdm_pd_endpoint_list_endpoint_type
,
5911 { "Endpoint Type", "rdm.pd.endpoint_list.endpoint_type",
5912 FT_UINT8
, BASE_DEC
, VALS(rdm_endpoint_type_vals
), 0x0,
5915 { &hf_rdm_pd_endpoint_list_change_change_number
,
5916 { "List Change Number", "rdm.pd.endpoint_list_change.change_number",
5917 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5920 { &hf_rdm_pd_endpoint_mode_endpoint_id
,
5921 { "Endpoint ID", "rdm.pd.endpoint_mode.endpoint_id",
5922 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5925 { &hf_rdm_pd_endpoint_mode_endpoint_mode
,
5926 { "Endpoint ID", "rdm.pd.endpoint_mode.endpoint_mode",
5927 FT_UINT8
, BASE_DEC
, VALS(rdm_endpoint_mode_vals
), 0x0,
5930 { &hf_rdm_pd_endpoint_responder_list_change_endpoint_id
,
5931 { "Endpoint ID", "rdm.pd.endpoint_responder_list_change.endpoint_id",
5932 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5935 { &hf_rdm_pd_endpoint_responder_list_change_change_number
,
5936 { "Change Number", "rdm.pd.endpoint_responder_list_change.change_number",
5937 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5940 { &hf_rdm_pd_endpoint_responders_endpoint_id
,
5941 { "Endpoint ID", "rdm.pd.endpoint_responders.endpoint_id",
5942 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5945 { &hf_rdm_pd_endpoint_responders_change_number
,
5946 { "Change Number", "rdm.pd.endpoint_responders.change_number",
5947 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5950 { &hf_rdm_pd_endpoint_responders_uid
,
5951 { "UID", "rdm.pd.endpoint_responders.uid",
5952 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
5955 { &hf_rdm_pd_endpoint_timing_endpoint_id
,
5956 { "Endpoint ID", "rdm.pd.endpoint_timing.endpoint_id",
5957 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5960 { &hf_rdm_pd_endpoint_timing_setting
,
5961 { "Setting", "rdm.pd.endpoint_timing.setting",
5962 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5965 { &hf_rdm_pd_endpoint_timing_number_of_settings
,
5966 { "Number Of Settings", "rdm.pd.endpoint_timing.number_of_settings",
5967 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5970 { &hf_rdm_pd_endpoint_timing_description_setting
,
5971 { "Setting", "rdm.pd.endpoint_timing_description.setting",
5972 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
5975 { &hf_rdm_pd_endpoint_timing_description_description
,
5976 { "Description", "rdm.pd.endpoint_timing_description.description",
5977 FT_STRING
, BASE_NONE
, NULL
, 0x0,
5980 { &hf_rdm_pd_endpoint_to_universe_endpoint_id
,
5981 { "Endpoint ID", "rdm.pd.endpoint_to_universe.endpoint_id",
5982 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5985 { &hf_rdm_pd_endpoint_to_universe_universe_number
,
5986 { "Universe Number", "rdm.pd.endpoint_to_universe.universe_number",
5987 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
5990 { &hf_rdm_pd_hardware_address_type1_interface_identifier
,
5991 { "Interface Identifier", "rdm.pd.hardware_address_type1.interface_identifier",
5992 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
5995 { &hf_rdm_pd_hardware_address_type1_hardware_address
,
5996 { "Hardware Address", "rdm.pd.hardware_address_type1.hardware_address",
5997 FT_BYTES
, SEP_COLON
, NULL
, 0x0,
6000 { &hf_rdm_pd_identify_endpoint_endpoint_id
,
6001 { "Endpoint ID", "rdm.pd.identify_endpoint.endpoint_id",
6002 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6005 { &hf_rdm_pd_identify_endpoint_identify_state
,
6006 { "Identify State", "rdm.pd.identify_endpoint.identify_state",
6007 FT_UINT8
, BASE_DEC
, VALS(on_off_vals
), 0x0,
6010 { &hf_rdm_pd_identify_mode
,
6011 { "Identify Mode", "rdm.pd.identify_mode.identify_mode",
6012 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6015 { &hf_rdm_pd_interface_apply_configuration_interface_identifier
,
6016 { "Interface Identifier", "rdm.pd.interface_apply_configuration.interface_identifier",
6017 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
6020 { &hf_rdm_pd_interface_label_interface_identifier
,
6021 { "Interface Identifier", "rdm.pd.interface_label.interface_identifier",
6022 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
6025 { &hf_rdm_pd_interface_label_label
,
6026 { "Label", "rdm.pd.interface_label.label",
6027 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6030 { &hf_rdm_pd_interface_release_dhcp_interface_identifier
,
6031 { "Interface Identifier", "rdm.pd.interface_release_dhcp.interface_identifier",
6032 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
6035 { &hf_rdm_pd_interface_renew_dhcp_interface_identifier
,
6036 { "Interface Identifier", "rdm.pd.interface_renew_dhcp.interface_identifier",
6037 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
6040 { &hf_rdm_pd_ipv4_default_route_interface_identifier
,
6041 { "Interface Identifier", "rdm.pd.ipv4_default_route.interface_identifier",
6042 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
6045 { &hf_rdm_pd_ipv4_default_route_ipv4_default_route
,
6046 { "Interface Identifier", "rdm.pd.ipv4_default_route.default_route",
6047 FT_IPv4
, BASE_NONE
, NULL
, 0x0,
6050 { &hf_rdm_pd_list_interfaces_interface_identifier
,
6051 { "Interface Identifier", "rdm.pd.list_interfaces.interface_identifier",
6052 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
6055 { &hf_rdm_pd_list_interfaces_interface_hardware_type
,
6056 { "Interface Hardware Type", "rdm.pd.list_interfaces.interface_hardware_type",
6057 FT_UINT16
, BASE_DEC
, VALS(arp_hrd_vals
), 0x0,
6060 { &hf_rdm_pd_lock_pin_pin_code
,
6061 { "PIN Code", "rdm.pd.lock_pin.pin_code",
6062 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6064 { &hf_rdm_pd_lock_pin_new_pin_code
,
6065 { "New PIN Code", "rdm.pd.lock_pin.new_pin_code",
6066 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6069 { &hf_rdm_pd_lock_state_lock_state
,
6070 { "Lock State", "rdm.pd.lock_state.lock_state",
6071 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6074 { &hf_rdm_pd_lock_state_number_of_lock_states
,
6075 { "Number Of Lock States", "rdm.pd.lock_state.number_of_lock_states",
6076 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6079 { &hf_rdm_pd_lock_state_pin_code
,
6080 { "PIN Code", "rdm.pd.lock_state.pin_code",
6081 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6084 { &hf_rdm_pd_lock_state_description_lock_state
,
6085 { "Lock State", "rdm.pd.lock_state_description.lock_state",
6086 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6089 { &hf_rdm_pd_lock_state_description_text
,
6090 { "Description", "rdm.pd.lock_state_description.description",
6091 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6094 { &hf_rdm_pd_maximum_level_level
,
6095 { "Level", "rdm.pd.maximum_level.level",
6096 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6099 { &hf_rdm_pd_preset_mergemode
,
6100 { "Merge Mode", "rdm.pd.preset_mergemode",
6101 FT_UINT8
, BASE_DEC
, VALS(rdm_mergemode_vals
), 0x0,
6104 { &hf_rdm_pd_power_on_self_test
,
6105 { "Power On Self Test", "rdm.pd.power_on_self_test",
6106 FT_UINT8
, BASE_DEC
, VALS(enabled_disabled_vals
), 0x0,
6109 { &hf_rdm_pd_minimum_level_increasing
,
6110 { "Increasing", "rdm.pd.minimum_level.increasing",
6111 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6114 { &hf_rdm_pd_minimum_level_decreasing
,
6115 { "Decreasing", "rdm.pd.minimum_level.decreasing",
6116 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6119 { &hf_rdm_pd_minimum_level_on_below_minimum
,
6120 { "On Below Minimum", "rdm.pd.minimum_level.on_below_minimum",
6121 FT_UINT8
, BASE_DEC
, VALS(true_false_vals
), 0x0,
6124 { &hf_rdm_pd_modulation_frequency_modulation_frequency
,
6125 { "Modulation Frequency", "rdm.pd.modulation_frequency.modulation_frequency",
6126 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6129 { &hf_rdm_pd_modulation_frequency_number_of_modulation_frequencies
,
6130 { "Number Of Modulation Frequencies", "rdm.pd.modulation_frequency.number_of_modulation_frequencies",
6131 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6134 { &hf_rdm_pd_modulation_frequency_description_modulation_frequency
,
6135 { "Modulation Frequency", "rdm.pd.modulation_frequency_description.modulation_frequency",
6136 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6139 { &hf_rdm_pd_modulation_frequency_description_text
,
6140 { "Description", "rdm.pd.modulation_frequency_description.description",
6141 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6144 { &hf_rdm_pd_output_response_time_response_time
,
6145 { "Response Time", "rdm.pd.response_time.response_time",
6146 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6149 { &hf_rdm_pd_output_response_time_number_of_response_times
,
6150 { "Number Of Response Times", "rdm.pd.response_time.number_of_response_times",
6151 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6154 { &hf_rdm_pd_output_response_time_description_output_response_time
,
6155 { "Output Response Time", "rdm.pd.output_response_time_description.output_response_time",
6156 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6159 { &hf_rdm_pd_output_response_time_description_text
,
6160 { "Description", "rdm.pd.output_response_time_description.description",
6161 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6164 { &hf_rdm_pd_preset_info_level_field_supported
,
6165 { "Level Field Supported", "rdm.pd.preset_info.level_field_supported",
6166 FT_UINT8
, BASE_DEC
, VALS(true_false_vals
), 0x0,
6169 { &hf_rdm_pd_preset_info_preset_sequence_supported
,
6170 { "Preset Sequence Supported", "rdm.pd.preset_info.preset_sequence_supported",
6171 FT_UINT8
, BASE_DEC
, VALS(true_false_vals
), 0x0,
6174 { &hf_rdm_pd_preset_info_split_times_supported
,
6175 { "Split Times Supported", "rdm.pd.preset_info.split_times_supported",
6176 FT_UINT8
, BASE_DEC
, VALS(true_false_vals
), 0x0,
6179 { &hf_rdm_pd_preset_info_dmx_fail_infinite_delay_time_supported
,
6180 { "DMX Fail Infinite Delay Time Supported", "rdm.pd.preset_info.dmx_fail_infinite_delay_time_supported",
6181 FT_UINT8
, BASE_DEC
, VALS(true_false_vals
), 0x0,
6184 { &hf_rdm_pd_preset_info_dmx_fail_infinite_hold_time_supported
,
6185 { "DMX Fail Infinite Hold Time Supported", "rdm.pd.preset_info.dmx_fail_infinite_hold_time_supported",
6186 FT_UINT8
, BASE_DEC
, VALS(true_false_vals
), 0x0,
6189 { &hf_rdm_pd_preset_info_start_up_infinite_hold_time_supported
,
6190 { "Start Up_ Infinite Hold Time Supported", "rdm.pd.preset_info.start_up_infinite_hold_time_supported",
6191 FT_UINT8
, BASE_DEC
, VALS(true_false_vals
), 0x0,
6194 { &hf_rdm_pd_preset_info_maximum_scene_number
,
6195 { "Maximum Scene Number", "rdm.pd.preset_info.maximum_scene_number",
6196 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6199 { &hf_rdm_pd_preset_info_minimum_preset_fade_time_supported
,
6200 { "Minimum Preset Fade Time Supported", "rdm.pd.preset_info.minimum_preset_fade_time_supported",
6201 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6204 { &hf_rdm_pd_preset_info_maximum_preset_fade_time_supported
,
6205 { "Maximum Preset Fade Time Supported", "rdm.pd.preset_info.maximum_preset_fade_time_supported",
6206 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6209 { &hf_rdm_pd_preset_info_minimum_preset_wait_time_supported
,
6210 { "Minimum Preset Wait Time Supported", "rdm.pd.preset_info.minimum_preset_wait_time_supported",
6211 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6214 { &hf_rdm_pd_preset_info_maximum_preset_wait_time_supported
,
6215 { "Maximum Preset Wait Time Supported", "rdm.pd.preset_info.maximum_preset_wait_time_supported",
6216 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6219 { &hf_rdm_pd_preset_info_minimum_dmx_fail_delay_time_supported
,
6220 { "Minimum DMX Fail Delay Time Supported", "rdm.pd.preset_info.minimum_dmx_fail_delay_time_supported",
6221 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6224 { &hf_rdm_pd_preset_info_maximum_dmx_fail_delay_time_supported
,
6225 { "Maximum DMX Fail Delay Time Supported", "rdm.pd.preset_info.maximum_dmx_fail_delay_time_supported",
6226 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6229 { &hf_rdm_pd_preset_info_minimum_dmx_fail_hold_time_supported
,
6230 { "Minimum DMX Fail Hold Time Supported", "rdm.pd.preset_info.minimum_dmx_fail_hold_time_supported",
6231 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6234 { &hf_rdm_pd_preset_info_maximum_dmx_fail_hold_time_supported
,
6235 { "Maximum DMX Fail Hold Time Supported", "rdm.pd.preset_info.maximum_dmx_fail_hold_time_supported",
6236 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6239 { &hf_rdm_pd_preset_info_minimum_start_up_delay_time_supported
,
6240 { "Minimum Start Up Delay Time Supported", "rdm.pd.preset_info.minimum_start_up_delay_time_supported",
6241 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6244 { &hf_rdm_pd_preset_info_maximum_start_up_delay_time_supported
,
6245 { "Maximum Start Up Delay Time Supported", "rdm.pd.preset_info.maximum_start_up_delay_time_supported",
6246 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6249 { &hf_rdm_pd_preset_info_minimum_start_up_hold_time_supported
,
6250 { "Minimum Start Up Hold Time Supported", "rdm.pd.preset_info.minimum_start_up_hold_time_supported",
6251 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6254 { &hf_rdm_pd_preset_info_maximum_start_up_hold_time_supported
,
6255 { "Maximum Start Up Hold Time Supported", "rdm.pd.preset_info.maximum_start_up_hold_time_supported",
6256 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6259 { &hf_rdm_pd_preset_status_scene_number
,
6260 { "Scene Number", "rdm.pd.preset_status.scene_number",
6261 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6264 { &hf_rdm_pd_preset_status_up_fade_time
,
6265 { "Up Fade Time", "rdm.pd.preset_status.up_fade_time",
6266 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6269 { &hf_rdm_pd_preset_status_down_fade_time
,
6270 { "Down Fade Time", "rdm.pd.preset_status.down_fade_time",
6271 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6274 { &hf_rdm_pd_preset_status_wait_time
,
6275 { "Wait Time", "rdm.pd.preset_status.wait_time",
6276 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6279 { &hf_rdm_pd_preset_status_programmed
,
6280 { "Programmed", "rdm.pd.preset_status.programmed",
6281 FT_UINT8
, BASE_DEC
, VALS(rdm_preset_programmed_vals
), 0x0,
6284 { &hf_rdm_pd_preset_status_clear_preset
,
6285 { "Clear Preset", "rdm.pd.preset_status.clear_preset",
6286 FT_UINT8
, BASE_DEC
, VALS(true_false_vals
), 0x0,
6289 { &hf_rdm_pd_rdm_traffic_enable_endpoint_id
,
6290 { "Endpoint ID", "rdm.pd.rdm_traffic_enable.endpoint_id",
6291 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6294 { &hf_rdm_pd_rdm_traffic_enable_rdm_enabled
,
6295 { "Enabled", "rdm.pd.rdm_traffic_enable.enabled",
6296 FT_UINT8
, BASE_DEC
, VALS(true_false_vals
), 0x0,
6299 { &hf_rdm_pd_slot_offset
,
6300 { "Slot Offset", "rdm.pd.slot_offset",
6301 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6304 { &hf_rdm_pd_slot_type
,
6305 { "Slot Type", "rdm.pd.slot_type",
6306 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6309 { &hf_rdm_pd_slot_label_id
,
6310 { "Slot Label ID", "rdm.pd.slot_label_id",
6311 FT_UINT16
, BASE_HEX
, NULL
, 0x0,
6314 { &hf_rdm_pd_slot_nr
,
6315 { "Slot Nr.", "rdm.pd.slot_nr",
6316 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6319 { &hf_rdm_pd_slot_description
,
6320 { "Slot Description", "rdm.pd.slot_description",
6321 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6324 { &hf_rdm_pd_slot_value
,
6325 { "Slot Value", "rdm.pd.slot_value",
6326 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6329 { &hf_rdm_pd_static_address_interface_identifier
,
6330 { "Interface Identifier", "rdm.pd.static_address.interface_identifier",
6331 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
6334 { &hf_rdm_pd_static_address_ipv4_address
,
6335 { "IPv4 Address", "rdm.pd.static_address.ipv4_address",
6336 FT_IPv4
, BASE_NONE
, NULL
, 0x0,
6339 { &hf_rdm_pd_static_address_netmask
,
6340 { "Netmask", "rdm.pd.static_address.netmask",
6341 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6344 { &hf_rdm_pd_tcp_comms_status_scope_string
,
6345 { "Scope String", "rdm.pd.tcp_comms_status.scope_string",
6346 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6349 { &hf_rdm_pd_tcp_comms_status_broker_ipv4_address
,
6350 { "Broker IPV4 Address", "rdm.pd.tcp_comms_status.broker_ipv4_address",
6351 FT_IPv4
, BASE_NONE
, NULL
, 0x0,
6354 { &hf_rdm_pd_tcp_comms_status_broker_ipv6_address
,
6355 { "Broker IPV6 Address", "rdm.pd.tcp_comms_status.broker_ipv6_address",
6356 FT_IPv6
, BASE_NONE
, NULL
, 0x0,
6359 { &hf_rdm_pd_tcp_comms_status_broker_port
,
6360 { "Broker Port", "rdm.pd.tcp_comms_status.broker_port",
6361 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6364 { &hf_rdm_pd_tcp_comms_status_unhealthy_tcp_events
,
6365 { "Unhealthy TCP Events", "rdm.pd.tcp_comms_status.unhealthy_tcp_events",
6366 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6369 { &hf_rdm_pd_zeroconf_mode_interface_identifier
,
6370 { "Interface Identifier", "rdm.pd.zeroconf_mode.interface_identifier",
6371 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
6374 { &hf_rdm_pd_zeroconf_mode_enabled
,
6375 { "Enabled", "rdm.pd.zeroconf_mode.enabled",
6376 FT_UINT8
, BASE_DEC
, VALS(enabled_disabled_vals
), 0x0,
6379 { &hf_rdm_pd_rec_value_support
,
6380 { "Rec. Value Support", "rdm.pd.rec_value_support",
6381 FT_UINT8
, BASE_HEX
, NULL
, 0x0,
6384 { &hf_etc_parameter_id
,
6385 { "Parameter ID", "rdm.pid",
6386 FT_UINT16
, BASE_HEX
| BASE_EXT_STRING
, &etc_param_id_vals_ext
, 0x0,
6389 { &hf_etc_pd_parameter_id
,
6390 { "ID", "rdm.pd.parameter.id",
6391 FT_UINT16
, BASE_HEX
, VALS(etc_param_id_vals
), 0x0,
6394 { &hf_etc_pd_device_model_id
,
6395 { "Device Model ID", "rdm.pd.device_model_id",
6396 FT_UINT16
, BASE_HEX
, VALS(etc_model_id_vals
), 0x0,
6399 { &hf_etc_pd_led_curve
,
6400 { "Curve", "rdm.pd.led_curve.curve",
6401 FT_UINT8
, BASE_DEC
, VALS(etc_led_curve_vals
), 0x0,
6404 { &hf_etc_pd_led_curve_description_curve
,
6405 { "Curve", "rdm.pd.led_curve_description.curve",
6406 FT_UINT8
, BASE_DEC
, VALS(etc_led_curve_vals
), 0x0,
6409 { &hf_etc_pd_led_curve_description_text
,
6410 { "Description", "rdm.pd.led_curve_description.description",
6411 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6414 { &hf_etc_pd_led_strobe
,
6415 { "Strobe", "rdm.pd.led_strobe",
6416 FT_UINT8
, BASE_DEC
, VALS(enabled_disabled_vals
), 0x0,
6419 { &hf_etc_pd_led_output_mode
,
6420 { "Output Mode", "rdm.pd.led_output_mode",
6421 FT_UINT8
, BASE_DEC
, VALS(etc_led_output_mode_vals
), 0x0,
6424 { &hf_etc_pd_led_output_mode_description_mode
,
6425 { "Output Mode", "rdm.pd.led_output_mode_description.output_mode",
6426 FT_UINT8
, BASE_DEC
, VALS(etc_led_output_mode_vals
), 0x0,
6429 { &hf_etc_pd_led_output_mode_description_text
,
6430 { "Description", "rdm.pd.lled_output_mode_description.description",
6431 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6434 { &hf_etc_pd_led_red_shift
,
6435 { "Red Shift", "rdm.pd.led_red_shift",
6436 FT_UINT8
, BASE_DEC
, VALS(enabled_disabled_vals
), 0x0,
6439 { &hf_etc_pd_led_white_point
,
6440 { "White Point", "rdm.pd.led_white_point",
6441 FT_UINT8
, BASE_DEC
, VALS(etc_led_white_point_vals
), 0x0,
6444 { &hf_etc_pd_led_white_point_description_white_point
,
6445 { "White Point", "rdm.pd.led_white_point_description.white_point",
6446 FT_UINT8
, BASE_DEC
, VALS(etc_led_white_point_vals
), 0x0,
6449 { &hf_etc_pd_led_white_point_description_text
,
6450 { "Description", "rdm.pd.led_white_point_description.description",
6451 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6454 { &hf_etc_pd_led_frequency
,
6455 { "LED Frequency (Hz)", "rdm.pd.led_frequency",
6456 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6459 { &hf_etc_pd_dmx_data_loss_behavior
,
6460 { "DMX Data Loss Behavior", "rdm.pd.dmx_data_loss_behavior",
6461 FT_UINT8
, BASE_DEC
, VALS(etc_dmx_data_loss_vals
), 0x0,
6464 { &hf_etc_pd_dmx_data_loss_behavior_description_behavior
,
6465 { "DMX Data Loss Behavior", "rdm.pd.dmx_data_loss_behavior_description.behavior",
6466 FT_UINT8
, BASE_DEC
, VALS(etc_dmx_data_loss_vals
), 0x0,
6469 { &hf_etc_pd_dmx_data_loss_behavior_description_text
,
6470 { "Description", "rdm.pd.dmx_data_loss_behavior_description.description",
6471 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6474 { &hf_etc_pd_led_plus_seven
,
6475 { "LED Plus Seven", "rdm.pd.led_plus_seven",
6476 FT_UINT8
, BASE_DEC
, VALS(enabled_disabled_vals
), 0x0,
6479 { &hf_etc_pd_backlight_brightness
,
6480 { "Backlight Brightness", "rdm.pd.backlight_brightness",
6481 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6484 { &hf_etc_pd_backlight_timeout
,
6485 { "Backlight Timeout", "rdm.pd.backlight_timeout",
6486 FT_UINT8
, BASE_DEC
, VALS(etc_backlight_timeout_vals
), 0x0,
6489 { &hf_etc_pd_status_indicators
,
6490 { "Status Indicators", "rdm.pd.status_indicators",
6491 FT_UINT8
, BASE_DEC
, VALS(on_off_vals
), 0x0,
6494 { &hf_etc_pd_overtemp_mode
,
6495 { "Overtemp Mode", "rdm.pd.overtemp_mode",
6496 FT_UINT8
, BASE_DEC
, VALS(etc_overtemp_mode_vals
), 0x0,
6499 { &hf_etc_pd_simple_setup_mode
,
6500 { "Simple Setup Mode", "rdm.pd.simple_setup_mode",
6501 FT_UINT8
, BASE_DEC
, VALS(etc_simple_setup_mode_vals
), 0x0,
6504 { &hf_etc_pd_led_strobe_description_strobe
,
6505 { "Strobe", "rdm.pd.led_strobe_description.led_strobe",
6506 FT_UINT8
, BASE_DEC
, VALS(enabled_disabled_vals
), 0x0,
6509 { &hf_etc_pd_led_strobe_description_text
,
6510 { "Description", "rdm.pd.led_strobe_description.description",
6511 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6514 { &hf_etc_pd_red_shift_description_red_shift
,
6515 { "Red Shift", "rdm.pd.red_shift_description.red_shift",
6516 FT_UINT8
, BASE_DEC
, VALS(enabled_disabled_vals
), 0x0,
6519 { &hf_etc_pd_red_shift_description_text
,
6520 { "Description", "rdm.pd.red_shift_description.description",
6521 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6524 { &hf_etc_pd_plus_seven_description_plus_seven
,
6525 { "Plus Seven", "rdm.pd.plus_seven_description.plus_seven",
6526 FT_UINT8
, BASE_DEC
, VALS(enabled_disabled_vals
), 0x0,
6529 { &hf_etc_pd_plus_seven_description_text
,
6530 { "Description", "rdm.pd.plus_seven_description.description",
6531 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6534 { &hf_etc_pd_backlight_timeout_description_timeout
,
6535 { "Backlight Timeout", "rdm.pd.backlight_timeout_description.backlight_timeout",
6536 FT_UINT8
, BASE_DEC
, VALS(etc_backlight_timeout_vals
), 0x0,
6539 { &hf_etc_pd_backlight_timeout_description_text
,
6540 { "Description", "rdm.pd.backlight_timeout_description.description",
6541 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6544 { &hf_etc_pd_simple_setup_mode_description_mode
,
6545 { "Simple Setup Mode", "rdm.pd.simple_setup_mode_description.mode",
6546 FT_UINT8
, BASE_DEC
, VALS(etc_simple_setup_mode_vals
), 0x0,
6549 { &hf_etc_pd_simple_setup_mode_description_text
,
6550 { "Description", "rdm.pd.simple_setup_mode_description.description",
6551 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6554 { &hf_etc_pd_overtemp_mode_description_mode
,
6555 { "Overtemp Mode", "rdm.pd.overtemp_mode_description.mode",
6556 FT_UINT8
, BASE_DEC
, VALS(etc_overtemp_mode_vals
), 0x0,
6559 { &hf_etc_pd_overtemp_mode_description_text
,
6560 { "Description", "rdm.pd.overtemp_mode_description.description",
6561 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6564 { &hf_etc_pd_led_requested_xy_x
,
6565 { "X Coordinate", "rdm.pd.led_requested_xy.x",
6566 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6569 { &hf_etc_pd_led_requested_xy_y
,
6570 { "Y Coordinate", "rdm.pd.led_requested_xy.y",
6571 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6574 { &hf_etc_pd_led_current_xy_x
,
6575 { "X Coordinate", "rdm.pd.led_current_xy.x",
6576 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6579 { &hf_etc_pd_led_current_xy_y
,
6580 { "Y Coordinate", "rdm.pd.led_current_xy.y",
6581 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6584 { &hf_etc_pd_current_pwm_led_number
,
6585 { "LED Number", "rdm.pd.current_pwm.led_number",
6586 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6589 { &hf_etc_pd_current_pwm_channel_duty_cycle
,
6590 { "Channel Duty Cycle", "rdm.pd.current_pwm.channel_duty_cycle",
6591 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6594 { &hf_etc_pd_tristimulus_led_number
,
6595 { "LED Number", "rdm.pd.tristimulus.led_number",
6596 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6599 { &hf_etc_pd_tristimulus_x
,
6600 { "X", "rdm.pd.tristimulus.x",
6601 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
6604 { &hf_etc_pd_tristimulus_y
,
6605 { "Y", "rdm.pd.tristimulus.y",
6606 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
6609 { &hf_etc_pd_tristimulus_z
,
6610 { "Z", "rdm.pd.tristimulus.z",
6611 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
6614 { &hf_etc_pd_led_information_led_number
,
6615 { "LED Number", "rdm.pd.led_information.led_number",
6616 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6619 { &hf_etc_pd_led_information_type
,
6620 { "Type", "rdm.pd.led_information.type",
6621 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6624 { &hf_etc_pd_led_information_dmx_control_channel
,
6625 { "DMX Control Channel", "rdm.pd.led_information.dmx_control_channel",
6626 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6629 { &hf_etc_pd_led_information_drive_current
,
6630 { "Drive Current (ma)", "rdm.pd.led_information.drive_current",
6631 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6634 { &hf_etc_pd_led_information_gamut_polygon_order
,
6635 { "Gamut Polygon Order", "rdm.pd.led_information.gamut_polygon_order",
6636 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6639 { &hf_etc_pd_led_information_quantity
,
6640 { "Quantity", "rdm.pd.led_information.quantity",
6641 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6644 { &hf_etc_pd_preset_config_preset_number
,
6645 { "Preset Number", "rdm.pd.preset_config.preset_number",
6646 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6649 { &hf_etc_pd_preset_config_fade_time
,
6650 { "Fade Time (seconds)", "rdm.pd.preset_config.fade_time",
6651 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6654 { &hf_etc_pd_preset_config_delay_time
,
6655 { "Delay Time (seconds)", "rdm.pd.preset_config.delay_time",
6656 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6659 { &hf_etc_pd_preset_config_hue
,
6660 { "Hue", "rdm.pd.preset_config.hue",
6661 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6664 { &hf_etc_pd_preset_config_saturation
,
6665 { "Saturation", "rdm.pd.preset_config.saturation",
6666 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6669 { &hf_etc_pd_preset_config_intensity
,
6670 { "Intensity", "rdm.pd.preset_config.intensity",
6671 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6674 { &hf_etc_pd_preset_config_strobe
,
6675 { "Strobe", "rdm.pd.preset_config.strobe",
6676 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6679 { &hf_etc_pd_sequence_playback_sequence_number
,
6680 { "Sequence Number", "rdm.pd.sequence_playback.sequence_number",
6681 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6684 { &hf_etc_pd_sequence_config_sequence_number
,
6685 { "Sequence Number", "rdm.pd.sequence_config.sequence_number",
6686 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6689 { &hf_etc_pd_sequence_config_preset_steps
,
6690 { "Preset Steps", "rdm.pd.sequence_config.preset_steps",
6691 FT_NONE
, BASE_NONE
, NULL
, 0x0,
6694 { &hf_etc_pd_sequence_config_preset_step
,
6695 { "Preset Step", "rdm.pd.sequence_config.preset_step",
6696 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6699 { &hf_etc_pd_sequence_config_step_link_times
,
6700 { "Step Link Times (seconds)", "rdm.pd.sequence_config.step_link_times",
6701 FT_NONE
, BASE_NONE
, NULL
, 0x0,
6704 { &hf_etc_pd_sequence_config_step_link_time
,
6705 { "Step Link Time", "rdm.pd.sequence_config.step_link_time",
6706 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6709 { &hf_etc_pd_sequence_config_rate
,
6710 { "Rate", "rdm.pd.sequence_config.rate",
6711 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6714 { &hf_etc_pd_sequence_config_end_state
,
6715 { "End State", "rdm.pd.sequence_config.end_state",
6716 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6719 { &hf_etc_pd_low_power_timeout
,
6720 { "Low Power Timeout", "rdm.pd.low_power_timeout",
6721 FT_UINT8
, BASE_DEC
, VALS(etc_low_power_timeout_vals
), 0x0,
6724 { &hf_etc_pd_low_power_timeout_description_timeout
,
6725 { "Low Power Timeout", "rdm.pd.low_power_timeout_description.timeout",
6726 FT_UINT8
, BASE_DEC
, VALS(etc_low_power_timeout_vals
), 0x0,
6729 { &hf_etc_pd_low_power_timeout_description_text
,
6730 { "Description", "rdm.pd.low_power_timeout_description.description",
6731 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6734 { &hf_etc_pd_led_enum_frequency
,
6735 { "Frequency", "rdm.pd.led_enum_frequency",
6736 FT_UINT8
, BASE_DEC
, VALS(etc_led_frequency_enum_vals
), 0x0,
6739 { &hf_etc_pd_led_enum_frequency_description_frequency
,
6740 { "Frequency", "rdm.pd.led_enum_frequency_description.frequency",
6741 FT_UINT8
, BASE_DEC
, VALS(etc_led_frequency_enum_vals
), 0x0,
6744 { &hf_etc_pd_led_enum_frequency_description_text
,
6745 { "Description", "rdm.pd.led_enum_frequency_description.description",
6746 FT_UINT8
, BASE_DEC
, VALS(etc_led_frequency_enum_vals
), 0x0,
6749 { &hf_etc_pd_rgbi_preset_config_preset_number
,
6750 { "Preset Number", "rdm.pd.rgbi_preset_config.preset_number",
6751 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6754 { &hf_etc_pd_rgbi_preset_config_fade_time
,
6755 { "Fade Time (seconds)", "rdm.pd.rgbi_preset_config.fade_time",
6756 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6759 { &hf_etc_pd_rgbi_preset_config_delay_time
,
6760 { "Delay Time (seconds)", "rdm.pd.rgbi_preset_config.delay_time",
6761 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6764 { &hf_etc_pd_rgbi_preset_config_red
,
6765 { "Red", "rdm.pd.rgbi_preset_config.red",
6766 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6769 { &hf_etc_pd_rgbi_preset_config_green
,
6770 { "Green", "rdm.pd.rgbi_preset_config.green",
6771 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6774 { &hf_etc_pd_rgbi_preset_config_blue
,
6775 { "Blue", "rdm.pd.rgbi_preset_config.blue",
6776 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6779 { &hf_etc_pd_rgbi_preset_config_intensity
,
6780 { "Intensity", "rdm.pd.rgbi_preset_config.intensity",
6781 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6784 { &hf_etc_pd_rgbi_preset_config_strobe
,
6785 { "Strobe", "rdm.pd.rgbi_preset_config.strobe",
6786 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6789 { &hf_etc_pd_cct_preset_config_preset_number
,
6790 { "Preset Number", "rdm.pd.cct_preset_config.preset_number",
6791 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6794 { &hf_etc_pd_cct_preset_config_fade_time
,
6795 { "Fade Time (seconds)", "rdm.pd.cct_preset_config.fade_time",
6796 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6799 { &hf_etc_pd_cct_preset_config_delay_time
,
6800 { "Delay Time (seconds)", "rdm.pd.cct_preset_config.delay_time",
6801 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6804 { &hf_etc_pd_cct_preset_config_white_point
,
6805 { "White Point", "rdm.pd.cct_preset_config.white_point",
6806 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6809 { &hf_etc_pd_cct_preset_config_tint
,
6810 { "Tint", "rdm.pd.cct_preset_config.tint",
6811 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6814 { &hf_etc_pd_cct_preset_config_strobe
,
6815 { "Strobe", "rdm.pd.cct_preset_config.strobe",
6816 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6819 { &hf_etc_pd_cct_preset_config_intensity
,
6820 { "Intensity", "rdm.pd.cct_preset_config.intensity",
6821 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6824 { &hf_etc_pd_cct_preset_config_tone
,
6825 { "Tone", "rdm.pd.cct_preset_config.tone",
6826 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6829 { &hf_etc_pd_cct_preset_config_reserved
,
6830 { "Reserved", "rdm.pd.cct_preset_config.reserved",
6831 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
6834 { &hf_etc_pd_supplementary_device_version_param_index
,
6835 { "Param Index", "rdm.pd.supplementary_device_version.param_index",
6836 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6839 { &hf_etc_pd_supplementary_device_version_param_description
,
6840 { "Param Description", "rdm.pd.supplementary_device_version.param_description",
6841 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
6844 { &hf_etc_pd_power_command
,
6845 { "State", "rdm.pd.power_command",
6846 FT_UINT8
, BASE_DEC
, VALS(on_off_vals
), 0x0,
6849 { &hf_etc_pd_power_command_description_state
,
6850 { "State", "rdm.pd.power_command_description.state",
6851 FT_UINT8
, BASE_DEC
, VALS(on_off_vals
), 0x0,
6854 { &hf_etc_pd_power_command_description_text
,
6855 { "Description", "rdm.pd.power_command_description.description",
6856 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6859 { &hf_etc_pd_dali_short_address
,
6860 { "Short Address", "rdm.pd.dali_short_address",
6861 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6864 { &hf_etc_pd_dali_group_membership
,
6865 { "Group Membership", "rdm.pd.dali_group_membership",
6866 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6869 { &hf_etc_pd_auto_bind
,
6870 { "Auto Bind", "rdm.pd.auto_bind",
6871 FT_UINT8
, BASE_DEC
, VALS(true_false_vals
), 0x0,
6874 { &hf_etc_pd_packet_delay
,
6875 { "Packet Delay", "rdm.pd.packet_delay",
6876 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
6879 { &hf_etc_pd_has_enum_text_pid
,
6880 { "PID", "rdm.pd.has_enum_text.pid",
6881 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6884 { &hf_etc_pd_has_enum_text_true_false
,
6885 { "Value", "rdm.pd.has_enum_text.value",
6886 FT_UINT8
, BASE_DEC
, VALS(true_false_vals
), 0x0,
6889 { &hf_etc_pd_get_enum_text_pid
,
6890 { "PID", "rdm.pd.get_enum_text.pid",
6891 FT_UINT16
, BASE_DEC
, NULL
, 0x0,
6894 { &hf_etc_pd_get_enum_text_enum
,
6895 { "Enum", "rdm.pd.get_enum_text.enum",
6896 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
6899 { &hf_etc_pd_get_enum_text_description
,
6900 { "Description", "rdm.pd.get_enum_text.description",
6901 FT_STRING
, BASE_NONE
, NULL
, 0x0,
6906 static int *ett
[] = {
6908 &ett_etc_sequence_config_steps
,
6909 &ett_etc_sequence_config_times
6912 static ei_register_info ei
[] = {
6913 { &ei_rdm_checksum
, { "rdm.bad_checksum", PI_CHECKSUM
, PI_ERROR
, "Bad checksum", EXPFILL
}},
6916 expert_module_t
* expert_rdm
;
6918 proto_rdm
= proto_register_protocol("Remote Device Management", "RDM", "rdm");
6919 proto_register_field_array(proto_rdm
, hf
, array_length(hf
));
6920 proto_register_subtree_array(ett
, array_length(ett
));
6921 rdm_handle
= register_dissector("rdm", dissect_rdm
, proto_rdm
);
6922 expert_rdm
= expert_register_protocol(proto_rdm
);
6923 expert_register_field_array(expert_rdm
, ei
, array_length(ei
));
6927 proto_reg_handoff_rdm(void) {
6928 dissector_add_uint("dmx", 0xCC, rdm_handle
);
6932 * Editor modelines - https://www.wireshark.org/tools/modelines.html
6937 * indent-tabs-mode: t
6940 * vi: set shiftwidth=8 tabstop=8 noexpandtab:
6941 * :indentSize=8:tabSize=8:noTabs=false: