/src/wireshark/epan/dissectors/packet-artnet.c
Line | Count | Source |
1 | | /* packet-artnet.c |
2 | | * Routines for Art-Net packet disassembly |
3 | | * |
4 | | * Copyright (c) 2003, 2011 by Erwin Rol <erwin@erwinrol.com> |
5 | | * Copyright (c) 2014 by Claudius Zingerli <czingerl@gmail.com> |
6 | | * Copyright (c) 2022-2024 by Martin Mayer <martin.mayer@m2-it-solutions.de> |
7 | | * |
8 | | * Wireshark - Network traffic analyzer |
9 | | * By Gerald Combs <gerald@wireshark.org> |
10 | | * Copyright 1999 Gerald Combs |
11 | | * |
12 | | * SPDX-License-Identifier: GPL-2.0-or-later |
13 | | */ |
14 | | |
15 | | #include "config.h" |
16 | | #include <stdlib.h> |
17 | | #include <epan/packet.h> |
18 | | #include <epan/expert.h> |
19 | | #include <epan/tfs.h> |
20 | | #include <epan/unit_strings.h> |
21 | | #include "packet-rdm.h" |
22 | | #include "data-dmx-manfid.h" |
23 | | |
24 | | /* |
25 | | * See |
26 | | * |
27 | | * Protocol Spec: http://www.artisticlicence.com/WebSiteMaster/User%20Guides/art-net.pdf |
28 | | * OEM Codes: https://artisticlicence.com/WebSiteMaster/Software/Art-Net/Art-NetOemCodes.h |
29 | | * or rather https://art-net.org.uk/join-the-club/oem-code-listing/ |
30 | | * but you first have to select 'All' before downloading the CSV to process... |
31 | | * ESTA Codes: https://tsp.esta.org/tsp/working_groups/CP/mfctrIDs.php |
32 | | */ |
33 | | |
34 | | void proto_register_artnet(void); |
35 | | void proto_reg_handoff_artnet(void); |
36 | | |
37 | | static dissector_handle_t artnet_handle; |
38 | | |
39 | | /* Define udp_port for ArtNET */ |
40 | | |
41 | | #define UDP_PORT_ARTNET 0x1936 |
42 | | |
43 | 14 | #define ARTNET_HEADER_LENGTH 10 |
44 | | #define ARTNET_POLL_LENGTH 4 |
45 | | #define ARTNET_POLL_REPLY_LENGTH 197 |
46 | 3 | #define ARTNET_POLL_REPLY_PORT_INFO_LENGTH 22 |
47 | 3 | #define ARTNET_POLL_REPLY_PORT_TYPES_LENGTH 4 |
48 | 3 | #define ARTNET_POLL_REPLY_GOOD_INPUT_LENGTH 4 |
49 | 3 | #define ARTNET_POLL_REPLY_GOOD_OUTPUT_LENGTH 4 |
50 | 3 | #define ARTNET_POLL_REPLY_GOOD_OUTPUT_B_LENGTH 4 |
51 | 3 | #define ARTNET_POLL_REPLY_SWIN_LENGTH 4 |
52 | 3 | #define ARTNET_POLL_REPLY_SWOUT_LENGTH 4 |
53 | | #define ARTNET_ADDRESS_LENGTH 95 |
54 | 0 | #define ARTNET_ADDRESS_SWIN_LENGTH 4 |
55 | 0 | #define ARTNET_ADDRESS_SWOUT_LENGTH 4 |
56 | | #define ARTNET_OUTPUT_LENGTH 1 |
57 | | #define ARTNET_INPUT_LENGTH 10 |
58 | 0 | #define ARTNET_INPUT_INPUT_LENGTH 4 |
59 | | #define ARTNET_FIRMWARE_MASTER_LENGTH 1035 |
60 | | #define ARTNET_FIRMWARE_REPLY_LENGTH 27 |
61 | | #define ARTNET_VIDEO_SETUP_LENGTH 74 |
62 | | #define ARTNET_VIDEO_PALETTE_LENGTH 55 |
63 | | #define ARTNET_VIDEO_DATA_LENGTH 8 |
64 | | |
65 | 0 | #define ARTNET_OP_POLL 0x2000 |
66 | 21 | #define ARTNET_OP_POLL_REPLY 0x2100 |
67 | 5 | #define ARTNET_OP_POLL_FP_REPLY 0x2200 |
68 | 0 | #define ARTNET_OP_DIAG_DATA 0x2300 |
69 | 0 | #define ARTNET_OP_COMMAND 0x2400 |
70 | | |
71 | 0 | #define ARTNET_OP_DATA_REQUEST 0x2700 |
72 | 0 | #define ARTNET_OP_DATA_REPLY 0x2800 |
73 | | |
74 | 0 | #define ARTNET_OP_OUTPUT 0x5000 |
75 | 2 | #define ARTNET_OP_NZS 0x5100 |
76 | 0 | #define ARTNET_OP_SYNC 0x5200 |
77 | | |
78 | 0 | #define ARTNET_OP_ADDRESS 0x6000 |
79 | | |
80 | 0 | #define ARTNET_OP_INPUT 0x7000 |
81 | | |
82 | 0 | #define ARTNET_OP_TOD_REQUEST 0x8000 |
83 | 0 | #define ARTNET_OP_TOD_DATA 0x8100 |
84 | 1 | #define ARTNET_OP_TOD_CONTROL 0x8200 |
85 | 0 | #define ARTNET_OP_RDM 0x8300 |
86 | 0 | #define ARTNET_OP_RDM_SUB 0x8400 |
87 | | |
88 | 0 | #define ARTNET_OP_MEDIA 0x9000 |
89 | 0 | #define ARTNET_OP_MEDIA_PATCH 0x9100 |
90 | 0 | #define ARTNET_OP_MEDIA_CONTROL 0x9200 |
91 | 0 | #define ARTNET_OP_MEDIA_CONTRL_REPLY 0x9300 |
92 | | |
93 | 0 | #define ARTNET_OP_TIME_CODE 0x9700 |
94 | 0 | #define ARTNET_OP_TIME_SYNC 0x9800 |
95 | 0 | #define ARTNET_OP_TRIGGER 0x9900 |
96 | | |
97 | 0 | #define ARTNET_OP_DIRECTORY 0x9a00 |
98 | 0 | #define ARTNET_OP_DIRECTORY_REPLY 0x9b00 |
99 | | |
100 | 0 | #define ARTNET_OP_VIDEO_SETUP 0xa010 |
101 | 0 | #define ARTNET_OP_VIDEO_PALETTE 0xa020 |
102 | 0 | #define ARTNET_OP_VIDEO_DATA 0xa040 |
103 | | |
104 | 0 | #define ARTNET_OP_MAC_MASTER 0xf000 |
105 | 0 | #define ARTNET_OP_MAC_SLAVE 0xf100 |
106 | 0 | #define ARTNET_OP_FIRMWARE_MASTER 0xf200 |
107 | 0 | #define ARTNET_OP_FIRMWARE_REPLY 0xf300 |
108 | 0 | #define ARTNET_OP_FILE_TN_MASTER 0xf400 |
109 | 0 | #define ARTNET_OP_FILE_FN_MASTER 0xf500 |
110 | 0 | #define ARTNET_OP_FILE_FN_REPLY 0xf600 |
111 | | |
112 | 0 | #define ARTNET_OP_IP_PROG 0xf800 |
113 | 0 | #define ARTNET_OP_IP_PROG_REPLY 0xf900 |
114 | | |
115 | | static const value_string artnet_opcode_vals[] = { |
116 | | { ARTNET_OP_POLL, "ArtPoll" }, |
117 | | { ARTNET_OP_POLL_REPLY, "ArtPollReply" }, |
118 | | { ARTNET_OP_POLL_FP_REPLY, "ArtPollFpReply" }, |
119 | | { ARTNET_OP_DIAG_DATA, "ArtDiagData" }, |
120 | | { ARTNET_OP_COMMAND, "ArtCommand" }, |
121 | | { ARTNET_OP_DATA_REQUEST, "ArtDataRequest" }, |
122 | | { ARTNET_OP_DATA_REPLY, "ArtDataReply" }, |
123 | | { ARTNET_OP_OUTPUT, "ArtDMX" }, |
124 | | { ARTNET_OP_NZS, "ArtNzs" }, |
125 | | { ARTNET_OP_SYNC, "ArtSync" }, |
126 | | { ARTNET_OP_ADDRESS, "ArtAddress" }, |
127 | | { ARTNET_OP_INPUT, "ArtInput" }, |
128 | | { ARTNET_OP_TOD_REQUEST, "ArtTodRequest" }, |
129 | | { ARTNET_OP_TOD_DATA, "ArtTodData" }, |
130 | | { ARTNET_OP_TOD_CONTROL, "ArtTodControl" }, |
131 | | { ARTNET_OP_RDM, "ArtRdm" }, |
132 | | { ARTNET_OP_RDM_SUB, "ArtRdmSub" }, |
133 | | { ARTNET_OP_MEDIA, "ArtMedia" }, |
134 | | { ARTNET_OP_MEDIA_PATCH, "ArtMediaPatch" }, |
135 | | { ARTNET_OP_MEDIA_CONTROL, "ArtMediaControl" }, |
136 | | { ARTNET_OP_MEDIA_CONTRL_REPLY, "ArtMediaContrlReply" }, |
137 | | { ARTNET_OP_TIME_CODE, "ArtTimeCode" }, |
138 | | { ARTNET_OP_TIME_SYNC, "ArtTimeSync" }, |
139 | | { ARTNET_OP_TRIGGER, "ArtTrigger" }, |
140 | | { ARTNET_OP_DIRECTORY, "ArtDirectory" }, |
141 | | { ARTNET_OP_DIRECTORY_REPLY, "ArtDirectoryReply" }, |
142 | | { ARTNET_OP_VIDEO_SETUP, "ArtVideoSetup" }, |
143 | | { ARTNET_OP_VIDEO_PALETTE, "ArtVideoPalette" }, |
144 | | { ARTNET_OP_VIDEO_DATA, "ArtVideoData" }, |
145 | | { ARTNET_OP_MAC_MASTER, "ArtMacMaster" }, |
146 | | { ARTNET_OP_MAC_SLAVE, "ArtMacSlave" }, |
147 | | { ARTNET_OP_FIRMWARE_MASTER, "ArtFirmwareMaster" }, |
148 | | { ARTNET_OP_FIRMWARE_REPLY, "ArtFirmwareReply" }, |
149 | | { ARTNET_OP_FILE_TN_MASTER, "ArtfileTnMaster" }, |
150 | | { ARTNET_OP_FILE_FN_MASTER, "ArtfileFnMaster" }, |
151 | | { ARTNET_OP_FILE_FN_REPLY, "ArtfileFnReply" }, |
152 | | { ARTNET_OP_IP_PROG, "ArtIpProg" }, |
153 | | { ARTNET_OP_IP_PROG_REPLY, "ArtIpProgReply" }, |
154 | | { 0, NULL } |
155 | | }; |
156 | | static value_string_ext artnet_opcode_vals_ext = VALUE_STRING_EXT_INIT(artnet_opcode_vals); |
157 | | |
158 | | /* |
159 | | * OEM code database date: 2025-08-04 |
160 | | * |
161 | | * String format: |
162 | | * <MANUFACTURER>: <PRODUCT> |
163 | | */ |
164 | | static const value_string artnet_oem_code_vals[] = { |
165 | | { 0x0000, "Artistic Licence Engineering Ltd: Dmx Hub" }, |
166 | | { 0x0001, "ADB: Netgate" }, |
167 | | { 0x0002, "Artistic Licence Engineering Ltd: MAHub" }, |
168 | | { 0x0003, "Artistic Licence Engineering Ltd: Ether Lynx I" }, |
169 | | { 0x0004, "Lew Light: Lew Light" }, |
170 | | { 0x0005, "High End Systems: High End Systems" }, |
171 | | { 0x0006, "Avolites: Dimmer" }, |
172 | | { 0x0007, "Artistic Licence Engineering Ltd: Art Net II Processor" }, |
173 | | { 0x0010, "Artistic Licence Engineering Ltd: Down Link" }, |
174 | | { 0x0011, "Artistic Licence Engineering Ltd: Up Link" }, |
175 | | { 0x0012, "Artistic Licence Engineering Ltd: Truss Link OP" }, |
176 | | { 0x0013, "Artistic Licence Engineering Ltd: Truss Link IP" }, |
177 | | { 0x0014, "Artistic Licence Engineering Ltd: Net Link OP" }, |
178 | | { 0x0015, "Artistic Licence Engineering Ltd: Net Link IP" }, |
179 | | { 0x0016, "Artistic Licence Engineering Ltd: Radio Link OP" }, |
180 | | { 0x0017, "Artistic Licence Engineering Ltd: Radio Link IP" }, |
181 | | { 0x0030, "Doug Fleenor Design Inc: DFD DL" }, |
182 | | { 0x0031, "Doug Fleenor Design Inc: DFD UL" }, |
183 | | { 0x0050, "Goddard Design Company: GDC DL" }, |
184 | | { 0x0051, "Goddard Design Company: GDC UL" }, |
185 | | { 0x0070, "ADB: ADB Down Link" }, |
186 | | { 0x0071, "ADB: ADB Up Link" }, |
187 | | { 0x0072, "ADB: ADB WiFi" }, |
188 | | { 0x0080, "Artistic Licence Engineering Ltd: AL 0 Down" }, |
189 | | { 0x0081, "Artistic Licence Engineering Ltd: AL 0 Up" }, |
190 | | { 0x0082, "Artistic Licence Engineering Ltd: AL 1 Down" }, |
191 | | { 0x0083, "Artistic Licence Engineering Ltd: AL 1 Up" }, |
192 | | { 0x0084, "Artistic Licence Engineering Ltd: AL 2 Down" }, |
193 | | { 0x0085, "Artistic Licence Engineering Ltd: AL 2 Up" }, |
194 | | { 0x0086, "Artistic Licence Engineering Ltd: AL 3 Down" }, |
195 | | { 0x0087, "Artistic Licence Engineering Ltd: AL 3 Up" }, |
196 | | { 0x0088, "Artistic Licence Engineering Ltd: AL 4 Down" }, |
197 | | { 0x0089, "Artistic Licence Engineering Ltd: AL 4 Up" }, |
198 | | { 0x008A, "Artistic Licence Engineering Ltd: AL 5 Down" }, |
199 | | { 0x008B, "Artistic Licence Engineering Ltd: AL 5 Up" }, |
200 | | { 0x008C, "Zero 88: Zero Out2" }, |
201 | | { 0x008D, "Zero 88: Zero In2" }, |
202 | | { 0x008E, "Flying Pig Systems: FP Out2" }, |
203 | | { 0x008F, "Flying Pig Systems: FP In2" }, |
204 | | { 0x0090, "ELC: Two Port Node" }, |
205 | | { 0x0091, "ELC: Four Port Node" }, |
206 | | { 0x00FF, "Artistic Licence Engineering Ltd: OemUnknown" }, |
207 | | { 0x0100, "Artistic Licence Engineering Ltd: Ether Lynx Exp 0" }, |
208 | | { 0x0101, "Artistic Licence Engineering Ltd: Ether Lynx Exp 1" }, |
209 | | { 0x0102, "Artistic Licence Engineering Ltd: Ether Lynx Exp 2" }, |
210 | | { 0x0103, "Artistic Licence Engineering Ltd: Ether Lynx Exp 3" }, |
211 | | { 0x0104, "Artistic Licence Engineering Ltd: Ether Lynx Exp 4" }, |
212 | | { 0x0105, "Artistic Licence Engineering Ltd: Ether Lynx Exp 5" }, |
213 | | { 0x0106, "Artistic Licence Engineering Ltd: Ether Lynx Exp 6" }, |
214 | | { 0x0107, "Artistic Licence Engineering Ltd: Ether Lynx Exp 7" }, |
215 | | { 0x0108, "Artistic Licence Engineering Ltd: Ether Lynx Exp 8" }, |
216 | | { 0x0109, "Artistic Licence Engineering Ltd: Ether Lynx Exp 9" }, |
217 | | { 0x010A, "Artistic Licence Engineering Ltd: Ether Lynx Exp a" }, |
218 | | { 0x010B, "Artistic Licence Engineering Ltd: Ether Lynx Exp b" }, |
219 | | { 0x010C, "Artistic Licence Engineering Ltd: Ether Lynx Exp c" }, |
220 | | { 0x010D, "Artistic Licence Engineering Ltd: Ether Lynx Exp d" }, |
221 | | { 0x010E, "Artistic Licence Engineering Ltd: Ether Lynx Exp e" }, |
222 | | { 0x010F, "Artistic Licence Engineering Ltd: Ether Lynx Exp f" }, |
223 | | { 0x0110, "Artistic Licence Engineering Ltd: Cata Lynx" }, |
224 | | { 0x0111, "Artistic Licence Engineering Ltd: Cata Lynx Exp 1" }, |
225 | | { 0x0112, "Artistic Licence Engineering Ltd: Cata Lynx Exp 2" }, |
226 | | { 0x0113, "Artistic Licence Engineering Ltd: Cata Lynx Exp 3" }, |
227 | | { 0x0114, "Artistic Licence Engineering Ltd: Cata Lynx Exp 4" }, |
228 | | { 0x0115, "Artistic Licence Engineering Ltd: Cata Lynx Exp 5" }, |
229 | | { 0x0116, "Artistic Licence Engineering Ltd: Cata Lynx Exp 6" }, |
230 | | { 0x0117, "Artistic Licence Engineering Ltd: Cata Lynx Exp 7" }, |
231 | | { 0x0118, "Artistic Licence Engineering Ltd: Cata Lynx Exp 8" }, |
232 | | { 0x0119, "Artistic Licence Engineering Ltd: Cata Lynx Exp 9" }, |
233 | | { 0x011A, "Artistic Licence Engineering Ltd: Cata Lynx Exp a" }, |
234 | | { 0x011B, "Artistic Licence Engineering Ltd: Cata Lynx Exp b" }, |
235 | | { 0x011C, "Artistic Licence Engineering Ltd: Cata Lynx Exp c" }, |
236 | | { 0x011D, "Artistic Licence Engineering Ltd: Cata Lynx Exp d" }, |
237 | | { 0x011E, "Artistic Licence Engineering Ltd: Cata Lynx Exp e" }, |
238 | | { 0x011F, "Artistic Licence Engineering Ltd: Cata Lynx Exp f" }, |
239 | | { 0x0120, "Artistic Licence Engineering Ltd: Pixi Power F1a" }, |
240 | | { 0x0180, "Martin: Maxxyz Node" }, |
241 | | { 0x0181, "Martin: P3 System Controller" }, |
242 | | { 0x0190, "Enttec: Enttec 0" }, |
243 | | { 0x0191, "Enttec: Enttec 1" }, |
244 | | { 0x0192, "Enttec: Enttec 2" }, |
245 | | { 0x0193, "Enttec: Enttec 3" }, |
246 | | { 0x0194, "Enttec: Enttec 4" }, |
247 | | { 0x0195, "Enttec: Enttec 5" }, |
248 | | { 0x0196, "Enttec: Enttec 6" }, |
249 | | { 0x0197, "Enttec: Enttec 7" }, |
250 | | { 0x0198, "Enttec: Enttec 8" }, |
251 | | { 0x0199, "Enttec: Enttec 9" }, |
252 | | { 0x019A, "Enttec: Enttec a" }, |
253 | | { 0x019B, "Enttec: Enttec b" }, |
254 | | { 0x019C, "Enttec: Enttec c" }, |
255 | | { 0x019D, "Enttec: Enttec d" }, |
256 | | { 0x019E, "Enttec: Enttec e" }, |
257 | | { 0x019F, "Enttec: Enttec f" }, |
258 | | { 0x01A0, "LES: PBX" }, |
259 | | { 0x01A1, "LES: Executive" }, |
260 | | { 0x01A2, "LES: Matrix" }, |
261 | | { 0x01A3, "LES: LES 3" }, |
262 | | { 0x01A4, "LES: LES 4" }, |
263 | | { 0x01A5, "LES: LES 5" }, |
264 | | { 0x01A6, "LES: LES 6" }, |
265 | | { 0x01A7, "LES: LES 7" }, |
266 | | { 0x01A8, "LES: LES 8" }, |
267 | | { 0x01A9, "LES: LES 9" }, |
268 | | { 0x01AA, "LES: LES a" }, |
269 | | { 0x01AB, "LES: LES b" }, |
270 | | { 0x01AC, "LES: LES c" }, |
271 | | { 0x01AD, "LES: LES d" }, |
272 | | { 0x01AE, "LES: LES e" }, |
273 | | { 0x01AF, "LES: LES f" }, |
274 | | { 0x01B0, "EDI: Edig" }, |
275 | | { 0x01C0, "Nondim Enterprises: Openlux" }, |
276 | | { 0x01D0, "Green Hippo: Hippotizer" }, |
277 | | { 0x01E0, "VNR: Merger Booster" }, |
278 | | { 0x01F0, "Robe: ILE" }, |
279 | | { 0x01F1, "Robe: Robe 4 4" }, |
280 | | { 0x0210, "Artistic Licence Engineering Ltd: Down Lynx 2" }, |
281 | | { 0x0211, "Artistic Licence Engineering Ltd: Up Lynx 2" }, |
282 | | { 0x0212, "Artistic Licence Engineering Ltd: Truss Lynx 2" }, |
283 | | { 0x0213, "Artistic Licence Engineering Ltd: Truss Lynx 2" }, |
284 | | { 0x0214, "Artistic Licence Engineering Ltd: Net Lynx OP 2" }, |
285 | | { 0x0215, "Artistic Licence Engineering Ltd: Net Lynx IP 2" }, |
286 | | { 0x0216, "Artistic Licence Engineering Ltd: Radio Lynx OP 2" }, |
287 | | { 0x0217, "Artistic Licence Engineering Ltd: Radio Lynx IP 2" }, |
288 | | { 0x0230, "Doug Fleenor Design Inc: DFD Dlynx 2" }, |
289 | | { 0x0231, "Doug Fleenor Design Inc: DFD Ulynx 2" }, |
290 | | { 0x0250, "Goddard Design Company: GDC Dlynx 2" }, |
291 | | { 0x0251, "Goddard Design Company: GDC Ulynx 2" }, |
292 | | { 0x0270, "ADB: ADB Down Lynx 2" }, |
293 | | { 0x0271, "ADB: ADB Up Lynx 2" }, |
294 | | { 0x0280, "LSC: LSC Down Lynx 2" }, |
295 | | { 0x0281, "LSC: LSC Up Lynx 2" }, |
296 | | { 0x0282, "Artistic Licence Engineering Ltd: AL OEM D1" }, |
297 | | { 0x0283, "Artistic Licence Engineering Ltd: AL OEM U1" }, |
298 | | { 0x0284, "Artistic Licence Engineering Ltd: AL OEM D2" }, |
299 | | { 0x0285, "Artistic Licence Engineering Ltd: AL OEM U2" }, |
300 | | { 0x0286, "Artistic Licence Engineering Ltd: AL OEM D3" }, |
301 | | { 0x0287, "Artistic Licence Engineering Ltd: AL OEM U3" }, |
302 | | { 0x0288, "Artistic Licence Engineering Ltd: AL OEM D4" }, |
303 | | { 0x0289, "Artistic Licence Engineering Ltd: AL OEM U4" }, |
304 | | { 0x028A, "Artistic Licence Engineering Ltd: AL OEM D5" }, |
305 | | { 0x028B, "Artistic Licence Engineering Ltd: AL OEM U5" }, |
306 | | { 0x0300, "Gold Stage: DMX net O" }, |
307 | | { 0x0301, "Gold Stage: DMX net I" }, |
308 | | { 0x0302, "Gold Stage: OemGold2" }, |
309 | | { 0x0303, "Gold Stage: OemGold3" }, |
310 | | { 0x0304, "Gold Stage: GT 96" }, |
311 | | { 0x0305, "Gold Stage: Goldstage III Light Console" }, |
312 | | { 0x0306, "Gold Stage: OemGold6" }, |
313 | | { 0x0307, "Gold Stage: OemGold7" }, |
314 | | { 0x0308, "Gold Stage: KTG 55 Dimmer" }, |
315 | | { 0x0309, "Gold Stage: OemGold9" }, |
316 | | { 0x030A, "Gold Stage: OemGolda" }, |
317 | | { 0x030B, "Gold Stage: OemGoldb" }, |
318 | | { 0x030C, "Gold Stage: OemGoldc" }, |
319 | | { 0x030D, "Gold Stage: OemGoldd" }, |
320 | | { 0x030E, "Gold Stage: OemGolde" }, |
321 | | { 0x030F, "Gold Stage: OemGoldf" }, |
322 | | { 0x0310, "Sunset Dynamics: StarGateDMX" }, |
323 | | { 0x0320, "Luminex LCE: Ethernet DMX8" }, |
324 | | { 0x0321, "Luminex LCE: Ethernet DMX2" }, |
325 | | { 0x0322, "Luminex LCE: Ethernet DMX4" }, |
326 | | { 0x0323, "Luminex LCE: LumiNet Monitor" }, |
327 | | { 0x0330, "Invisible Rival: Blue Hysteria" }, |
328 | | { 0x0340, "Avolites: Diamond 4 Vision" }, |
329 | | { 0x0341, "Avolites: Diamond 4 elite" }, |
330 | | { 0x0342, "Avolites: Peal offline" }, |
331 | | { 0x0343, "Avolites: Titan" }, |
332 | | { 0x0350, "Bigfoot: EtherMux Remote" }, |
333 | | { 0x0351, "Bigfoot: EtherMux Server" }, |
334 | | { 0x0352, "Bigfoot: EtherMux Desktop" }, |
335 | | { 0x0360, "Ecue: Ecue 512" }, |
336 | | { 0x0361, "Ecue: Ecue 1024" }, |
337 | | { 0x0362, "Ecue: Ecue 2048" }, |
338 | | { 0x0370, "Kiss Box: DMX Box" }, |
339 | | { 0x0380, "Arkaos: V J DMX" }, |
340 | | { 0x0390, "Digital Enlightenment: ShowGate" }, |
341 | | { 0x03A0, "DES: NELI" }, |
342 | | { 0x03B0, "Nicolaudie: Easy" }, |
343 | | { 0x03B1, "Nicolaudie: Magic 3D" }, |
344 | | { 0x03C0, "Catalyst: Catalyst" }, |
345 | | { 0x03D0, "Bleasdale: PixelMad" }, |
346 | | { 0x03E0, "Lehigh Electric Products Co: DX2 Dimming Rack" }, |
347 | | { 0x03F0, "Horizon: Horizon Controller" }, |
348 | | { 0x0400, "Audio Scene: OemAudioSceneO" }, |
349 | | { 0x0401, "Audio Scene: OemAudioSceneI" }, |
350 | | { 0x0410, "Pathport: 2 out" }, |
351 | | { 0x0411, "Pathport: 2 in" }, |
352 | | { 0x0412, "Pathport: 1 out" }, |
353 | | { 0x0413, "Pathport: 1 in" }, |
354 | | { 0x0420, "Botex: OemBotex1" }, |
355 | | { 0x0430, "Simon Newton: LibArtNet" }, |
356 | | { 0x0431, "Simon Newton: LLA Live" }, |
357 | | { 0x0440, "XLNT: OemTeamXlntIp" }, |
358 | | { 0x0441, "XLNT: OemTeamXlntOp" }, |
359 | | { 0x0450, "Schnick Schnack Systems: Systemnetzteil 4E" }, |
360 | | { 0x0451, "Schnick Schnack Systems: SysOne" }, |
361 | | { 0x0452, "Schnick Schnack Systems: Pix Gate" }, |
362 | | { 0x0460, "Dom Dv: NetDmx" }, |
363 | | { 0x0470, "Sean Christopher: Projection Pal" }, |
364 | | { 0x0471, "Sean Christopher: The Lighting Remote" }, |
365 | | { 0x0472, "LSS Lighting: MasterGate Profibus interface" }, |
366 | | { 0x0473, "LSS Lighting: Rail Controller Profibus" }, |
367 | | { 0x0474, "LSS Lighting: Master Port Mini" }, |
368 | | { 0x0475, "LSS Lighting: Powerdim" }, |
369 | | { 0x0490, "Open Clear: OemOpenClear0" }, |
370 | | { 0x0491, "Open Clear: OemOpenClear1" }, |
371 | | { 0x0492, "Open Clear: OemOpenClear2" }, |
372 | | { 0x0493, "Open Clear: OemOpenClear3" }, |
373 | | { 0x0494, "Open Clear: OemOpenClear4" }, |
374 | | { 0x0495, "Open Clear: OemOpenClear5" }, |
375 | | { 0x0496, "Open Clear: OemOpenClear6" }, |
376 | | { 0x0497, "Open Clear: OemOpenClear7" }, |
377 | | { 0x0498, "Open Clear: OemOpenClear8" }, |
378 | | { 0x0499, "Open Clear: OemOpenClear9" }, |
379 | | { 0x049A, "Open Clear: OemOpenCleara" }, |
380 | | { 0x049B, "Open Clear: OemOpenClearb" }, |
381 | | { 0x049C, "Open Clear: OemOpenClearc" }, |
382 | | { 0x049D, "Open Clear: OemOpenCleard" }, |
383 | | { 0x049E, "Open Clear: OemOpenCleare" }, |
384 | | { 0x049F, "Open Clear: OemOpenClearf" }, |
385 | | { 0x04B0, "MA Lighting: 2 Port Node" }, |
386 | | { 0x04B1, "MA Lighting: Nsp" }, |
387 | | { 0x04B2, "MA Lighting: Ndp" }, |
388 | | { 0x04B3, "MA Lighting: Remote" }, |
389 | | { 0x04B4, "MA Lighting: GrandMA2 Consoles and OnPC" }, |
390 | | { 0x04B5, "MA Lighting: VPU" }, |
391 | | { 0x04B6, "MA Lighting: MA 2 4 8 Port Node programmable io" }, |
392 | | { 0x04B7, "MA Lighting: Dot2 console and Dot2OnPC" }, |
393 | | { 0x04B8, "MA Lighting: Dot2 VPU" }, |
394 | | { 0x04B9, "MA Lighting: Dot2 X Port nodes" }, |
395 | | { 0x04BA, "MA Lighting: OemMaa" }, |
396 | | { 0x04BB, "MA Lighting: OemMab" }, |
397 | | { 0x04BC, "MA Lighting: OemMac" }, |
398 | | { 0x04BD, "MA Lighting: OemMad" }, |
399 | | { 0x04BE, "MA Lighting: OemMae" }, |
400 | | { 0x04BF, "MA Lighting: OemMaf" }, |
401 | | { 0x04C0, "inoage GmbH: MADRIX 2" }, |
402 | | { 0x04C1, "GLP: Ion control pc" }, |
403 | | { 0x04C2, "inoage GmbH: Snuffler" }, |
404 | | { 0x04C3, "inoage GmbH: PLEXUS" }, |
405 | | { 0x04C4, "inoage GmbH: MADRIX 3" }, |
406 | | { 0x04C5, "inoage GmbH: LUNA 8" }, |
407 | | { 0x04C6, "inoage GmbH: OemMadrix6" }, |
408 | | { 0x04C7, "inoage GmbH: LUNA 4" }, |
409 | | { 0x04C8, "inoage GmbH: LUNA 16" }, |
410 | | { 0x04C9, "inoage GmbH: NEBULA" }, |
411 | | { 0x04CA, "inoage GmbH: STELLA" }, |
412 | | { 0x04CB, "inoage GmbH: ORION" }, |
413 | | { 0x04CC, "inoage GmbH: MADRIX 5" }, |
414 | | { 0x04CD, "inoage GmbH: OemMadrixd" }, |
415 | | { 0x04CE, "inoage GmbH: AURA" }, |
416 | | { 0x04CF, "inoage GmbH: OemMadrixf" }, |
417 | | { 0x04D0, "Team Projects: Xilver Controller" }, |
418 | | { 0x04E0, "Wybron: PSU 2" }, |
419 | | { 0x04F0, "Pharos Architectural Controls: LPCX" }, |
420 | | { 0x04F1, "Pharos Architectural Controls: OemPharosLpc1" }, |
421 | | { 0x04F2, "Pharos Architectural Controls: OemPharosLpc2" }, |
422 | | { 0x04F3, "Pharos Architectural Controls: OemPharos3" }, |
423 | | { 0x04F4, "Pharos Architectural Controls: OemPharos4" }, |
424 | | { 0x04F5, "Pharos Architectural Controls: OemPharos5" }, |
425 | | { 0x04F6, "Pharos Architectural Controls: OemPharos6" }, |
426 | | { 0x04F7, "Pharos Architectural Controls: OemPharos7" }, |
427 | | { 0x04F8, "Pharos Architectural Controls: OemPharos8" }, |
428 | | { 0x04F9, "Pharos Architectural Controls: OemPharos9" }, |
429 | | { 0x04FA, "Pharos Architectural Controls: OemPharosa" }, |
430 | | { 0x04FB, "Pharos Architectural Controls: OemPharosb" }, |
431 | | { 0x04FC, "Pharos Architectural Controls: OemPharosc" }, |
432 | | { 0x04FD, "Pharos Architectural Controls: OemPharosd" }, |
433 | | { 0x04FE, "Pharos Architectural Controls: OemPharose" }, |
434 | | { 0x04FF, "Pharos Architectural Controls: OemPharosf" }, |
435 | | { 0x0500, "HES: DP8000 16" }, |
436 | | { 0x0501, "HES: DP8000 12" }, |
437 | | { 0x0502, "HES: DP2000" }, |
438 | | { 0x0600, "Spectrum Manufacturing: Chroma Q PSU32" }, |
439 | | { 0x0610, "DmxDesign: EthDec2" }, |
440 | | { 0x0620, "WodieLite: ArtMedia" }, |
441 | | { 0x0800, "Element Labs: Vizomo" }, |
442 | | { 0x0810, "Dataton: Watchout" }, |
443 | | { 0x0820, "Barco: Barco DML 120" }, |
444 | | { 0x0821, "Barco: FLM" }, |
445 | | { 0x0822, "Barco: CLM" }, |
446 | | { 0x0830, "City Theatrical: SHoW DMX Transmitter" }, |
447 | | { 0x0831, "City Theatrical: SHoW DMX Neo Transceiver" }, |
448 | | { 0x0840, "Quantukm Logic: DMX Ethernet Node" }, |
449 | | { 0x0850, "LSS Lighting: MasterSwitch" }, |
450 | | { 0x0851, "LSS Lighting: MasterPort4" }, |
451 | | { 0x0852, "LSS Lighting: MasterPortPSU" }, |
452 | | { 0x0853, "LSS Lighting: DMX View" }, |
453 | | { 0x0860, "Future Design ApS: FD Trio" }, |
454 | | { 0x0870, "Qmaxz Lighting: QME700P" }, |
455 | | { 0x0871, "Lux Lumen: Lux Node" }, |
456 | | { 0x0880, "Martin: Ether2DMX8 Node" }, |
457 | | { 0x0890, "PHOENIXstudios Remsfeld: DIMMER ShowGate" }, |
458 | | { 0x0891, "LaserAnimation Sollinger GmbH: Lasergraph DSP" }, |
459 | | { 0x0892, "LaserAnimation Sollinger GmbH: Lasergraph DSP" }, |
460 | | { 0x08A0, "COEMAR: Infinity Spot S" }, |
461 | | { 0x08A1, "COEMAR: Infinity Wash S" }, |
462 | | { 0x08A2, "COEMAR: Infinity ACL S" }, |
463 | | { 0x08A3, "COEMAR: Infinity Spot XL" }, |
464 | | { 0x08A4, "COEMAR: Infinity Wash XL" }, |
465 | | { 0x08A5, "COEMAR: DR1+" }, |
466 | | { 0x08A6, "COEMAR: Infinity Spot M" }, |
467 | | { 0x08A7, "COEMAR: Infinity Wash M" }, |
468 | | { 0x08A8, "COEMAR: Infinity ACL M" }, |
469 | | { 0x08B0, "DMXControl: DMXControl" }, |
470 | | { 0x08B1, "DMXControl: AvrNode" }, |
471 | | { 0x08C0, "ChamSys: MagicQ" }, |
472 | | { 0x08D0, "Fisher Technical Services Inc: Navigator Automation System" }, |
473 | | { 0x08E0, "Electric Spark: VPIX40" }, |
474 | | { 0x08F0, "JSC: Gate Pro 1P" }, |
475 | | { 0x08F1, "JSC: Gate Pro 2P" }, |
476 | | { 0x08F2, "JSC: Gate Pro 4P" }, |
477 | | { 0x0900, "EQUIPSON S A: WORK LM 3R" }, |
478 | | { 0x0901, "EQUIPSON S A: WORK LM 3E" }, |
479 | | { 0x0910, "TecArt Lighting: 1CH Node" }, |
480 | | { 0x0911, "TecArt Lighting: Ethernet Merger" }, |
481 | | { 0x0912, "TecArt Lighting: 2CH Node" }, |
482 | | { 0x0920, "Zero 88: ORB" }, |
483 | | { 0x0921, "Zero 88: ORBxf" }, |
484 | | { 0x0922, "Zero 88: Zero Wire CRMX TX RDM" }, |
485 | | { 0x0923, "Zero 88: Solution" }, |
486 | | { 0x0924, "Zero 88: Solution XL" }, |
487 | | { 0x0925, "Zero 88: EtherN 2 RDM" }, |
488 | | { 0x0926, "Zero 88: EtherN 8 RDM" }, |
489 | | { 0x0927, "Zero 88: G4" }, |
490 | | { 0x0928, "Zero 88: G8" }, |
491 | | { 0x0930, "EQUIPSON S A: WORK LM 4" }, |
492 | | { 0x0940, "Laser Technology Ltd: LasNet" }, |
493 | | { 0x0950, "LSS Lighting: Discovery" }, |
494 | | { 0x0960, "JPK Systems Limited: OemJpk1" }, |
495 | | { 0x0961, "JPK Systems Limited: OemJpk2" }, |
496 | | { 0x0962, "JPK Systems Limited: OemJpk3" }, |
497 | | { 0x0963, "JPK Systems Limited: OemJpk4" }, |
498 | | { 0x0964, "JPK Systems Limited: OemJpk5" }, |
499 | | { 0x0965, "JPK Systems Limited: OemJpk6" }, |
500 | | { 0x0966, "JPK Systems Limited: OemJpk7" }, |
501 | | { 0x0967, "JPK Systems Limited: OemJpk8" }, |
502 | | { 0x0968, "JPK Systems Limited: OemJpk9" }, |
503 | | { 0x0969, "JPK Systems Limited: OemJpk10" }, |
504 | | { 0x096A, "JPK Systems Limited: OemJpk11" }, |
505 | | { 0x096B, "JPK Systems Limited: OemJpk12" }, |
506 | | { 0x096C, "JPK Systems Limited: OemJpk13" }, |
507 | | { 0x096D, "JPK Systems Limited: OemJpk14" }, |
508 | | { 0x096E, "JPK Systems Limited: OemJpk15" }, |
509 | | { 0x096F, "JPK Systems Limited: OemJpk16" }, |
510 | | { 0x0970, "Fresnel Strong: Power 12 3 TR Net" }, |
511 | | { 0x0971, "Fresnel S A Strong: Nocturne Stage Control" }, |
512 | | { 0x0972, "Fresnel S A Strong: Ethernet DMX" }, |
513 | | { 0x0980, "Prism Projection: RevEAL" }, |
514 | | { 0x0990, "Moving Art: M NET" }, |
515 | | { 0x09A0, "HPL LIGHT COMPANY: DIMMER POWER LIGHT" }, |
516 | | { 0x09B0, "Engineering Solutions Inc: Tripix controller" }, |
517 | | { 0x09B1, "Engineering Solutions Inc: E16 RGB Node Driver" }, |
518 | | { 0x09B2, "Engineering Solutions Inc: E8 RGB Node Driver" }, |
519 | | { 0x09B3, "Engineering Solutions Inc: E4 RGB Node Driver" }, |
520 | | { 0x09C0, "SAND Network Systems: SandPort SandBox" }, |
521 | | { 0x09D0, "Oarw: Screen Monkey" }, |
522 | | { 0x09E0, "Mueller Elektronik: NetLase" }, |
523 | | { 0x09F0, "LumenRadio AB: CRMX Nova TX2" }, |
524 | | { 0x09F1, "LumenRadio AB: CRMX Nova TX2 RDM" }, |
525 | | { 0x09F2, "LumenRadio AB: CRMX Nova FX" }, |
526 | | { 0x09F3, "LumenRadio AB: CRMX Nova FX2" }, |
527 | | { 0x09F4, "LumenRadio AB: CRMX Outdoor F1ex" }, |
528 | | { 0x09F5, "LumenRadio AB: SuperNova" }, |
529 | | { 0x0A00, "SRS Light Design: NDP12 Network Dimmer Pack" }, |
530 | | { 0x0A10, "VYV Corporation: Photon" }, |
531 | | { 0x0A20, "CDS: LanBox LCX" }, |
532 | | { 0x0A21, "CDS: LanBox LCE" }, |
533 | | { 0x0A22, "CDS: LanBox LCP" }, |
534 | | { 0x0A30, "Total Light: Mx Single" }, |
535 | | { 0x0A31, "Total Light: Mx Dual" }, |
536 | | { 0x0A40, "Shanghai SeaChip Electronics Co Ltd: SC DMX 2000" }, |
537 | | { 0x0A50, "Synthe FX: Luminair" }, |
538 | | { 0x0A51, "Synthe FX: Pixelnode" }, |
539 | | { 0x0A60, "Goddard Design Company: OemGodAL5001" }, |
540 | | { 0x0A61, "Goddard Design Company: OemGodDataLynxOp" }, |
541 | | { 0x0A62, "Goddard Design Company: OemGodRailLynxOp" }, |
542 | | { 0x0A63, "Goddard Design Company: OemGodDownLynx4" }, |
543 | | { 0x0A64, "Goddard Design Company: OemGodNetLynxOp4" }, |
544 | | { 0x0A65, "Goddard Design Company: OemGodAL5002" }, |
545 | | { 0x0A66, "Goddard Design Company: OemGodDataLynxIp" }, |
546 | | { 0x0A67, "Goddard Design Company: OemGodCataLynxNt" }, |
547 | | { 0x0A68, "Goddard Design Company: OemGodRailLynxIp" }, |
548 | | { 0x0A69, "Goddard Design Company: OemGodUpLynx4" }, |
549 | | { 0x0A6A, "Goddard Design Company: OemGodNetLynxIp4" }, |
550 | | { 0x0A6B, "Goddard Design Company: OemGodArtBoot" }, |
551 | | { 0x0A6C, "Goddard Design Company: OemGodArtLynxOp" }, |
552 | | { 0x0A6D, "Goddard Design Company: OemGodArtLynxIp" }, |
553 | | { 0x0A6E, "Goddard Design Company: OemGodEtherLynxII" }, |
554 | | { 0x0A80, "CLAYPAKY: Alpha Spot HPE 700" }, |
555 | | { 0x0A81, "CLAYPAKY: Alpha Beam 700" }, |
556 | | { 0x0A82, "CLAYPAKY: Alpha Wash 700" }, |
557 | | { 0x0A83, "CLAYPAKY: Alpha Profile 700" }, |
558 | | { 0x0A84, "CLAYPAKY: Alpha Beam 1500" }, |
559 | | { 0x0A85, "CLAYPAKY: Alpha Wash LT1500" }, |
560 | | { 0x0A86, "CLAYPAKY: Alpha Spot HPE 1500" }, |
561 | | { 0x0A87, "CLAYPAKY: Alpha Profile 1500" }, |
562 | | { 0x0A88, "CLAYPAKY: Alpha Wash 1500" }, |
563 | | { 0x0A89, "CLAYPAKY: Sharpy" }, |
564 | | { 0x0A8A, "CLAYPAKY: Shot Light Wash" }, |
565 | | { 0x0A8B, "CLAYPAKY: Alpha Spot QWO800" }, |
566 | | { 0x0A8C, "CLAYPAKY: Alpha Profile 1500Q" }, |
567 | | { 0x0A8D, "CLAYPAKY: Alpha Profile 800" }, |
568 | | { 0x0A8E, "CLAYPAKY: Aleda K5" }, |
569 | | { 0x0A8F, "CLAYPAKY: Aleda K10" }, |
570 | | { 0x0A90, "CLAYPAKY: Aleda K20" }, |
571 | | { 0x0A91, "CLAYPAKY: Sharpy Wash" }, |
572 | | { 0x0A92, "CLAYPAKY: Aleda K10 B Eye Easy" }, |
573 | | { 0x0A93, "CLAYPAKY: Aleda K20 B Eye" }, |
574 | | { 0x0A94, "CLAYPAKY: Aleda K10 B Eye" }, |
575 | | { 0x0A95, "CLAYPAKY: SuperSharpy" }, |
576 | | { 0x0A96, "CLAYPAKY: Mythos" }, |
577 | | { 0x0A97, "CLAYPAKY: Sharpy Wash PC" }, |
578 | | { 0x0A98, "CLAYPAKY: SCENIUS PROFILE" }, |
579 | | { 0x0A99, "CLAYPAKY: SCENIUS SPOT" }, |
580 | | { 0x0A9A, "CLAYPAKY: SPHERISCAN" }, |
581 | | { 0x0A9B, "CLAYPAKY: SPHERLIGHT" }, |
582 | | { 0x0A9C, "CLAYPAKY: HEPIKOS" }, |
583 | | { 0x0A9D, "CLAYPAKY: SHOWBATTEN" }, |
584 | | { 0x0A9E, "CLAYPAKY: SHAR BAR" }, |
585 | | { 0x0A9F, "CLAYPAKY: MYTHOS2" }, |
586 | | { 0x0AA0, "Raven Systems Design Inc: AquaDuct Fountain" }, |
587 | | { 0x0AA1, "Raven Systems Design Inc: OemRaven1" }, |
588 | | { 0x0AA2, "Raven Systems Design Inc: OemRaven2" }, |
589 | | { 0x0AA3, "Raven Systems Design Inc: OemRaven3" }, |
590 | | { 0x0AA4, "Raven Systems Design Inc: OemRaven4" }, |
591 | | { 0x0AA5, "Raven Systems Design Inc: OemRaven5" }, |
592 | | { 0x0AA6, "Raven Systems Design Inc: OemRaven6" }, |
593 | | { 0x0AA7, "Raven Systems Design Inc: OemRaven7" }, |
594 | | { 0x0AA8, "Raven Systems Design Inc: OemRaven8" }, |
595 | | { 0x0AA9, "Raven Systems Design Inc: OemRaven9" }, |
596 | | { 0x0AAA, "Raven Systems Design Inc: OemRavena" }, |
597 | | { 0x0AAB, "Raven Systems Design Inc: OemRavenb" }, |
598 | | { 0x0AAC, "Raven Systems Design Inc: OemRavenc" }, |
599 | | { 0x0AAD, "Raven Systems Design Inc: OemRavend" }, |
600 | | { 0x0AAE, "Raven Systems Design Inc: OemRavene" }, |
601 | | { 0x0AAF, "Raven Systems Design Inc: OemRavenf" }, |
602 | | { 0x0AB0, "Theatrelight New Zealand: TLED2 Ethernet to isolated DMX converter" }, |
603 | | { 0x0AB1, "Theatrelight New Zealand: TLDE2 Isolated DMX to Ethernet converter" }, |
604 | | { 0x0AB2, "Theatrelight New Zealand: TLPID II 60 Plugin Dimmer Cabinet" }, |
605 | | { 0x0AB3, "Theatrelight New Zealand: TLPID II 96 Plugin Dimmer Cabinet" }, |
606 | | { 0x0AB4, "Theatrelight New Zealand: TLPID II 120 Plugin Dimmer Cabinet" }, |
607 | | { 0x0AB5, "Theatrelight New Zealand: TLPID II 192 Plugin Dimmer Cabinet" }, |
608 | | { 0x0AC0, "Cinetix Medien und Interface GmbH: Ethernet DMX512 Control Box" }, |
609 | | { 0x0AC1, "Cinetix Medien und Interface GmbH: Ethernet DMX512 Generator" }, |
610 | | { 0x0AC2, "Cinetix Medien und Interface GmbH: Ethernet DMX512 GenIO" }, |
611 | | { 0x0AD0, "WERPAX bvba: MULTI DMX" }, |
612 | | { 0x0AE0, "chainzone: RoundTable" }, |
613 | | { 0x0AF0, "City Theatrical Inc: PDS 750TRX" }, |
614 | | { 0x0AF1, "City Theatrical Inc: PDS 375TRX" }, |
615 | | { 0x0B00, "STC Mecatronica: DDR 2404 Digital Dimmer Rack" }, |
616 | | { 0x0B10, "LSC: OemLscOut1" }, |
617 | | { 0x0B11, "LSC: OemLscIn1" }, |
618 | | { 0x0B12, "LSC: OemLscOut4" }, |
619 | | { 0x0B13, "LSC: OemLscIn4" }, |
620 | | { 0x0B20, "EUROLITE: Node 8" }, |
621 | | { 0x0B30, "Absolute FX Pte Ltd: Showtime" }, |
622 | | { 0x0B40, "Mediamation Inc: Virtual Fountain" }, |
623 | | { 0x0B50, "Vanilla Internet Ltd: Chameleon" }, |
624 | | { 0x0B60, "LightWild LC: LightWild DataBridge" }, |
625 | | { 0x0B70, "Flexvisual: FlexNode" }, |
626 | | { 0x0B80, "Company NA: Digi Network" }, |
627 | | { 0x0B81, "Company NA: Mozart PSU 4" }, |
628 | | { 0x0B82, "Company NA: DigiNet 416" }, |
629 | | { 0x0B90, "DMX4ALL GmbH: DMX UNIVERSE 4 1" }, |
630 | | { 0x0B91, "DMX4ALL GmbH: DMX STAGE PROFI 1 1" }, |
631 | | { 0x0B92, "DMX4ALL GmbH: MagiarLED II flex PixxControl" }, |
632 | | { 0x0BA0, "Starlighting: Net DMX Notes" }, |
633 | | { 0x0BB0, "medien technik cords: MGate4" }, |
634 | | { 0x0BC0, "Joshua 1 Systems Inc: ECG M32MX" }, |
635 | | { 0x0BC1, "Joshua 1 Systems Inc: ECG DR2" }, |
636 | | { 0x0BC2, "Joshua 1 Systems Inc: ECG DR4" }, |
637 | | { 0x0BC3, "Joshua 1 Systems Inc: ECG PIX8" }, |
638 | | { 0x0BC4, "Joshua 1 Systems Inc: ECGPro D1" }, |
639 | | { 0x0BC5, "Joshua 1 Systems Inc: ECGPro D4" }, |
640 | | { 0x0BC6, "Joshua 1 Systems Inc: ECGPro D8" }, |
641 | | { 0x0BD0, "Astera: AC4" }, |
642 | | { 0x0BE0, "MARUMO ELECTRIC Co Ltd: MBK 350E" }, |
643 | | { 0x0BE1, "MARUMO ELECTRIC Co Ltd: MBK 360E" }, |
644 | | { 0x0BE2, "MARUMO ELECTRIC Co Ltd: MBK 370E" }, |
645 | | { 0x0BF0, "Weigl Elektronik Mediaprojekte: Pro IO" }, |
646 | | { 0x0C00, "GLP German Light Products GmbH: Impression Spot one" }, |
647 | | { 0x0C01, "GLP German Light Products GmbH: Impression Wash one" }, |
648 | | { 0x0C10, "s jaekel: DmxScreen" }, |
649 | | { 0x0C11, "s jaekel: TimecodeSender" }, |
650 | | { 0x0C12, "s jaekel: TimecodeViewer" }, |
651 | | { 0x0C13, "s jaekel: DmxSnuffler" }, |
652 | | { 0x0C14, "s jaekel: DmxConsole" }, |
653 | | { 0x0C15, "s jaekel: TimecodeSyncAudioPlayer" }, |
654 | | { 0x0D00, "Peter Maes Technology: EtherDmxLinkDuo" }, |
655 | | { 0x0D10, "SOUNDLIGHT: USBDMX TWO" }, |
656 | | { 0x0D20, "IBH: loox" }, |
657 | | { 0x0D30, "Thorn Lighting Ltd: SensaPro eDMX" }, |
658 | | { 0x0D40, "Chromateq SARL: LED Player" }, |
659 | | { 0x0D41, "Chromateq SARL: Pro DMX" }, |
660 | | { 0x0D50, "KiboWorks: KiboNode 16 Port" }, |
661 | | { 0x0D60, "The White Rabbit Company Inc: MCM Mini Communications Module" }, |
662 | | { 0x0D70, "TMB: ProPlex IQ" }, |
663 | | { 0x0D71, "TMB: Mozart MZ 40" }, |
664 | | { 0x0D80, "Celestial Audio: EtherDMX8 Simple" }, |
665 | | { 0x0D81, "Celestial Audio: EtherDMX8 Pro" }, |
666 | | { 0x0D82, "Celestial Audio: DMX36" }, |
667 | | { 0x0D90, "Doug Fleenor Design Inc: Node4" }, |
668 | | { 0x0DA0, "Lex: AL5003 Lex" }, |
669 | | { 0x0DB0, "Revolution Display Inc: Navigator" }, |
670 | | { 0x0DC0, "Visual Productions: CueCore" }, |
671 | | { 0x0DC1, "Visual Productions: IoCore" }, |
672 | | { 0x0DD0, "LLT Lichttechnik GmbH Co KG: SMS 28A" }, |
673 | | { 0x0DE0, "Chromlech: Elidy S" }, |
674 | | { 0x0DE1, "Chromlech: Elidy S RDM" }, |
675 | | { 0x0DE2, "Chromlech: Elidy" }, |
676 | | { 0x0DE3, "Chromlech: Elidy RDM" }, |
677 | | { 0x0DF0, "Integrated System Technologies Ltd: iDrive Thor 36" }, |
678 | | { 0x0DF1, "Integrated System Technologies Ltd: iDrive White Knight 36" }, |
679 | | { 0x0DF2, "Integrated System Technologies Ltd: iDrive Force 12" }, |
680 | | { 0x0DF3, "Integrated System Technologies Ltd: iDrive Thor 16" }, |
681 | | { 0x0E00, "RayComposer R Adams: RayComposer Software" }, |
682 | | { 0x0E01, "RayComposer R Adams: RayComposer NET" }, |
683 | | { 0x0E10, "eldoLED: PowerBOX Addresser" }, |
684 | | { 0x0E20, "coolux GmbH: Pandoras Box Mediaserver" }, |
685 | | { 0x0E21, "coolux GmbH: Widget Designer" }, |
686 | | { 0x0E30, "ELETTROLAB Srl: Accendo Smart Light Power" }, |
687 | | { 0x0E40, "Philips: ColorBlaze TRX" }, |
688 | | { 0x0E70, "XiamenGreenTao Opto Electronics Co Ltd: GT DMX 2000" }, |
689 | | { 0x0E71, "XiamenGreenTao Opto Electronics Co Ltd: GT DMX 4000" }, |
690 | | { 0x0E80, "Rnet: Rnet 8" }, |
691 | | { 0x0E81, "Rnet: Rnet 6" }, |
692 | | { 0x0E82, "Rnet: Rnet 4" }, |
693 | | { 0x0E83, "Rnet: Rnet 2" }, |
694 | | { 0x0E84, "Rnet: Rnet 1" }, |
695 | | { 0x0E90, "Dmx4All: Player AN" }, |
696 | | { 0x0E91, "Dmx4All: AN Led Dimmer AN" }, |
697 | | { 0x0EA0, "EQUIPSON S A: WORK LM 5" }, |
698 | | { 0x0EA1, "EQUIPSON S A: WORK LM 3R2" }, |
699 | | { 0x0EA2, "EQUIPSON S A: WORK LM 5W" }, |
700 | | { 0x0EA3, "EQUIPSON S A: WORK DMXNET 4" }, |
701 | | { 0x0EA4, "EQUIPSON S A: WORK DMXNET 8" }, |
702 | | { 0x0EB0, "SanDevices: E680 pixel controllers" }, |
703 | | { 0x0EB1, "SanDevices: E681 pixel controllers" }, |
704 | | { 0x0EB2, "SanDevices: E682 pixel controllers" }, |
705 | | { 0x0EB3, "SanDevices: E6804 pixel controllers" }, |
706 | | { 0x0EC0, "BRAINSALT MEDIA GMBH: BSM Conductor PRO" }, |
707 | | { 0x0ED0, "ELETTROLAB Srl: Avvio 04" }, |
708 | | { 0x0ED1, "ELETTROLAB Srl: Remoto" }, |
709 | | { 0x0EE0, "PRO SOLUTIONS: DMX PRO Net 02" }, |
710 | | { 0x0EE1, "PRO SOLUTIONS: DMX PRO Net 01" }, |
711 | | { 0x0EE2, "PRO SOLUTIONS: DMX PRO Net 10" }, |
712 | | { 0x0EE3, "PRO SOLUTIONS: DMX PRO Net 11" }, |
713 | | { 0x0EE4, "PRO SOLUTIONS: DMX PRO Net 04" }, |
714 | | { 0x0EE5, "PRO SOLUTIONS: DMX PRO Net 14" }, |
715 | | { 0x0EF0, "eIdea Creative Technology: EtherShow 2" }, |
716 | | { 0x0F00, "Brink Electronics: net node 01" }, |
717 | | { 0x0F01, "Brink Electronics: net node 10" }, |
718 | | { 0x0F02, "Brink Electronics: net node 11" }, |
719 | | { 0x0F10, "deskontrol electronics: Pixel controller II" }, |
720 | | { 0x0F11, "deskontrol electronics: Pixel controller III" }, |
721 | | { 0x0F12, "deskontrol electronics: DMX controller" }, |
722 | | { 0x0F20, "Kirron light components: IDycoLED Control" }, |
723 | | { 0x0F30, "Visual Productions: B Station" }, |
724 | | { 0x0F31, "Visual Productions: F Station" }, |
725 | | { 0x0F40, "LSS GmbH: MasterPort RM" }, |
726 | | { 0x0F50, "kuwatec Inc: EtherMX" }, |
727 | | { 0x0F60, "Integrated System Technologies Ltd: iDrive PixelLED" }, |
728 | | { 0x0F61, "Integrated System Technologies Ltd: iDrive Gateway 12" }, |
729 | | { 0x0F70, "Philips Large Luminous Surfaces: Luminous Textile Panel" }, |
730 | | { 0x0F80, "VT Control: WRDM V1 0" }, |
731 | | { 0x0F90, "Panasonic Corporation: EMIT AX" }, |
732 | | { 0x0F91, "Panasonic Corporation: Projector" }, |
733 | | { 0x0FA0, "Diamante Lighting: DMNet Out" }, |
734 | | { 0x0FB0, "Glow Motion Technologies LLC: Ghostband Transmitter" }, |
735 | | { 0x0FC0, "Sigma Net: AM 8" }, |
736 | | { 0x0FD0, "DiGidot: DiGidot C 4" }, |
737 | | { 0x0FE0, "techKnow Design: techNodeTx1" }, |
738 | | { 0x0FE1, "techKnow Design: techNodeTx2" }, |
739 | | { 0x0FE2, "techKnow Design: techNodeRx1" }, |
740 | | { 0x0FE3, "techKnow Design: techNodeRx2" }, |
741 | | { 0x0FF0, "Total Light: Ether Quad" }, |
742 | | { 0x1000, "IP DMX Control: ip dmx dx 1 2" }, |
743 | | { 0x1010, "TNF Concept: RTS DMX 512" }, |
744 | | { 0x1020, "Nico Technology: Nico DMX interface 4504" }, |
745 | | { 0x1030, "Highendled Electronics Company Limited: EZK456" }, |
746 | | { 0x1031, "Highendled Electronics Company Limited: PIX101" }, |
747 | | { 0x1032, "Highendled Electronics Company Limited: FLA472" }, |
748 | | { 0x1033, "Highendled Electronics Company Limited: ULT538" }, |
749 | | { 0x1034, "Highendled Electronics Company Limited: PSU 10A" }, |
750 | | { 0x1040, "Visual Productions: Cuety" }, |
751 | | { 0x1041, "Visual Productions: QuadCore" }, |
752 | | { 0x1050, "Ackerman Computer Sciences: CFSound IV - Compact Flash Sound Player IV" }, |
753 | | { 0x1051, "Ackerman Computer Sciences: Color LCD 320x240 Terminal" }, |
754 | | { 0x1060, "Innovation LED Limited: Ilumo Zoom Spot" }, |
755 | | { 0x1061, "Innovation LED Limited: Ilumo Cyc 1" }, |
756 | | { 0x1062, "Innovation LED Limited: Ilumo ARC Gateway" }, |
757 | | { 0x1063, "Innovation LED Limited: Ether DMX 1" }, |
758 | | { 0x1064, "Innovation LED Limited: Ether DMX 2" }, |
759 | | { 0x1065, "Innovation LED Limited: Ether DMX 4" }, |
760 | | { 0x1070, "LightAct d o o: reActor" }, |
761 | | { 0x1080, "wupperTec: iMerge" }, |
762 | | { 0x1090, "Integrated System Technologies Ltd: iMune" }, |
763 | | { 0x10A0, "Advatek Lighting: PixLite 16" }, |
764 | | { 0x10A1, "Advatek Lighting: PixLite 4" }, |
765 | | { 0x10B0, "ACME: XP 1000 SZ" }, |
766 | | { 0x10C0, "AV Stumpfl GmbH: Wings AV Suite" }, |
767 | | { 0x10D0, "Lumax: LumaxNET ILDA Interface" }, |
768 | | { 0x10E0, "Zingerli Show Engineering: Katlait" }, |
769 | | { 0x10E1, "Zingerli Show Engineering: Kailua" }, |
770 | | { 0x10E2, "Zingerli Show Engineering: Kailua 2" }, |
771 | | { 0x10E3, "Zingerli Show Engineering: Pina" }, |
772 | | { 0x10E4, "Zingerli Show Engineering: Sina" }, |
773 | | { 0x10E5, "Zingerli Show Engineering: Tukra" }, |
774 | | { 0x10F0, "kuwatec Inc: DIAheart" }, |
775 | | { 0x1100, "Sigma Net: E NODE 8 1" }, |
776 | | { 0x1110, "Radig Hard Software: EDC 01" }, |
777 | | { 0x1120, "Mogees Ltd: Mogees" }, |
778 | | { 0x1130, "GuangZhou MCSWE Technologies: MCSWE 1024" }, |
779 | | { 0x1131, "GuangZhou MCSWE Technologies: MCSWE 2048" }, |
780 | | { 0x1140, "Dynamic Projection Institute Herstellungs und Vertriebs GmbH: Mirror Head" }, |
781 | | { 0x1150, "Steinigke Showtechnic GmbH: PSU 8A" }, |
782 | | { 0x1151, "Steinigke Showtechnic GmbH: Node 1" }, |
783 | | { 0x1152, "Steinigke Showtechnic GmbH: Pixel Ball" }, |
784 | | { 0x1153, "Steinigke Showtechnic GmbH: Zeitgeist PMC 16" }, |
785 | | { 0x1154, "Steinigke Showtechnic GmbH: Stage Bar 5" }, |
786 | | { 0x1155, "Steinigke Showtechnic GmbH: Stage Bar 10" }, |
787 | | { 0x1160, "BEGLEC: BT NODE28" }, |
788 | | { 0x1161, "BEGLEC: POWERMATRIX5x5 RGB Mk2" }, |
789 | | { 0x1162, "BEGLEC: BEAM MATRIX5x5 RGBW" }, |
790 | | { 0x1170, "Fineline Solutions Ltd: 16 Channel Stepper Controller" }, |
791 | | { 0x1171, "Fineline Solutions Ltd: Fineline product 1" }, |
792 | | { 0x1172, "Fineline Solutions Ltd: Fineline product 2" }, |
793 | | { 0x1173, "Fineline Solutions Ltd: Fineline product 3" }, |
794 | | { 0x1174, "Fineline Solutions Ltd: Fineline product 4" }, |
795 | | { 0x1175, "Fineline Solutions Ltd: Fineline product 5" }, |
796 | | { 0x1176, "Fineline Solutions Ltd: Fineline product 6" }, |
797 | | { 0x1177, "Fineline Solutions Ltd: Fineline product 7" }, |
798 | | { 0x1178, "Fineline Solutions Ltd: Fineline product 8" }, |
799 | | { 0x1179, "Fineline Solutions Ltd: Fineline product 9" }, |
800 | | { 0x117A, "Fineline Solutions Ltd: Fineline product 10" }, |
801 | | { 0x117B, "Fineline Solutions Ltd: Fineline product 11" }, |
802 | | { 0x117C, "Fineline Solutions Ltd: Fineline product 12" }, |
803 | | { 0x117D, "Fineline Solutions Ltd: Fineline product 13" }, |
804 | | { 0x117E, "Fineline Solutions Ltd: Fineline product 14" }, |
805 | | { 0x117F, "Fineline Solutions Ltd: Fineline product 15" }, |
806 | | { 0x1180, "Rocrail: Rocrail DMX Daylight" }, |
807 | | { 0x1190, "PXM: Px314" }, |
808 | | { 0x1191, "PXM: Px357" }, |
809 | | { 0x11A0, "OTTEC Technology GmbH: Fogmachine" }, |
810 | | { 0x11B0, "Claude Bigonoff: Interface LT Open source" }, |
811 | | { 0x11C0, "Rena Electronica B V: Bits2Power Power Data Controller" }, |
812 | | { 0x11D0, "LIGHT SKY: OemSkyHub" }, |
813 | | { 0x11E0, "HDL: DMXNode4" }, |
814 | | { 0x11F0, "Pangolin Laser Systems Inc: FB4 SE" }, |
815 | | { 0x11F1, "Pangolin Laser Systems Inc: AVR Ethernet DMX" }, |
816 | | { 0x1200, "ShenZhen HuaCanXing Technology Co Ltd: H801RT" }, |
817 | | { 0x1210, "Highendled Electronics Company Limited: FLA308" }, |
818 | | { 0x1211, "Highendled Electronics Company Limited: FLA320" }, |
819 | | { 0x1220, "Pacific Northwest National Laboratory: PNNL Connected Lighting System Testbed" }, |
820 | | { 0x1230, "Ed Keefe Design: Advanced Laser Router" }, |
821 | | { 0x1240, "Guangzhou Hongcai Stage Equipment co: Q 5 Turbo" }, |
822 | | { 0x1250, "Claude Heintz Design: LXConsole" }, |
823 | | { 0x1260, "Immersive Design Studios: Canvas" }, |
824 | | { 0x1270, "Visual Productions: LPU 1" }, |
825 | | { 0x1271, "Visual Productions: LPU 2" }, |
826 | | { 0x1272, "Visual Productions: QuadCore" }, |
827 | | { 0x1273, "Visual Productions: CueCore2" }, |
828 | | { 0x1280, "ARC Solid State Lighting Corporation: DMX Converter" }, |
829 | | { 0x1290, "Peter Meyer Project Management Adviser GmbH: PMA DMX Driver" }, |
830 | | { 0x12A0, "Robert Juliat: Dalis Reference : 860" }, |
831 | | { 0x12A1, "Robert Juliat: Merlin" }, |
832 | | { 0x12B0, "Briteq: BEAMBAR5 RGBW" }, |
833 | | { 0x12B1, "Briteq: BEAMBAR10 RGBW" }, |
834 | | { 0x12B2, "Briteq: BEAM WIZARD5x5" }, |
835 | | { 0x12B3, "Briteq: BEAM MATRIX5x5 RGBW" }, |
836 | | { 0x12C0, "JMS Pro Light: WLAN2DMX" }, |
837 | | { 0x12D0, "Interactive Technologies Inc: CueServer 2" }, |
838 | | { 0x12E0, "Strand Lighting: Single Gang Node PN 65161" }, |
839 | | { 0x12E1, "Strand Lighting: 3 Port Node PN 65163" }, |
840 | | { 0x12E2, "Strand Lighting: 3 Port DIN PCB PN 97 0387" }, |
841 | | { 0x12E3, "Strand Lighting: 3 Port Embedded PCB PN 74261" }, |
842 | | { 0x12E4, "Strand Lighting: 8 Port Node PN 65168" }, |
843 | | { 0x12E5, "Strand Lighting: 2 Port Node PN 65162" }, |
844 | | { 0x12F0, "Chauvet Professional: Epix Drive 900" }, |
845 | | { 0x12F1, "Chauvet Professional: Epix Drive 642" }, |
846 | | { 0x12F2, "Chauvet Professional: Net X" }, |
847 | | { 0x12F3, "Chauvet Professional: Nexus 4x4" }, |
848 | | { 0x12F4, "Chauvet Professional: Nexus 2x2" }, |
849 | | { 0x12F5, "Chauvet Professional: Nexus 4x1" }, |
850 | | { 0x12F6, "Chauvet Professional: Maverick Mk2" }, |
851 | | { 0x12F7, "Chauvet Professional: Maverick Mk1 Wash" }, |
852 | | { 0x12F8, "Chauvet Professional: Maverick Mkx1 Wash" }, |
853 | | { 0x12F9, "Chauvet Professional: Ovation B 565FC" }, |
854 | | { 0x12FA, "Chauvet Professional: Ovation B 2805FC" }, |
855 | | { 0x12FB, "Chauvet Professional: VIP Drive 43s" }, |
856 | | { 0x1300, "HPL Company: Delta 8 Node" }, |
857 | | { 0x1310, "Steinigke Showtechnic GmbH: PSU 4A" }, |
858 | | { 0x1320, "Lumenpulse Lighting Inc: Lumencove XT Ethernet Enabled" }, |
859 | | { 0x1321, "Lumenpulse Lighting Inc: CBOX Ethernet" }, |
860 | | { 0x1330, "deskontrol electronics: deskontroller" }, |
861 | | { 0x1331, "deskontrol electronics: deskontroller pro" }, |
862 | | { 0x1340, "Seiko Epson Corporation: Projector" }, |
863 | | { 0x1350, "Image Engineering: Beam Composer" }, |
864 | | { 0x1360, "Arnold Richter Cine Technik GmbH: ARRI" }, |
865 | | { 0x1370, "NISCON Inc: RAYNOK Motion Control System" }, |
866 | | { 0x1380, "Immersive Design Studios inc: Canvas" }, |
867 | | { 0x1390, "ADJ Products: Flash Kling Panel" }, |
868 | | { 0x13A0, "Callegenix LLC: DMX Commander" }, |
869 | | { 0x13A1, "Callegenix LLC: Pixel Driver" }, |
870 | | { 0x13B0, "ARC Solid State Lighting Corporation: Constant Voltage Driver" }, |
871 | | { 0x13B1, "ARC Solid State Lighting Corporation: LF75 Flood Light" }, |
872 | | { 0x13B2, "ARC Solid State Lighting Corporation: LF150 Flood Light" }, |
873 | | { 0x13C0, "Licht Team: LT1" }, |
874 | | { 0x13C1, "SGH: Martin" }, |
875 | | { 0x13C2, "ADJ Products: Airstream DMX Bridge" }, |
876 | | { 0x13C3, "DMG Technologies DMG Lumiere: Universal battery box" }, |
877 | | { 0x13C4, "SWGroup: Easydim" }, |
878 | | { 0x13C5, "GLP German Light Products GmbH: GT 1" }, |
879 | | { 0x13C6, "ADL Electronics Ltd: ADL DMX NetGate" }, |
880 | | { 0x13C7, "ADL Electronics Ltd: ADL DMX NetGate +" }, |
881 | | { 0x13C8, "ADL Electronics Ltd: ADL DMX NetGate RDM" }, |
882 | | { 0x13C9, "ADL Electronics Ltd: ADL DMX NetGate+ RDM" }, |
883 | | { 0x13CA, "ADL Electronics Ltd: ADL DMX NetGate DIN" }, |
884 | | { 0x13CB, "ADL Electronics Ltd: ADL DMX NetGate ALARM" }, |
885 | | { 0x13CC, "ADL Electronics Ltd: ADL DC PU 24" }, |
886 | | { 0x13CD, "ADL Electronics Ltd: ADL DC PU 24C" }, |
887 | | { 0x13CE, "ADL Electronics Ltd: ADL DC PU 6" }, |
888 | | { 0x13CF, "ADL Electronics Ltd: ADL DC WSO operator workstation" }, |
889 | | { 0x13D0, "ADL Electronics Ltd: ADL DC IKB" }, |
890 | | { 0x13D1, "ADL Electronics Ltd: ADL DimmerCabinet CPU" }, |
891 | | { 0x13D2, "ADL Electronics Ltd: ADL Dimmer 220 12d x" }, |
892 | | { 0x13D3, "ADL Electronics Ltd: ADL MediaPlayer" }, |
893 | | { 0x13D4, "Opito Labs GmbH: Opito Converter Toolkit" }, |
894 | | { 0x13D5, "Opito Labs GmbH: Opito Video Controller" }, |
895 | | { 0x13D6, "Swisson AG: XND 4" }, |
896 | | { 0x13D7, "ROF Electronics: Multi4verse" }, |
897 | | { 0x13D8, "d3 Technologies Ltd: Pro Plus range" }, |
898 | | { 0x13D9, "Integrated System Technologies Ltd: Sensor Hub" }, |
899 | | { 0x13DA, "LKE Lasershow: H2O Motion" }, |
900 | | { 0x13DB, "LKE Lasershow: eXtreme Motion Jet" }, |
901 | | { 0x13DC, "LeMaitre Ltd: G300 Smart" }, |
902 | | { 0x13DD, "Company NA: DigiNet Manager" }, |
903 | | { 0x13DE, "TMB: ProPlex IQ Manager" }, |
904 | | { 0x13DF, "Exalux: Connect One" }, |
905 | | { 0x13E0, "MTH: MED LDMX512" }, |
906 | | { 0x13E1, "MTH: MED LDMX512HUB" }, |
907 | | { 0x13E2, "AC Lasers: SuperNova" }, |
908 | | { 0x13E3, "AC Lasers: W Lux" }, |
909 | | { 0x13F0, "Batmink Ltd: OEMVISAGEVISIONMAPPER" }, |
910 | | { 0x13F1, "LEDTUNE COM: ABOX 01" }, |
911 | | { 0x13F2, "Vertigo ApS: BlackLED" }, |
912 | | { 0x13F3, "Ingham Designs LLC: Hunt Node" }, |
913 | | { 0x13F4, "GuangZhou LiDang Technology Co Ltd: LD NET 1024" }, |
914 | | { 0x13F5, "GuangZhou LiDang Technology Co Ltd: LD NET 2028" }, |
915 | | { 0x13F6, "RGBlink: Venus X7" }, |
916 | | { 0x13F7, "RGBlink: G 3 Net" }, |
917 | | { 0x13F8, "Imimot Kft: Mitti" }, |
918 | | { 0x13F9, "MCSWE Technologies INC: MCSWE LUNA 8" }, |
919 | | { 0x13FA, "MCSWE Technologies INC: MCSWE LUNA 16" }, |
920 | | { 0x13FB, "Digital Sputnik Lighting: DSL1" }, |
921 | | { 0x13FC, "SRS Light Design: ANGS4" }, |
922 | | { 0x13FD, "Chauvet DJ: DMX AN" }, |
923 | | { 0x13FE, "Rosstech Signals: DMXBridge" }, |
924 | | { 0x13FF, "LSC Lighting Systems Aust Pty Ltd: Mantra Lite" }, |
925 | | { 0x1400, "DMT: Pixelstrip controller MKII" }, |
926 | | { 0x1401, "Elation Lighting: TVL Panel DW" }, |
927 | | { 0x1402, "RGBlink: Venus X2" }, |
928 | | { 0x1403, "Elation Lighting: TVL Panel DW" }, |
929 | | { 0x1404, "Elation Lighting: eNode4" }, |
930 | | { 0x1405, "Elation Lighting: eNode8 Pro" }, |
931 | | { 0x1406, "Exalux: Connect Plus" }, |
932 | | { 0x1407, "Foshan YiFeng Electric Industrial Co ltd: CA EN28S" }, |
933 | | { 0x1408, "Foshan YiFeng Electric Industrial Co ltd: CA AN28" }, |
934 | | { 0x1409, "Foshan YiFeng Electric Industrial Co ltd: CA EN28" }, |
935 | | { 0x140A, "Foshan YiFeng Electric Industrial Co ltd: CA AN08" }, |
936 | | { 0x140B, "Foshan YiFeng Electric Industrial Co ltd: CA AN04" }, |
937 | | { 0x140C, "Soundlight: Soundlight 4port node" }, |
938 | | { 0x2000, "Artistic Licence Engineering Ltd: AL5001" }, |
939 | | { 0x2001, "Artistic Licence Engineering Ltd: artLynx duo" }, |
940 | | { 0x2002, "Artistic Licence Engineering Ltd: artLynx uno" }, |
941 | | { 0x2010, "Artistic Licence Engineering Ltd: Data Lynx OP" }, |
942 | | { 0x2020, "Artistic Licence Engineering Ltd: Rail Lynx OP" }, |
943 | | { 0x2030, "Artistic Licence Engineering Ltd: Down Lynx G4" }, |
944 | | { 0x2040, "Artistic Licence Engineering Ltd: Net Lynx OP G4" }, |
945 | | { 0x2050, "Artistic Licence Engineering Ltd: AL5002" }, |
946 | | { 0x2060, "Artistic Licence Engineering Ltd: Data Lynx IP" }, |
947 | | { 0x2070, "Artistic Licence Engineering Ltd: Cata Lynx IP G4" }, |
948 | | { 0x2075, "Artistic Licence Engineering Ltd: Cata Lynx OP G4" }, |
949 | | { 0x2080, "Artistic Licence Engineering Ltd: Rail Lynx IP" }, |
950 | | { 0x2090, "Artistic Licence Engineering Ltd: Up Lynx G4" }, |
951 | | { 0x20A0, "Artistic Licence Engineering Ltd: Net Lynx IP G4" }, |
952 | | { 0x20B0, "Artistic Licence Engineering Ltd: Art Play" }, |
953 | | { 0x20D0, "Artistic Licence Engineering Ltd: Art Demux" }, |
954 | | { 0x20E0, "Artistic Licence Engineering Ltd: Art Relay" }, |
955 | | { 0x20F0, "Artistic Licence Engineering Ltd: Art Pipe" }, |
956 | | { 0x2100, "Artistic Licence Engineering Ltd: Art Media" }, |
957 | | { 0x2110, "Artistic Licence Engineering Ltd: Art Boot" }, |
958 | | { 0x2120, "Artistic Licence Engineering Ltd: Art Lynx OP" }, |
959 | | { 0x2130, "Artistic Licence Engineering Ltd: Art Lynx IP" }, |
960 | | { 0x2140, "Artistic Licence Engineering Ltd: Ether Lynx II" }, |
961 | | { 0x2150, "Artistic Licence Engineering Ltd: Multichrome E2" }, |
962 | | { 0x2160, "Artistic Licence Engineering Ltd: Art Monitor Base" }, |
963 | | { 0x2170, "Artistic Licence Engineering Ltd: Multichrome E1" }, |
964 | | { 0x2200, "Artistic Licence Engineering Ltd: Micro Scope 5" }, |
965 | | { 0x2210, "Artistic Licence Engineering Ltd: Two Play" }, |
966 | | { 0x2211, "Artistic Licence Engineering Ltd: Two Play XT" }, |
967 | | { 0x2212, "Artistic Licence Engineering Ltd: Multi Play" }, |
968 | | { 0x2220, "Artistic Licence Engineering Ltd: Diamond" }, |
969 | | { 0x2221, "Artistic Licence Engineering Ltd: Quartz" }, |
970 | | { 0x2222, "Artistic Licence Engineering Ltd: Zircon" }, |
971 | | { 0x2223, "Artistic Licence Engineering Ltd: Graphite" }, |
972 | | { 0x2224, "Artistic Licence Engineering Ltd: Opal" }, |
973 | | { 0x2225, "Artistic Licence Engineering Ltd: Mica" }, |
974 | | { 0x2230, "Artistic Licence Engineering Ltd: eSense" }, |
975 | | { 0x2231, "Artistic Licence Engineering Ltd: eSense XT" }, |
976 | | { 0x2240, "Artistic Licence Engineering Ltd: dVnet" }, |
977 | | { 0x2241, "Artistic Licence Engineering Ltd: versaSplit EthB" }, |
978 | | { 0x2242, "Artistic Licence Engineering Ltd: versaSplit EthA" }, |
979 | | { 0x2250, "Artistic Licence Engineering Ltd: AL5003" }, |
980 | | { 0x2258, "Artistic Licence Engineering Ltd: daliGate uno" }, |
981 | | { 0x2259, "Artistic Licence Engineering Ltd: daliGate duo" }, |
982 | | { 0x225A, "Artistic Licence Engineering Ltd: daliGate quad" }, |
983 | | { 0x2260, "Artistic Licence Engineering Ltd: lightJuice CV4" }, |
984 | | { 0x2261, "Artistic Licence Engineering Ltd: lightJuice DC24" }, |
985 | | { 0x2262, "Artistic Licence Engineering Ltd: lightJuice CC2" }, |
986 | | { 0x2263, "Artistic Licence Engineering Ltd: lightJuice OL1" }, |
987 | | { 0x2264, "Artistic Licence Engineering Ltd: lightJuice PX1" }, |
988 | | { 0x2265, "Artistic Licence Engineering Ltd: lightJuice DALI" }, |
989 | | { 0x2266, "Artistic Licence Engineering Ltd: lightJuice Dmx" }, |
990 | | { 0x2267, "Artistic Licence Engineering Ltd: artLynx quad" }, |
991 | | { 0x2268, "Artistic Licence Engineering Ltd: dataLynx II" }, |
992 | | { 0x2269, "Singularity (UK) Ltd: DMX Workshop" }, |
993 | | { 0x226A, "Singularity (UK) Ltd: ACT" }, |
994 | | { 0x226B, "Artistic Licence Engineering Ltd: Colour Tramp Input" }, |
995 | | { 0x226C, "Singularity (UK) Ltd: DmxToolBox" }, |
996 | | { 0x226D, "Artistic Licence Engineering Ltd: pixiLynx 4x4" }, |
997 | | { 0x226E, "Artistic Licence Engineering Ltd: artLynx rj45" }, |
998 | | { 0x226F, "Artistic Licence Engineering Ltd: netLynx quad" }, |
999 | | { 0x2270, "Artistic Licence Engineering Ltd: downLynx quad" }, |
1000 | | { 0x2271, "Artistic Licence Engineering Ltd: rackLynxOcto" }, |
1001 | | { 0x2272, "Artistic Licence Engineering Ltd: oemGate quad" }, |
1002 | | { 0x2801, "Gearbox Solutions: LC1" }, |
1003 | | { 0x2802, "Licht en Geluid Team: DMXDisplay" }, |
1004 | | { 0x2803, "Lycht: Lycht Hub" }, |
1005 | | { 0x2804, "Elation Lighting: TVL Softlight DW" }, |
1006 | | { 0x2805, "ELETTROLAB Srl: Avvio Mini WiFi" }, |
1007 | | { 0x2806, "CLAYPAKY: SUPERSHARPY²" }, |
1008 | | { 0x2807, "JMS Pro Light: AIR2DMX" }, |
1009 | | { 0x2808, "Steinigke Showtechnic GmbH: Node 8 MK2" }, |
1010 | | { 0x2809, "W A Benjamin Electric Co: Integrity RDM Conformance Test" }, |
1011 | | { 0x280A, "DMX4ALL GmbH: Wireless DMX4ALL Device" }, |
1012 | | { 0x280B, "DMX4ALL GmbH: DMX4ALL PixxDevice" }, |
1013 | | { 0x280C, "DMX4ALL GmbH: DMX4ALL PlayerDevice" }, |
1014 | | { 0x280D, "DMX4ALL GmbH: DMX4ALL MuxDevice" }, |
1015 | | { 0x280E, "DMX4ALL GmbH: DMX4ALL WirelessDevice" }, |
1016 | | { 0x280F, "DMX4ALL GmbH: DMX4ALL WirelessPixxDevice" }, |
1017 | | { 0x2810, "Steinigke Showtechnic GmbH: LED TMH X25 XL" }, |
1018 | | { 0x2811, "Elation Lighting: eNode 2POE" }, |
1019 | | { 0x2812, "Elation Lighting: TVL Panel DW" }, |
1020 | | { 0x2813, "BLS: c21550820" }, |
1021 | | { 0x2814, "Elation Lighting: TVL Softlight DW" }, |
1022 | | { 0x2815, "ImageCue LLC: ImageCue NEV" }, |
1023 | | { 0x2816, "NightStarry Electronics Co LTD: Net Dmx" }, |
1024 | | { 0x2817, "NightStarry Electronics Co LTD: Net Node:32" }, |
1025 | | { 0x2818, "NightStarry Electronics Co LTD: Net Node:16" }, |
1026 | | { 0x2819, "NightStarry Electronics Co LTD: Net Node:8" }, |
1027 | | { 0x281A, "NightStarry Electronics Co LTD: Net Node:4" }, |
1028 | | { 0x281B, "Showtec: Pixel Bubble 80 MKII" }, |
1029 | | { 0x281C, "Colordreamer Technology Co Limited: Titan A16" }, |
1030 | | { 0x281D, "Showtec: White PIX" }, |
1031 | | { 0x281E, "Showtec: Node 1" }, |
1032 | | { 0x281F, "DMT: Pixel Tile P25 MKII" }, |
1033 | | { 0x2820, "DMT: PixelBatten P25 MKII" }, |
1034 | | { 0x2821, "Showtec: Phantom 300 LED Matrix" }, |
1035 | | { 0x2822, "Infinity: iW 1915 Pixel" }, |
1036 | | { 0x2823, "Infinity: iS 400" }, |
1037 | | { 0x2824, "Infinity: iPW 150 LED Sunpanel" }, |
1038 | | { 0x2825, "Infinity: Chimp 300" }, |
1039 | | { 0x2826, "Infinity: Chimp 100" }, |
1040 | | { 0x2827, "Infinity: iM 2515" }, |
1041 | | { 0x2828, "Resolume: Arena" }, |
1042 | | { 0x2829, "LED concept: LED Pixel Director 4" }, |
1043 | | { 0x282A, "LED concept: LED Pixel Director 8" }, |
1044 | | { 0x282B, "DMX4ALL GmbH: DMX4ALL DMXDevice" }, |
1045 | | { 0x282C, "kuwatec Inc: Ex8" }, |
1046 | | { 0x282D, "DMX4ALL GmbH: DMX4ALL SoftwareDevice" }, |
1047 | | { 0x282E, "XING YE DIAN ZI: NS NET ONE" }, |
1048 | | { 0x282F, "XING YE DIAN ZI: NS NET03" }, |
1049 | | { 0x2830, "XING YE DIAN ZI: NS NET02" }, |
1050 | | { 0x2831, "XING YE DIAN ZI: NS NET01" }, |
1051 | | { 0x2832, "ExMachina: Winch Dynamic" }, |
1052 | | { 0x2833, "Schnick Schnack Systems GmbH: DMX Pixel Router" }, |
1053 | | { 0x2834, "Schnick Schnack Systems GmbH: DPB Pixel Router" }, |
1054 | | { 0x2835, "Stage Eyes: Tri Engine" }, |
1055 | | { 0x2836, "Colordreamer Technology Co Limited: Titan AS4" }, |
1056 | | { 0x2837, "Colordreamer Technology Co Limited: Titan A2" }, |
1057 | | { 0x2838, "Colordreamer Technology Co Limited: Titan A4" }, |
1058 | | { 0x2839, "Colordreamer Technology Co Limited: Titan A8" }, |
1059 | | { 0x283A, "eIdea Creative Technology: AuNode" }, |
1060 | | { 0x283B, "LIGHTSKY: IP3000" }, |
1061 | | { 0x283C, "colordreamer: Colordreamer Update Boot" }, |
1062 | | { 0x283D, "Digital Sputnik Lighting Oü: DS Control DMX" }, |
1063 | | { 0x283E, "Colordreamer Technology Co Limited: Titan A8 Pro" }, |
1064 | | { 0x283F, "LED concept: LED PIXEL DIRECTOR 24" }, |
1065 | | { 0x2840, "LED concept: LED PIXEL DIRECTOR 16" }, |
1066 | | { 0x2841, "LED concept: LED PIXEL DIRECTOR 12" }, |
1067 | | { 0x2842, "HMB TEC GmbH: CC512 Pix" }, |
1068 | | { 0x2843, "ROF Electronics: Big Foot IV" }, |
1069 | | { 0x2844, "ROF Electronics: Big Foot II" }, |
1070 | | { 0x2845, "ROF Electronics: TNT" }, |
1071 | | { 0x2846, "ROF Electronics: Multi8verse" }, |
1072 | | { 0x2847, "ROF Electronics: Multi6verse" }, |
1073 | | { 0x2848, "ROF Electronics: Multi2verse" }, |
1074 | | { 0x2849, "AC3 Studio: Kinetic Stepper Interface" }, |
1075 | | { 0x284A, "AYRTON: AyrtonFixtureNode" }, |
1076 | | { 0x284B, "DMLITE: SOLEIL" }, |
1077 | | { 0x284C, "M Light: Mini Display 16" }, |
1078 | | { 0x284D, "LEDsistem Technology LTD: Cloud Drive" }, |
1079 | | { 0x284E, "ROBERT JULIAT: SpotME" }, |
1080 | | { 0x284F, "ROBERT JULIAT: ALICE 1469" }, |
1081 | | { 0x2850, "ROBERT JULIAT: OZ 1169" }, |
1082 | | { 0x2851, "ROBERT JULIAT: DALIS 862" }, |
1083 | | { 0x2852, "ROBERT JULIAT: DALIS 861" }, |
1084 | | { 0x2853, "Chauvet Professional: Epix Drive 2000 IP" }, |
1085 | | { 0x2854, "LIGHTSKY: IP2000" }, |
1086 | | { 0x2855, "SmoothLUX B V: SmoothDMX 128" }, |
1087 | | { 0x2856, "SmoothLUX B V: SmoothDMX 512" }, |
1088 | | { 0x2857, "Big Dipper Laser Science and Technology Co Ltd: BP 440BSW" }, |
1089 | | { 0x2858, "Eurolumen shanghai Lighting Co LTD: s100" }, |
1090 | | { 0x2859, "Total Light: Etherstrip 8" }, |
1091 | | { 0x285A, "Total Light: Ether Dual A" }, |
1092 | | { 0x285B, "Total Light: Ether Dual B" }, |
1093 | | { 0x285C, "Infinity: iW 1240" }, |
1094 | | { 0x285D, "Infinity: iW 740" }, |
1095 | | { 0x285E, "Infinity: iW 340" }, |
1096 | | { 0x285F, "Digital Sputnik Lighting Oü: DSL3" }, |
1097 | | { 0x2860, "Digital Sputnik Lighting Oü: DSL2" }, |
1098 | | { 0x2861, "Visual Productions: IoCore2" }, |
1099 | | { 0x2862, "Visual Productions: TimeCore" }, |
1100 | | { 0x2863, "Bright Sound: Bright Mapper" }, |
1101 | | { 0x2864, "atit no: NorseDMX Wi Fi Node II" }, |
1102 | | { 0x2865, "Tian Hai BeiFang: AMX" }, |
1103 | | { 0x2866, "Starlight: XNET 8" }, |
1104 | | { 0x2867, "Starlight: XNET 4" }, |
1105 | | { 0x2868, "Starlight: XNET 2" }, |
1106 | | { 0x2869, "Xian NovaStar Tech Co Ltd: NOVA DMX11" }, |
1107 | | { 0x286A, "LED concept: SWITCHMAN 2 1" }, |
1108 | | { 0x286B, "LED concept: SWITCHMAN 4 1" }, |
1109 | | { 0x286C, "LED concept: SWITCHMAN 0 4" }, |
1110 | | { 0x286D, "LED concept: SWITCHMAN 3 1" }, |
1111 | | { 0x286E, "LED concept: SWITCHMAN 1 1" }, |
1112 | | { 0x286F, "LED concept: SWITCHMAN 8" }, |
1113 | | { 0x2870, "LED concept: SWITCHMAN 2" }, |
1114 | | { 0x2871, "LED concept: SWITCHMAN 2a" }, |
1115 | | { 0x2872, "LED concept: SWITCHMAN 1" }, |
1116 | | { 0x2873, "LED concept: SWITCHMAN 4" }, |
1117 | | { 0x2874, "PXM: Px724" }, |
1118 | | { 0x2875, "Showtec: Pixel Tube Set 96" }, |
1119 | | { 0x2876, "Showtec: NET 8 3" }, |
1120 | | { 0x2877, "Showtec: NET 8 5" }, |
1121 | | { 0x2878, "Showtec: NET 8 3a" }, |
1122 | | { 0x2879, "Showtec: RT 200" }, |
1123 | | { 0x287A, "OpenLX SP Ltd: EasyDMX" }, |
1124 | | { 0x287B, "Signblazer Ltd: SopraText" }, |
1125 | | { 0x287C, "Sam light: Forte 150" }, |
1126 | | { 0x287D, "Yarilo Pro: LANdmx4" }, |
1127 | | { 0x287E, "Key Delfin: WI Net 1" }, |
1128 | | { 0x287F, "Key Delfin: RJ Net 1" }, |
1129 | | { 0x2880, "Illum Technology LLC: Xstream" }, |
1130 | | { 0x2881, "Jjj: Bou" }, |
1131 | | { 0x2882, "GIP Innovation Tools: LIGEO Gateway" }, |
1132 | | { 0x2883, "EastSun Technology CO Ltd: NET4D01" }, |
1133 | | { 0x2884, "EastSun Technology CO Ltd: NET1D01" }, |
1134 | | { 0x2885, "Amptown System Company: ControLite VIGOR DINRail Switch" }, |
1135 | | { 0x2886, "Elation Professional: 4 Cast DMX Bridge" }, |
1136 | | { 0x2887, "WLPS: Remote FollowSpot" }, |
1137 | | { 0x2888, "ADDiCTiON bOx: FrEEdOsE WLaN" }, |
1138 | | { 0x2889, "ADDiCTiON bOx: FuLLdOsE 8 Port" }, |
1139 | | { 0x288A, "ADDiCTiON bOx: TrUssdOsE 4 Port" }, |
1140 | | { 0x288B, "ADDiCTiON bOx: HaLFdOsE 4 Port" }, |
1141 | | { 0x288C, "ADDiCTiON bOx: HaLFdOsE 8 Port" }, |
1142 | | { 0x288D, "Kontrolcla Show Control S L: Rdm assistant" }, |
1143 | | { 0x288E, "Integrated System Technologies Limited: Thor 8" }, |
1144 | | { 0x288F, "Integrated System Technologies Limited: Thor8" }, |
1145 | | { 0x2890, "Yarilo Pro: LANdmx2" }, |
1146 | | { 0x2891, "HMB TEC GmbH: RR512" }, |
1147 | | { 0x2892, "HMB TEC GmbH: CC512" }, |
1148 | | { 0x2893, "ElectroTAS: TH 8U" }, |
1149 | | { 0x2894, "ElectroTAS: TH 6U" }, |
1150 | | { 0x2895, "electroTAS: TH 4U" }, |
1151 | | { 0x2896, "ElectroTAS: TH 2U" }, |
1152 | | { 0x2897, "ElectroTAS: TH 1U" }, |
1153 | | { 0x2898, "showjockey: SJ DMX E16" }, |
1154 | | { 0x2899, "Qdot Lighting Limited: QNET 16W" }, |
1155 | | { 0x289A, "Qdot Lighting Limited: QNET 8W" }, |
1156 | | { 0x289B, "Qdot Lighting Limited: QNET 2048" }, |
1157 | | { 0x289C, "Qdot Lighting Limited: QNET 1024" }, |
1158 | | { 0x289D, "Chauvet Professional: NET X 2 0" }, |
1159 | | { 0x289E, "Elation Lighting: eNode 2 POE" }, |
1160 | | { 0x289F, "LEON: LEONGRECO" }, |
1161 | | { 0x28A0, "ElectroTAS: TH AIO" }, |
1162 | | { 0x28A1, "AK LIGHT: DMX 4" }, |
1163 | | { 0x28A2, "LIGHTSKY: DMX BOX" }, |
1164 | | { 0x28A3, "CLAYPAKY: SCENIUS UNICO" }, |
1165 | | { 0x28A4, "AB DMX: A512 node" }, |
1166 | | { 0x28A5, "NuDelta Digital: LogiCue" }, |
1167 | | { 0x28A6, "iColor Led Shenzhen Co Ltd: SC1712" }, |
1168 | | { 0x28A7, "iColor Led Shenzhen Co Ltd: SC1711" }, |
1169 | | { 0x28A8, "Elation Professional: Show Designer" }, |
1170 | | { 0x28A9, "UNT: SLNS" }, |
1171 | | { 0x28AA, "X Laser: Mercury" }, |
1172 | | { 0x28AB, "LuxCena Iumina: LuxCena WiFi DMX" }, |
1173 | | { 0x28AC, "BRITEQ: BT NODE24" }, |
1174 | | { 0x28AD, "TLS INTERNATIONAL: TLS DIGITAL PIXEL CONTROLLER" }, |
1175 | | { 0x28AE, "Apollo Security: ENI 110" }, |
1176 | | { 0x28AF, "Showtacle Ltd: SPI Matrix" }, |
1177 | | { 0x28B0, "Showtacle Ltd: LEC3" }, |
1178 | | { 0x28B1, "Argent Data Systems Inc: Hyperion Hoop" }, |
1179 | | { 0x28B2, "EQUIPSON S A: LS Core" }, |
1180 | | { 0x28B3, "CLAYPAKY: AXCOR SPOT HPE 300" }, |
1181 | | { 0x28B4, "EQUIPSON S A: WORK LS 1" }, |
1182 | | { 0x28B5, "CLAYPAKY: AXCOR WASH 300" }, |
1183 | | { 0x28B6, "CLAYPAKY: AXCOR BEAM 300" }, |
1184 | | { 0x28B7, "CLAYPAKY: ALEDA K EYE K20 HCR" }, |
1185 | | { 0x28B8, "CLAYPAKY: ALEDA K EYE K10 HCR" }, |
1186 | | { 0x28B9, "CLAYPAKY: AXCOR PROFILE 900 3K" }, |
1187 | | { 0x28BA, "CLAYPAKY: AXCOR PROFILE 900 6K" }, |
1188 | | { 0x28BB, "CLAYPAKY: AXCOR PROFILE 900 8K" }, |
1189 | | { 0x28BC, "LIGHTSKY: LED0760" }, |
1190 | | { 0x28BD, "LIGHTSKY: LED0960" }, |
1191 | | { 0x28BE, "Elation Lighting: Pixel Driver 4000" }, |
1192 | | { 0x28BF, "Voidcorp: VirtualPanel" }, |
1193 | | { 0x28C0, "AUTOLUX Handels und ProduktionsgmbH: ALX MEDIAWALL" }, |
1194 | | { 0x28C1, "Swisson AG: XND 8" }, |
1195 | | { 0x28C2, "LumenRadio: ARRI Skylink Base Station" }, |
1196 | | { 0x28C3, "Cameo: EVOS W7" }, |
1197 | | { 0x28C4, "Cameo: EVOS S3" }, |
1198 | | { 0x28C5, "Infinity: TF 300 Fresnel" }, |
1199 | | { 0x28C6, "Infinity: TS 200C7 Profile" }, |
1200 | | { 0x28C7, "Infinity: TS 300 Profile" }, |
1201 | | { 0x28C8, "Infinity: TS 150 Profile" }, |
1202 | | { 0x28C9, "Illum Technology LLC: XStream" }, |
1203 | | { 0x28CA, "Biamino and Figli S p A: BIALEDA01" }, |
1204 | | { 0x28CB, "Shenzhen Yuming Vision Technology Co Ltd: YM RX803" }, |
1205 | | { 0x28CC, "ADJ Products: Par Z100 5K" }, |
1206 | | { 0x28CD, "ADJ Products: Par Z100 3K" }, |
1207 | | { 0x28CE, "ADJ Products: VIZI CMY 300" }, |
1208 | | { 0x28CF, "Stage Team: MagicNode" }, |
1209 | | { 0x28D0, "GLP German Light Products GmbH: Impression S350" }, |
1210 | | { 0x28D1, "CLAYPAKY: K EYE S10 HCR" }, |
1211 | | { 0x28D2, "CLAYPAKY: K EYE S20 HCR" }, |
1212 | | { 0x28D3, "Steinigke Showtechnic GmbH: Sunbar 10" }, |
1213 | | { 0x28D4, "ERAL s r l: Paseo Pixel Box Controller" }, |
1214 | | { 0x28D5, "Savant Systems LLC: SmartDMX" }, |
1215 | | { 0x28D6, "BOOQlight BV: WiFi DMX RDM Module" }, |
1216 | | { 0x28D7, "Dynamic Projection Institute Herstellungs und Vertriebs GmbH: JCD" }, |
1217 | | { 0x28D8, "Conceptinectics Technologies and Consultancy Limited: CTC NEXT" }, |
1218 | | { 0x28D9, "Conceptinetics Technologies and Consultancy Limited: CTC MUFIC" }, |
1219 | | { 0x28DA, "Elation Lighting: Eclipse" }, |
1220 | | { 0x28DB, "Jumptronic GmbH: ProtocolController" }, |
1221 | | { 0x28DC, "Acme: Acme LED" }, |
1222 | | { 0x28DD, "Acme: Acme LS" }, |
1223 | | { 0x28DE, "Acme: Acme MP" }, |
1224 | | { 0x28DF, "Acme: Acme CM" }, |
1225 | | { 0x28E0, "Acme: Acme TS" }, |
1226 | | { 0x28E1, "Acme: Acme XA" }, |
1227 | | { 0x28E2, "Acme: Acme XP" }, |
1228 | | { 0x28E3, "Acme: CM S6" }, |
1229 | | { 0x28E4, "Acme: XP 1000FS" }, |
1230 | | { 0x28E5, "Acme: XP 1000SZF" }, |
1231 | | { 0x28E6, "Acme: XP 5000NF" }, |
1232 | | { 0x28E7, "Acme: XP 5000WZ" }, |
1233 | | { 0x28E8, "Acme: TS 150M WW CW" }, |
1234 | | { 0x28E9, "Acme: TS 150 WW CW" }, |
1235 | | { 0x28EA, "Acme: TS 300 WW CW" }, |
1236 | | { 0x28EB, "Acme: TS 300 WW C" }, |
1237 | | { 0x28EC, "Acme: TS 300M WW CW" }, |
1238 | | { 0x28ED, "Acme: LED MTX36 HEX" }, |
1239 | | { 0x28EE, "Acme: LED MTX36" }, |
1240 | | { 0x28EF, "Acme: LP F2000" }, |
1241 | | { 0x28F0, "Acme: LP F1000" }, |
1242 | | { 0x28F1, "Acme: XP 1000WZ" }, |
1243 | | { 0x28F2, "Music Lights S R L: DIAMOND37" }, |
1244 | | { 0x28F3, "Music Lights S R L: STARK1000" }, |
1245 | | { 0x28F4, "Steinigke Showtechnic GmbH: EYE 37" }, |
1246 | | { 0x28F5, "Acme: TB 1230QW" }, |
1247 | | { 0x28F6, "ABLELITE INTERNATIONAL: EVA3715Z" }, |
1248 | | { 0x28F7, "ADJ PRODUCTS: VIZI WASH PRO" }, |
1249 | | { 0x28F8, "Vsevolod Kozlov: Show Box" }, |
1250 | | { 0x28F9, "Tom Bland: Q SYS Plugin" }, |
1251 | | { 0x28FA, "Kinescope: Bridge" }, |
1252 | | { 0x28FB, "SLS: atmani" }, |
1253 | | { 0x28FC, "Daniel Large: STATIS" }, |
1254 | | { 0x28FD, "Douglas Heriot: DMX Assistant" }, |
1255 | | { 0x28FE, "Douglas Heriot: Diode Control" }, |
1256 | | { 0x28FF, "ADJ PRODUCTS: ENCORE BURST 200b" }, |
1257 | | { 0x2900, "Integrated System Technologies Ltd: Quattro CVL" }, |
1258 | | { 0x2901, "Integrated System Technologies Ltd: iDrive Thor 4" }, |
1259 | | { 0x2902, "Jata Tech Ltd: FX Engine" }, |
1260 | | { 0x2903, "Integrated System Technologies Ltd: iDrive White knight 24" }, |
1261 | | { 0x2904, "Integrated System Technologies Ltd: iDrive White knight 48" }, |
1262 | | { 0x2905, "X Laser: Skywriter HPX M 20" }, |
1263 | | { 0x2906, "X Laser: Skywriter HPX M 10" }, |
1264 | | { 0x2907, "X Laser: Skywriter HPX M 5" }, |
1265 | | { 0x2908, "margau: dmxnet" }, |
1266 | | { 0x2909, "feno GmbH: fe stile 1312 LED Matrix" }, |
1267 | | { 0x290A, "Steinigke Showtechnic GmbH: Stage Pixel Bar 10 WW" }, |
1268 | | { 0x290B, "ADJ Products: Encore Burst 200" }, |
1269 | | { 0x290C, "Key Lab: BlackTrax Extender" }, |
1270 | | { 0x290D, "DJSI SCHINSTAD: Northern Star Polaris v1 5" }, |
1271 | | { 0x290E, "ADB STAGELIGHT: LEXPERT FRESNEL M WW" }, |
1272 | | { 0x290F, "ADB STAGELIGHT: LEXPERT FRESNEL M CW" }, |
1273 | | { 0x2910, "ADB STAGELIGHT: LEXPERT PROFILE L WW" }, |
1274 | | { 0x2911, "ADB STAGELIGHT: LEXPERT PROFILE L CW" }, |
1275 | | { 0x2912, "ADB STAGELIGHT: LEXPERT PROFILE L" }, |
1276 | | { 0x2913, "ChengDuChenyuDianZiKeji: DMX2048CH PRO1" }, |
1277 | | { 0x2914, "ChengDuChenyuDianZiKeji: DMX2048CH PRO2" }, |
1278 | | { 0x2915, "MLBA Team: Stagehand Live" }, |
1279 | | { 0x2916, "Acme: XA 1000F" }, |
1280 | | { 0x2917, "xuri: xur" }, |
1281 | | { 0x2918, "Infinity: FURION S601 PROFILE" }, |
1282 | | { 0x2919, "Infinity: FURION S401 SPOT" }, |
1283 | | { 0x291A, "Infinity: FURION S201 SPOT" }, |
1284 | | { 0x291B, "Steinigke Showtechnic GmbH: DMX AIO" }, |
1285 | | { 0x291C, "HYCL: DMX_SYNC" }, |
1286 | | { 0x291D, "HYCL: DMX_Player_32" }, |
1287 | | { 0x291E, "HYCL: DMX_Player_16" }, |
1288 | | { 0x291F, "HYCL: DMX_Player_8" }, |
1289 | | { 0x2920, "HYCL: DMX_Player_1" }, |
1290 | | { 0x2921, "HYCL: DMX_Player_4" }, |
1291 | | { 0x2922, "ainetauto: LJ" }, |
1292 | | { 0x2923, "ADJ Products: Par Z100 RGBW" }, |
1293 | | { 0x2924, "LEDBLADE: Creon HD" }, |
1294 | | { 0x2925, "Guangzhou Chaoran Computer Co Ltd: EtherNode8" }, |
1295 | | { 0x2926, "German Light Products GmbH: impression E350" }, |
1296 | | { 0x2927, "Arrigo Lighting: AL A4RGB" }, |
1297 | | { 0x2928, "Rosstech Signals: Smart16" }, |
1298 | | { 0x2929, "Arrigo Lighting: Arrigo Lighting Liberty 22" }, |
1299 | | { 0x292A, "Matthias Bauch Software: LiveLight" }, |
1300 | | { 0x292B, "JB Lighting Lichtanlagentechnik GmbH: JB LightingFixtureNode" }, |
1301 | | { 0x292C, "Bandhaus Straubing eV: Wireless2DMX Bridge" }, |
1302 | | { 0x292D, "ETC Audiovisuel: OnlyView" }, |
1303 | | { 0x292E, "RGBlink: TTWO" }, |
1304 | | { 0x292F, "RGBlink: TONE" }, |
1305 | | { 0x2930, "RGBlink: FLEX 256" }, |
1306 | | { 0x2931, "RGBlink: FLEX 128" }, |
1307 | | { 0x2932, "RGBlink: FLEX 64" }, |
1308 | | { 0x2933, "RGBlink: FLEX 32" }, |
1309 | | { 0x2934, "RGBlink: FLEX 16" }, |
1310 | | { 0x2935, "RGBlink: FLEX 8" }, |
1311 | | { 0x2936, "RGBlink: FLEX RS1" }, |
1312 | | { 0x2937, "RGBlink: FLEX 4" }, |
1313 | | { 0x2938, "ADJ Products: Flash Kling Strip" }, |
1314 | | { 0x2939, "ADJ Products: Flash Kling Batten" }, |
1315 | | { 0x293A, "Elation Lighting: EZ Kling" }, |
1316 | | { 0x293B, "Qdot Lighting Limited: QNET APP" }, |
1317 | | { 0x293C, "X Laser: Mobile Beat Mercury" }, |
1318 | | { 0x293D, "X Laser: Skywriter HPX M_2" }, |
1319 | | { 0x293E, "dbnetsoft: VirtualDmxLib" }, |
1320 | | { 0x293F, "JCSKJ: JC_Controller_X" }, |
1321 | | { 0x2940, "ADB STAGELIGHT: KLEMANTIS AS500" }, |
1322 | | { 0x2941, "ADB STAGELIGHT: KLEMANTIS AS1000" }, |
1323 | | { 0x2942, "CLAYPAKY: AXCOR SPOT 400 HC" }, |
1324 | | { 0x2943, "CLAYPAKY: AXCOR SPOT 400" }, |
1325 | | { 0x2944, "CLAYPAKY: AXCOR PROFILE 400 HC" }, |
1326 | | { 0x2945, "CLAYPAKY: AXCOR PROFILE 400" }, |
1327 | | { 0x2946, "CLAYPAKY: AXCOR PROFILE 600 HC" }, |
1328 | | { 0x2947, "CLAYPAKY: AXCOR PROFILE 600" }, |
1329 | | { 0x2948, "Luminxa: Luminxa1" }, |
1330 | | { 0x2949, "Luminxa: Luminxa2" }, |
1331 | | { 0x294A, "audioligh: HD217 1" }, |
1332 | | { 0x294B, "audioligh: HD217 2" }, |
1333 | | { 0x294C, "KWMATIK: PROMYK v1 0" }, |
1334 | | { 0x294D, "Rnet Lighting technology limited: R NET DMX Rack" }, |
1335 | | { 0x294E, "Astera LED Technology GmbH: 10way Titan Powersupply" }, |
1336 | | { 0x294F, "Buehler electronic GmbH LSdigital: DMX Light Interface" }, |
1337 | | { 0x2950, "atomica peru: arri skypanel" }, |
1338 | | { 0x2951, "GIP Innovation Tools GmbH: LIGEO SL WiFi" }, |
1339 | | { 0x2952, "Rethink DMX: node1" }, |
1340 | | { 0x2953, "Elation Lighting: CUEPIX PANEL" }, |
1341 | | { 0x2954, "Elation Lighting: SIXBAR 1000" }, |
1342 | | { 0x2955, "Elation Lighting: SEVEN BATTEN 72" }, |
1343 | | { 0x2956, "Hera Led: Hera Ether Node4" }, |
1344 | | { 0x2957, "Chauvet Professional: Rogue R1 FXB" }, |
1345 | | { 0x2958, "Chauvet Professional: Maverick MK 1 Hybrid" }, |
1346 | | { 0x2959, "Chauvet Professional: Maverick MK Pyxis" }, |
1347 | | { 0x295A, "Chauvet Professional: Maverick MK2 Profile" }, |
1348 | | { 0x295B, "Chauvet Professional: Maverick MK3 Wash" }, |
1349 | | { 0x295C, "Chauvet Professional: Maverick MK2 Wash" }, |
1350 | | { 0x295D, "Chauvet Professional: Maverick MK1 Spot" }, |
1351 | | { 0x295E, "SSG Technology Ltd: SD980 AN" }, |
1352 | | { 0x295F, "LKE Lasershow: Frequency Unit" }, |
1353 | | { 0x2960, "JUAN FRANCISCO CAMPOS SAA: BM LIGHTS 1 UNIVERSE" }, |
1354 | | { 0x2961, "Zboxes Intelligent Technology Shanghai Co Ltd: Zboxes 8" }, |
1355 | | { 0x2962, "Guangzhou Ming Jing Stage Light: King Kong Controller" }, |
1356 | | { 0x2963, "Fiberli: Node8X" }, |
1357 | | { 0x2964, "GLP German Light Products GmbH: KNV Arc" }, |
1358 | | { 0x2965, "GLP German Light Products GmbH: KNV Cube" }, |
1359 | | { 0x2966, "SmartShow UK: NetTWIN" }, |
1360 | | { 0x2967, "SmartShow UK: AirDMXout" }, |
1361 | | { 0x2968, "SmartShow UK: AirPixel Quad" }, |
1362 | | { 0x2969, "SmartShow UK: AirPixel Mini" }, |
1363 | | { 0x296A, "SmartShow UK: AirPixel Micro" }, |
1364 | | { 0x296B, "SmartShow UK: NetPixel Quad" }, |
1365 | | { 0x296C, "SmartShow UK: NetWS 2040" }, |
1366 | | { 0x296D, "SmartShow UK: NetWS 340" }, |
1367 | | { 0x296E, "SmartShow UK: NetBuddy" }, |
1368 | | { 0x296F, "SmartShow UK: NetDMX" }, |
1369 | | { 0x2970, "Pulsar: Node1" }, |
1370 | | { 0x2971, "PXM: Px760" }, |
1371 | | { 0x2972, "PXM: Px314" }, |
1372 | | { 0x2973, "Ambion Gmbh Ambrain: Flex Led Gate" }, |
1373 | | { 0x2974, "Guangzhou ChaiYi Light CO Ltd: DMXGate" }, |
1374 | | { 0x2975, "Digital Projection: Titan Laser Projector" }, |
1375 | | { 0x2976, "CLAYPAKY: ALEDA BEAM 200" }, |
1376 | | { 0x2977, "CLAYPAKY: SHARPY PLUS" }, |
1377 | | { 0x2978, "Chauvet Professional: Epix Flex Drive" }, |
1378 | | { 0x2979, "Arrigo Lighting: AL WS2812B" }, |
1379 | | { 0x297A, "Roleds: RTG180" }, |
1380 | | { 0x297B, "Audiowerk: LC1" }, |
1381 | | { 0x297C, "NOVA: LED" }, |
1382 | | { 0x297D, "Martin: MAC Allure Profile" }, |
1383 | | { 0x297E, "Lifetime Music Academy: Light SPECTRUM" }, |
1384 | | { 0x297F, "City Theatrical: Multiverse Gateway" }, |
1385 | | { 0x2980, "City Theatrical: Multiverse Transmitter" }, |
1386 | | { 0x2981, "Rosstech Signals: MatrixView" }, |
1387 | | { 0x2982, "CLAYPAKY: AXCOR PROFILE 900 6K LN" }, |
1388 | | { 0x2983, "CLAYPAKY: AXCOR PROFILE 900 8K LN" }, |
1389 | | { 0x2984, "CLAYPAKY: HY_B EYE K25" }, |
1390 | | { 0x2985, "CLAYPAKY: HY_B EYE K15" }, |
1391 | | { 0x2986, "D5 systems: Lighting Network Toolset" }, |
1392 | | { 0x2987, "ADB STAGELIGHT: OKSALIS FL20" }, |
1393 | | { 0x2988, "ADB STAGELIGHT: OKSALIS FL10" }, |
1394 | | { 0x2989, "CLAYPAKY: AXCOR WASH 600 HC" }, |
1395 | | { 0x298A, "CLAYPAKY: AXCOR WASH 600" }, |
1396 | | { 0x298B, "CLAYPAKY: AXCOR PROFILE 600 HC ST" }, |
1397 | | { 0x298C, "CLAYPAKY: AXCOR PROFILE 600 ST" }, |
1398 | | { 0x298D, "atmosphere media gmbH: atmosphere media player" }, |
1399 | | { 0x298E, "DTS Illuminazione srl: DRIVENET 1664" }, |
1400 | | { 0x298F, "DTS Illuminazione srl: DRIVENET 416 POWER" }, |
1401 | | { 0x2990, "DTS Illuminazione srl: DRIVENET 416" }, |
1402 | | { 0x2991, "DTS Illuminazione srl: DRIVENET 832 POWER" }, |
1403 | | { 0x2992, "DTS Illuminazione srl: DRIVENET 832" }, |
1404 | | { 0x2993, "DTS Illuminazione srl: SYNERGY 5 SPOT" }, |
1405 | | { 0x2994, "DTS Illuminazione srl: SYNERGY 5 PROFILE" }, |
1406 | | { 0x2995, "Guangzhou JinZhiHui Electronic Technology Co: TOP 1440 LED RGB STROBE" }, |
1407 | | { 0x2996, "Creative Lighting: eDIDIO 8 pole" }, |
1408 | | { 0x2997, "Creative Lighting: eDIDIO 4 pole" }, |
1409 | | { 0x2998, "ADB STAGELIGHT: ORKIS FOCUS SPOT" }, |
1410 | | { 0x2999, "Waves System: Event Video Player" }, |
1411 | | { 0x299A, "SQD lighting Co Limited: LED lighting fixtures series" }, |
1412 | | { 0x299B, "BSL BV: Epikon" }, |
1413 | | { 0x299C, "Shenzhen Lei Fei Lighting Technology Co Ltd: LiteMeta Controller 2" }, |
1414 | | { 0x299D, "Shenzhen Lei Fei Lighting Technology Co Ltd: LiteMeta Controller 16" }, |
1415 | | { 0x299E, "Shenzhen Lei Fei Lighting Technology Co Ltd: LiteMeta Controller 8" }, |
1416 | | { 0x299F, "Pulsar: Luxinode" }, |
1417 | | { 0x29A0, "Integrated System Technology Ltd: White Knight 24 Emergency" }, |
1418 | | { 0x29A1, "Integrated System Technology Ltd: White Knight 36_1600" }, |
1419 | | { 0x29A2, "EMP Designs Ltd: EMP1" }, |
1420 | | { 0x29A3, "MCINTIRE ENTERPRISES INC: 24 CH Dimmer" }, |
1421 | | { 0x29A4, "AMOLVIN: DMX NODE" }, |
1422 | | { 0x29A5, "Guangzhou HuaYong Intelligent Technology Co Ltd: HuaYong Controller" }, |
1423 | | { 0x29A6, "Philips Controller 32: Signify China Investment Co Ltd" }, |
1424 | | { 0x29A7, "Signify Investment Co Ltd: Philips Controller 24" }, |
1425 | | { 0x29A8, "Signify Investment Co Ltd: Philips Controller 16" }, |
1426 | | { 0x29A9, "Signify Investment Co Ltd: Philips Controller 8" }, |
1427 | | { 0x29AA, "Signify Investment Co Ltd: Philips Controller 2" }, |
1428 | | { 0x29AB, "ER Productions: ER Display V1" }, |
1429 | | { 0x29AC, "Shenzhen Leifei Lighting Technology Co Ltd: LiteMeta Controller 32" }, |
1430 | | { 0x29AD, "Impolux GmbH: ULTIM8 ST16 O" }, |
1431 | | { 0x29AE, "Martin Professional: MAC Allure Wash PC" }, |
1432 | | { 0x29AF, "Shenzhen Leifei Lighting Technology Co Ltd: LiteMeta Controller 24" }, |
1433 | | { 0x29B0, "Guangzhou ChaiYi Light CO Ltd: TEKMAND Node" }, |
1434 | | { 0x29B1, "Alex Sagias: PixLed" }, |
1435 | | { 0x29B2, "GLP German Light Products GmbH: Highlander" }, |
1436 | | { 0x29B3, "Edelmann Electronics: Enigma2Kxx" }, |
1437 | | { 0x29B4, "PR LIGHTING LTD: PR Lighting 1" }, |
1438 | | { 0x29B5, "Wiktor Kaluzny: DMX BOX" }, |
1439 | | { 0x29B6, "GLP German Light Products GmbH: Impression W350" }, |
1440 | | { 0x29B7, "nox multimedia GmbH: NAN 8" }, |
1441 | | { 0x29B8, "ON LX Limited: Ctrl" }, |
1442 | | { 0x29B9, "HYCL: DMX Player Super 4" }, |
1443 | | { 0x29BA, "HYCL: DMX Player Super 8" }, |
1444 | | { 0x29BB, "HYCL: DMX Player Super 16" }, |
1445 | | { 0x29BC, "Guangzhou ChaiYi Light CO Ltd: TEKMAND Node 4P OD" }, |
1446 | | { 0x29BD, "Guangzhou ChaiYi Light CO Ltd: TEKMAND Node 8P" }, |
1447 | | { 0x29BE, "Guangzhou ChaiYi Light CO Ltd: TEKMAND Node 4P" }, |
1448 | | { 0x29BF, "HYCL: dmx player 512" }, |
1449 | | { 0x29C0, "HYCL: dmx player 256" }, |
1450 | | { 0x29C1, "HYCL: dmx player 64" }, |
1451 | | { 0x29C2, "HYCL: dmx player 2" }, |
1452 | | { 0x29C3, "PR LIGHTING LTD: PR Lighting 2" }, |
1453 | | { 0x29C4, "Spacelights: spacenet1i" }, |
1454 | | { 0x29C5, "Spacelights: spacenet2o" }, |
1455 | | { 0x29C6, "Event Imagineering Group: ShowKontrol" }, |
1456 | | { 0x29C7, "Brink Ventures LLC: Blackout Lighting Console" }, |
1457 | | { 0x29C8, "Integrated System Technology Ltd: White Knight 48 DC" }, |
1458 | | { 0x29C9, "Integrated System Technology Ltd: White Knight 24 DC" }, |
1459 | | { 0x29CA, "Integrated System Technology Ltd: Thor16 Silent 500W" }, |
1460 | | { 0x29CB, "Integrated System Technology Ltd: White Knight 24 Silent 500W" }, |
1461 | | { 0x29CC, "THELIGHT Luminary for Cine and TV SL: EVO 2x2 STUDIO" }, |
1462 | | { 0x29CD, "THELIGHT Luminary for Cine and TV SL: EVO 2x2 WEATHERPROOF" }, |
1463 | | { 0x29CE, "THELIGHT Luminary for Cine and TV SL: EVO 2 STUDIO" }, |
1464 | | { 0x29CF, "THELIGHT Luminary for Cine and TV SL: EVO 2 WEATHERPROOF" }, |
1465 | | { 0x29D0, "THELIGHT Luminary for Cine and TV SL: EVO 1 STUDIO" }, |
1466 | | { 0x29D1, "THELIGHT Luminary for Cine and TV SL: EVO 1 WEATHERPROOF" }, |
1467 | | { 0x29D2, "Exacta: CCL PC" }, |
1468 | | { 0x29D3, "Light Converse Ltd: LIGHTCONVERSE TOOLS" }, |
1469 | | { 0x29D4, "Lumos Design: Lumos Node 4" }, |
1470 | | { 0x29D5, "CLAYPAKY: XTYLOS" }, |
1471 | | { 0x29D6, "SZe Schneider Zirr engineering GmbH: CF Player A FullHD2 0" }, |
1472 | | { 0x29D7, "VL software: Arthur Maxi" }, |
1473 | | { 0x29D8, "eX Systems: RGB Floodlight" }, |
1474 | | { 0x29D9, "DCLX Ltd: Pixel Sabre" }, |
1475 | | { 0x29DA, "HDL: DMXNode8" }, |
1476 | | { 0x29DB, "Luminex Lighting Control Equipment: LumiNode 12" }, |
1477 | | { 0x29DC, "Luminex Lighting Control Equipment: LumiNode 4" }, |
1478 | | { 0x29DD, "Luminex Lighting Control Equipment: LumiNode 2" }, |
1479 | | { 0x29DE, "Luminex lighting Control Equipment: LumiNode 1" }, |
1480 | | { 0x29DF, "MaNiMa Technologies BV: MaNiMa LED interface" }, |
1481 | | { 0x29E0, "xinqidian: ganelight" }, |
1482 | | { 0x29E1, "LIGHTLINE Lasertechnik GmbH: Laserlink" }, |
1483 | | { 0x29E2, "HYCL: BootLoader" }, |
1484 | | { 0x29E3, "Disguise: Disguise Production Toolkit" }, |
1485 | | { 0x29E4, "Equivalent: LSEthernetToDMX" }, |
1486 | | { 0x29E5, "Equivalent: EtherConDMX8" }, |
1487 | | { 0x29E6, "Equivalent: LSDW_2435E" }, |
1488 | | { 0x29E7, "Equivalent: LSDR 123E" }, |
1489 | | { 0x29E8, "Equivalent: LSDR 65E" }, |
1490 | | { 0x29E9, "Chauvet Lighting: Ovation B 1965FC" }, |
1491 | | { 0x29EA, "Chauvet Lighting: Ovation B 1965FC" }, |
1492 | | { 0x29EB, "WangMing: WangMing" }, |
1493 | | { 0x29EC, "ADJ PRODUCTS: ALLEGRO Z6" }, |
1494 | | { 0x29ED, "EQUIPSON S A: LSNODE4" }, |
1495 | | { 0x29EE, "EQUIPSON S A: LSNODE2" }, |
1496 | | { 0x29EF, "EQUIPSON S A: LSNODE1" }, |
1497 | | { 0x29F0, "Chauvet Professional: Maverick MK3 Profile CX" }, |
1498 | | { 0x29F1, "Chauvet Professional: Maverick MK3 Spot" }, |
1499 | | { 0x29F2, "Chauvet Professional: Maverick MK3 Profile" }, |
1500 | | { 0x29F3, "Chauvet Professional: Colorado Solo Batten 4" }, |
1501 | | { 0x29F4, "Chauvet Professional: Colorado Solo Batten" }, |
1502 | | { 0x29F5, "Light Converse Ltd: LIGTHCONVERSE TOOLS" }, |
1503 | | { 0x29F6, "DP Lumi: DP Lumi Pro" }, |
1504 | | { 0x29F7, "Martin Professional: VDO Atomic Dot WRM" }, |
1505 | | { 0x29F8, "Martin Professional: VDO Atomic Dot CLD" }, |
1506 | | { 0x29F9, "GLP German Light Products GmbH: KNV PSU" }, |
1507 | | { 0x29FA, "GLP German Light Products GmbH: Impression FR10 Bar" }, |
1508 | | { 0x29FB, "Guangzhou ChaiYi Light CO Ltd: Replay Server" }, |
1509 | | { 0x29FC, "DTS Illuminazione srl: Alchemy5" }, |
1510 | | { 0x29FD, "Vibesta BV: RTX1" }, |
1511 | | { 0x29FE, "Echoic Tech LLC: Mach1 LED Controller" }, |
1512 | | { 0x29FF, "GuangZhou Ming jing stage lighting equipment co LTD: KingKongBaton" }, |
1513 | | { 0x2A00, "Blue Ridge Concepts Inc: EladniDesktop" }, |
1514 | | { 0x2A01, "DTS Illuminazione srl: Alchemy3" }, |
1515 | | { 0x2A02, "Crew Light: VController" }, |
1516 | | { 0x2A03, "KappaStyle Productions: KappaNode2" }, |
1517 | | { 0x2A04, "Blinkinlabs: SuperSweet" }, |
1518 | | { 0x2A05, "Coretronic Corporation: Projector" }, |
1519 | | { 0x2A06, "Guangzhou ChaiYi Light CO Ltd: General Purpose Device" }, |
1520 | | { 0x2A07, "Sharp NEC Display Solutions LTD: Projector" }, |
1521 | | { 0x2A08, "Sharp NEC Display Solutions LTD: Flat Panel Display" }, |
1522 | | { 0x2A09, "WA Benjamin: PMP Power Metering Panel" }, |
1523 | | { 0x2A0A, "HYCL: IOT Update" }, |
1524 | | { 0x2A0B, "HYCL: RDM Player 1" }, |
1525 | | { 0x2A0C, "HYCL: RDM Player 2" }, |
1526 | | { 0x2A0D, "HYCL: RDM Player 4" }, |
1527 | | { 0x2A0E, "HYCL: RDM Player 8" }, |
1528 | | { 0x2A0F, "Elation Lighting: Pixel Driver 1000IP" }, |
1529 | | { 0x2A10, "Integrated System Technology Ltd: White Knight 12" }, |
1530 | | { 0x2A11, "Sigma Net: BlueDMX" }, |
1531 | | { 0x2A12, "BonKon: DMX Link Pro1" }, |
1532 | | { 0x2A13, "VANRAY: DMX LINK PRO" }, |
1533 | | { 0x2A14, "Chauvet Professional: Maverick Silens 2 Profile" }, |
1534 | | { 0x2A15, "Fiberli: Node4X" }, |
1535 | | { 0x2A16, "Ocular BVBA: Ocularium" }, |
1536 | | { 0x2A17, "Showtacle Ltd: THE UPGRADE" }, |
1537 | | { 0x2A18, "Showtacle Ltd: Moncha2" }, |
1538 | | { 0x2A19, "zhsj: Video control" }, |
1539 | | { 0x2A1A, "Archon: Archon Dev" }, |
1540 | | { 0x2A1B, "Tristan Leonid Zoltan Thiltges: Lightsculptures" }, |
1541 | | { 0x2A1C, "Elation Lighting: RDM 6XL" }, |
1542 | | { 0x2A1D, "Elation Lighting: RDM 645" }, |
1543 | | { 0x2A1E, "Elation Lighting: RDM 10" }, |
1544 | | { 0x2A1F, "Elation Lighting: EP4" }, |
1545 | | { 0x2A20, "Elation Lighting: EN4" }, |
1546 | | { 0x2A21, "Elation Lighting: EN12" }, |
1547 | | { 0x2A22, "Kyle Hensel: Node js API" }, |
1548 | | { 0x2A23, "Showart: DMXrecorder" }, |
1549 | | { 0x2A24, "ON LX Limited: CommsKit" }, |
1550 | | { 0x2A25, "Guangzhou ChaiYi Light CO Ltd: Air Gate" }, |
1551 | | { 0x2A26, "SmartShow UK: NetPixel ONE" }, |
1552 | | { 0x2A27, "SmartShow UK: AirPixel ONE" }, |
1553 | | { 0x2A28, "Pixout SIA: Pixout Controller" }, |
1554 | | { 0x2A29, "Steinigke Showtechnic GmbH: EYE 740" }, |
1555 | | { 0x2A2A, "ADJ Group: Pixie Driver 2K" }, |
1556 | | { 0x2A2B, "Belayingpin com: BPC Video Server" }, |
1557 | | { 0x2A2C, "Lucenti: Blackwave PixlDrive" }, |
1558 | | { 0x2A2D, "Integrated System Technologies: iDrive Workshop" }, |
1559 | | { 0x2A2E, "R S Schwarze Elektrotechnik Moderne Industrieelektronik GmbH: SG 4" }, |
1560 | | { 0x2A2F, "Sigma Net: Light Magic" }, |
1561 | | { 0x2A30, "Paulo Macedo: WIFIpixel" }, |
1562 | | { 0x2A31, "DATALED: DATALED NET" }, |
1563 | | { 0x2A32, "ADB STAGELIGHT: ORKIS PROFILE M" }, |
1564 | | { 0x2A33, "CLAYPAKY: REFLECTXION" }, |
1565 | | { 0x2A34, "Offstage Controls: Unlicensed OCPE" }, |
1566 | | { 0x2A35, "PXM: Px786" }, |
1567 | | { 0x2A36, "PXM: Px785" }, |
1568 | | { 0x2A37, "Suga koubou Co Ltd: DMX Recorder" }, |
1569 | | { 0x2A38, "CLAYPAKY: ALQIMYA" }, |
1570 | | { 0x2A39, "Offstage Controls: Kilo Gate I" }, |
1571 | | { 0x2A3A, "Offstage Controls: Kilo Gate O" }, |
1572 | | { 0x2A3B, "Offstage Controls: Kilo Gate IO" }, |
1573 | | { 0x2A3C, "JAH Audio Corp: JAH 8 Port Node" }, |
1574 | | { 0x2A3D, "JAH Audio Corp: JAH Lighting Engine" }, |
1575 | | { 0x2A3E, "ADJ Products: TrussHub U1" }, |
1576 | | { 0x2A3F, "Integrated System Technologies: Sentinel 24" }, |
1577 | | { 0x2A40, "BSL BV: PowerNode 8" }, |
1578 | | { 0x2A41, "BSL BV: Node 2" }, |
1579 | | { 0x2A42, "DTS Illuminazione srl: SYNERGY 7 PROFILE" }, |
1580 | | { 0x2A43, "DTS Illuminazione srl: ALCHEMY 7" }, |
1581 | | { 0x2A44, "LaserNet: LiveFeedback" }, |
1582 | | { 0x2A45, "Focus Technologies BV: Focus3D" }, |
1583 | | { 0x2A46, "Exalux: Connect Plus" }, |
1584 | | { 0x2A47, "Bafa Elektronik ve Isik Tasarimlari Sanayii Ticaret Sti: Zerolight16" }, |
1585 | | { 0x2A48, "Fiberli: Node2X" }, |
1586 | | { 0x2A49, "WizzuLED: Matrix LED Modules" }, |
1587 | | { 0x2A4A, "Kifo: Kifo Lightcontroller" }, |
1588 | | { 0x2A4B, "Digital Projection: Digital Projection Projector" }, |
1589 | | { 0x2A4C, "tx: plamp1" }, |
1590 | | { 0x2A4D, "tx: plamp2" }, |
1591 | | { 0x2A4E, "tongxinkeji: plamp3" }, |
1592 | | { 0x2A4F, "Kloeckner EDV Service BK Tec Audio: Audiostack" }, |
1593 | | { 0x2A50, "kuwatec Inc: Valencia" }, |
1594 | | { 0x2A51, "Luxeos Luminaires Ltd: Luxnode" }, |
1595 | | { 0x2A52, "ADJ PRODUCTS: HYDRO WASH X19" }, |
1596 | | { 0x2A53, "guangzhou hongcai stage equipment co ltd: x7 coupe" }, |
1597 | | { 0x2A54, "Zinc Event Production Ltd: Wireless LED controller" }, |
1598 | | { 0x2A55, "CLAYPAKY: HY B EYE K25 TEATRO" }, |
1599 | | { 0x2A56, "CLAYPAKY: AXCOR PROFILE 600 TEATRO" }, |
1600 | | { 0x2A57, "Luminex Lighting Control Equipment: LumiCore" }, |
1601 | | { 0x2A58, "Equivalent: LSSR 123E" }, |
1602 | | { 0x2A59, "Steinigke Showtechnic GmbH: Node IV" }, |
1603 | | { 0x2A5A, "Steinigke Showtechnic GmbH: Pixel Node II" }, |
1604 | | { 0x2A5B, "Steinigke Showtechnic GmbH: freeDMX AP" }, |
1605 | | { 0x2A5C, "Visual Productions: CueCore3" }, |
1606 | | { 0x2A5D, "Visual Productions: B Station2" }, |
1607 | | { 0x2A5E, "Visual Productions: DaliCore" }, |
1608 | | { 0x2A5F, "Litefocus: Node8" }, |
1609 | | { 0x2A60, "Litefocus: Node4" }, |
1610 | | { 0x2A61, "Litefocus: Node24" }, |
1611 | | { 0x2A62, "Litefocus: Node12" }, |
1612 | | { 0x2A63, "Litefocus: Node10" }, |
1613 | | { 0x2A64, "Litefocus: Node8a" }, |
1614 | | { 0x2A65, "Litefocus: Node4a" }, |
1615 | | { 0x2A66, "Litefocus: Node2" }, |
1616 | | { 0x2A67, "Litefocus: Node1" }, |
1617 | | { 0x2A68, "CLAYPAKY: XTYLOS AQUA" }, |
1618 | | { 0x2A69, "CLAYPAKY: AXCOR PROFILE 600 HC TEATRO" }, |
1619 | | { 0x2A6A, "Modern Stage Service Pvt Ltd: MSSP DMX4" }, |
1620 | | { 0x2A6B, "Chengdu Chengyu Electronic Technology Co Ltd: CYT LightShow Controller" }, |
1621 | | { 0x2A6C, "Chengdu Chengyu Electronic Technology Co Ltd: CYT LED Controller" }, |
1622 | | { 0x2A6D, "Chengdu Chengyu Electronic Technology Co Ltd: CYT DMX512 Controller" }, |
1623 | | { 0x2A6E, "stage design technology co Ltd nanchang: multifunction network processing unit" }, |
1624 | | { 0x2A6F, "LiteLEES: SUPER HERO 470 PRO" }, |
1625 | | { 0x2A70, "LiteLEES: BIG EYE L4025" }, |
1626 | | { 0x2A71, "LiteLEES: BIG EYE L4019" }, |
1627 | | { 0x2A72, "Dizzy D Productions: DAn Controller" }, |
1628 | | { 0x2A73, "Martin Professional: MAC Aura PXL" }, |
1629 | | { 0x2A74, "sziton: mess light" }, |
1630 | | { 0x2A75, "CLAYPAKY: AROLLA SPOT MP" }, |
1631 | | { 0x2A76, "CLAYPAKY: AROLLA PROFILE MP" }, |
1632 | | { 0x2A77, "CLAYPAKY: AROLLA PROFILE HP" }, |
1633 | | { 0x2A78, "CLAYPAKY: MIDIB" }, |
1634 | | { 0x2A79, "CLAYPAKY: TAMBORA BATTEN K25" }, |
1635 | | { 0x2A7A, "CLAYPAKY: MINIB PARLED AQUA" }, |
1636 | | { 0x2A7B, "CLAYPAKY: SHARPY PLUS AQUA" }, |
1637 | | { 0x2A7C, "Acme: TRUSSHUB U1" }, |
1638 | | { 0x2A7D, "Acme: LEO" }, |
1639 | | { 0x2A7E, "Acme: DARKMOON" }, |
1640 | | { 0x2A7F, "Acme: SILVERMOON" }, |
1641 | | { 0x2A80, "Acme: GEIST BSWF" }, |
1642 | | { 0x2A81, "Acme: GEIST BEAM" }, |
1643 | | { 0x2A82, "Acme: SUNRISE" }, |
1644 | | { 0x2A83, "Acme: TRUSSHUB U" }, |
1645 | | { 0x2A84, "Acme: TRUSSHUB S" }, |
1646 | | { 0x2A85, "Foshan YiFeng Electric Industrial Co ltd: SOLAR IMPULSE" }, |
1647 | | { 0x2A86, "MODUS: ARL 01 8CH RELAY" }, |
1648 | | { 0x2A87, "LSC Lighting Systems Aust Pty Ltd: MantraMini" }, |
1649 | | { 0x2A88, "LSC Lighting Systems Aust Pty Ltd: UniTour" }, |
1650 | | { 0x2A89, "LSC Lighting Systems Aust Pty Ltd: Unity" }, |
1651 | | { 0x2A8A, "ProtoPixel: 1 Channel WiFi Controller" }, |
1652 | | { 0x2A8B, "Integrated System Technology Limited: iMune multiGate" }, |
1653 | | { 0x2A8C, "ShoCobra: FX1" }, |
1654 | | { 0x2A8D, "ShoCobra: ELD4" }, |
1655 | | { 0x2A8E, "ROBERT JULIAT: CHARLES 960SX" }, |
1656 | | { 0x2A8F, "ROBERT JULIAT: DALIS 864" }, |
1657 | | { 0x2A90, "ROBERT JULIAT: DALIS 863" }, |
1658 | | { 0x2A91, "ROBERT JULIAT: TIBO HE 553" }, |
1659 | | { 0x2A92, "ROBERT JULIAT: SULLY 1156" }, |
1660 | | { 0x2A93, "ROBERT JULIAT: SULLY 305L" }, |
1661 | | { 0x2A94, "ROBERT JULIAT: SULLY 650SX" }, |
1662 | | { 0x2A95, "ROBERT JULIAT: ARTHUR 1014" }, |
1663 | | { 0x2A96, "Colordeve International: NETnode22" }, |
1664 | | { 0x2A97, "Colordeve International: NETnode14" }, |
1665 | | { 0x2A98, "Colordeve International: NETnode18" }, |
1666 | | { 0x2A99, "ShenZhen ChuanTian QuanCai Technology Co ltd: CT 3072 1CH" }, |
1667 | | { 0x2A9A, "ShenZhen ChuanTian QuanCai Technology Co ltd: CT 16384 16CH" }, |
1668 | | { 0x2A9B, "ShenZhen ChuanTian QuanCai Technology Co ltd: CT 8192 8CH" }, |
1669 | | { 0x2A9C, "jin ye Electronics: JY KZQ" }, |
1670 | | { 0x2A9D, "Paai: PAAI Ethernet node" }, |
1671 | | { 0x2A9E, "iion: MNM" }, |
1672 | | { 0x2A9F, "ALA Equipment Company Ltd: PowerNet" }, |
1673 | | { 0x2AA0, "ChromaTech: ThunderOne" }, |
1674 | | { 0x2AA1, "Aputure Imaging Industries Co Ltd: LS 600 LS 1500" }, |
1675 | | { 0x2AA2, "Aputure Imaging Industries Co Ltd: SQ NET" }, |
1676 | | { 0x2AA3, "Guangzhou Mingyan Electronic Technology Co Ltd: Mingyan motherboard" }, |
1677 | | { 0x2AA4, "Guangzhou Mingyan Electronic Technology Co Ltd: Par light motherboard" }, |
1678 | | { 0x2AA5, "Guangzhou Mingyan Electronic Technology Co Ltd: Wifi controller" }, |
1679 | | { 0x2AA6, "Fiilex: Fiilex Color" }, |
1680 | | { 0x2AA7, "Cameo: Evos W3" }, |
1681 | | { 0x2AA8, "Cameo: Opus H5" }, |
1682 | | { 0x2AA9, "Cameo: Opus X" }, |
1683 | | { 0x2AAA, "Cameo: Opus SP5 FC" }, |
1684 | | { 0x2AAB, "Cameo: XNODE 8" }, |
1685 | | { 0x2AAC, "cameo: Opus SP5" }, |
1686 | | { 0x2AAD, "Cameo: Opus S5" }, |
1687 | | { 0x2AAE, "Cameo: XNODE 4" }, |
1688 | | { 0x2AAF, "Chromatech: ThunderPanel" }, |
1689 | | { 0x2AB0, "AC Power Distribution ACT Lighting Inc: PDXND41" }, |
1690 | | { 0x2AB1, "AVW Controls Ltd: QAxis Stage automation integration with LX" }, |
1691 | | { 0x2AB2, "CPOINT: Ledogen" }, |
1692 | | { 0x2AB3, "CPOINT: DMXplorer" }, |
1693 | | { 0x2AB4, "Lichtmanufaktur Berlin GmbH: Casambi Gateway" }, |
1694 | | { 0x2AB5, "ShenZhen ChuanTian QuanCai Technology Co ltd: CT3276832CH" }, |
1695 | | { 0x2AB6, "Ether Dream: Ether Dream 2" }, |
1696 | | { 0x2AB7, "Chauvet Professional: Maverick MK3 Profile CX 2" }, |
1697 | | { 0x2AB8, "Chauvet Professional: Maverick Force 3 Spot" }, |
1698 | | { 0x2AB9, "Chauvet Professional: Maverick Force 3 Profile" }, |
1699 | | { 0x2ABA, "Chauvet Professional: Maverick Force 2 Profile" }, |
1700 | | { 0x2ABB, "Chauvet Professional: Maverick Force 1 Spot" }, |
1701 | | { 0x2ABC, "Chauvet Professional: Maverick Silens 1 Profile" }, |
1702 | | { 0x2ABD, "Chauvet Professional: onAir Panel 2 IP" }, |
1703 | | { 0x2ABE, "Chauvet Professional: onAir Panel 1 IP" }, |
1704 | | { 0x2ABF, "Insight Lighting: CDS RDM PoE" }, |
1705 | | { 0x2AC0, "nicolaudie: Sunlite Suite 2 FC plus" }, |
1706 | | { 0x2AC1, "PLS LLC: Platinum Dimmer System" }, |
1707 | | { 0x2AC2, "ecue: Sympl Bridge Node" }, |
1708 | | { 0x2AC3, "ecue: Bridge8" }, |
1709 | | { 0x2AC4, "ecue: SYMPHOLIGHT" }, |
1710 | | { 0x2AC5, "LED CONTROL PTE LTD: MX96" }, |
1711 | | { 0x2AC6, "ShenZhen ChuanTian QuanCai Technology Co ltd: CT 1020X16" }, |
1712 | | { 0x2AC7, "Advatek Lighting: PixLite A16 S Mk3" }, |
1713 | | { 0x2AC8, "Advatek Lighting: PixLite A4 W Mk3" }, |
1714 | | { 0x2AC9, "Advatek Lighting: PixLite A4 S Mk3" }, |
1715 | | { 0x2ACA, "Advatek Lighting: PixLite T8 S Mk3" }, |
1716 | | { 0x2ACB, "Advatek Lighting: PixLite A16 S Mk2" }, |
1717 | | { 0x2ACC, "Advatek Lighting: PixLite A4 S Mk2" }, |
1718 | | { 0x2ACD, "Advatek Lighting: PixLite T8 S Mk2" }, |
1719 | | { 0x2ACE, "Advatek Lighting: PixLite 16 Plug Play Mk2 plus" }, |
1720 | | { 0x2ACF, "Advatek Lighting: PixLite 16 Plug Play Mk2" }, |
1721 | | { 0x2AD0, "Advatek Lighting: PixLite 4 Mk2 Rugged" }, |
1722 | | { 0x2AD1, "Advatek Lighting: PixLite 16 Mk2 Long Range" }, |
1723 | | { 0x2AD2, "Advatek Lighting: PixLite 16 Mk2 ECO" }, |
1724 | | { 0x2AD3, "Advatek Lighting: PixLite 16 Mk2" }, |
1725 | | { 0x2AD4, "Advatek Lighting: PixLite 4 Mk2 ECO" }, |
1726 | | { 0x2AD5, "Advatek Lighting: PixLite 4 Mk2" }, |
1727 | | { 0x2AD6, "LAMP Aydinlatma: OPUS 16" }, |
1728 | | { 0x2AD7, "LAMP Aydinlatma: OPUS 8" }, |
1729 | | { 0x2AD8, "LAMP Aydinlatma: OPUS 4" }, |
1730 | | { 0x2AD9, "Stage Gear: AUM" }, |
1731 | | { 0x2ADA, "DLL ltd: AC 404" }, |
1732 | | { 0x2ADB, "MODUS: ACTION FX MODUS" }, |
1733 | | { 0x2ADC, "MODUS: ACTION LAB MODUS" }, |
1734 | | { 0x2ADD, "MODUS: ALM MODUS" }, |
1735 | | { 0x2ADE, "MODUS: AV PLAYER MODUS" }, |
1736 | | { 0x2ADF, "MODUS: ALC MODUS" }, |
1737 | | { 0x2AE0, "MODUS: ACW MODUS" }, |
1738 | | { 0x2AE1, "MODUS: ASC MODUS" }, |
1739 | | { 0x2AE2, "MODUS: ADL 16 MODUS" }, |
1740 | | { 0x2AE3, "MODUS: ADL 02 MODUS" }, |
1741 | | { 0x2AE4, "MODUS: ADAC MODUS" }, |
1742 | | { 0x2AE5, "MODUS: E GATE MODUS" }, |
1743 | | { 0x2AE6, "MODUS: AADC MODUS" }, |
1744 | | { 0x2AE7, "MODUS: ADMX MODUS" }, |
1745 | | { 0x2AE8, "MODUS: ARS MODUS" }, |
1746 | | { 0x2AE9, "Chromateq SARL: Chromateq Node" }, |
1747 | | { 0x2AEA, "SIRS E: Pilotino WIFI PCB" }, |
1748 | | { 0x2AEB, "able: PRIME RGB 5300" }, |
1749 | | { 0x2AEC, "TDE Lighttech: IZI Access" }, |
1750 | | { 0x2AED, "Nuvolight GmbH Co KG: SMARTsplitter" }, |
1751 | | { 0x2AEE, "Chauvet Professional: Logic Drive 2X" }, |
1752 | | { 0x2AEF, "Vivitek: Projector" }, |
1753 | | { 0x2AF0, "Sensation Lighting Technology Co Ltd: Tungsten cubic" }, |
1754 | | { 0x2AF1, "Eon lighting: Eonport4" }, |
1755 | | { 0x2AF2, "Eon lighting: Eonport2" }, |
1756 | | { 0x2AF3, "Eon lighting: Eonport1" }, |
1757 | | { 0x2AF4, "LSC Lighting Systems Aust Pty Ltd: Houston X" }, |
1758 | | { 0x2AF5, "INTILED: U BOX 8" }, |
1759 | | { 0x2AF6, "Foshan city Yanyao lighting Equipment Factory: X_NODE_8U" }, |
1760 | | { 0x2AF7, "Foshan city Yanyao lighting Equipment Factory: X_NODE_4U" }, |
1761 | | { 0x2AF8, "Foshan city Yanyao lighting Equipment Factory: X_NODE_PIXEL_2U" }, |
1762 | | { 0x2AF9, "Foshan city Yanyao lighting Equipment Factory: X_NODE_PIXEL" }, |
1763 | | { 0x2AFA, "S4 Lights: Motherline Main Board" }, |
1764 | | { 0x2AFB, "Laserworld Group: ShowNET" }, |
1765 | | { 0x2AFC, "HYCL: Super RdmController 16" }, |
1766 | | { 0x2AFD, "HYCL: Super RdmController 1" }, |
1767 | | { 0x2AFE, "HYCL: Super RdmController 2" }, |
1768 | | { 0x2AFF, "HYCL: Super RdmController 4" }, |
1769 | | { 0x2B00, "HYCL: Super RdmController 8" }, |
1770 | | { 0x2B01, "Showtacle Ltd: Reactivo" }, |
1771 | | { 0x2B02, "Advatek Lighting: PixLite E16 S Mk3" }, |
1772 | | { 0x2B03, "Advatek Lighting: PixLite E4 S Mk3" }, |
1773 | | { 0x2B04, "EagleLight: Node16S" }, |
1774 | | { 0x2B05, "EagleLight: Node8S" }, |
1775 | | { 0x2B06, "EagleLight: Node4S" }, |
1776 | | { 0x2B07, "EagleLight: Node2S" }, |
1777 | | { 0x2B08, "EagleLight: Node1S" }, |
1778 | | { 0x2B09, "EagleLight: Node16D" }, |
1779 | | { 0x2B0A, "EagleLight: Node8D" }, |
1780 | | { 0x2B0B, "EagleLight: Node4D" }, |
1781 | | { 0x2B0C, "EagleLight: Node2D" }, |
1782 | | { 0x2B0D, "EagleLight: Node1D" }, |
1783 | | { 0x2B0E, "PXM: QRay Console 36" }, |
1784 | | { 0x2B0F, "PXM: QRay Console 24" }, |
1785 | | { 0x2B10, "CLAYPAKY: MINI XTYLOS" }, |
1786 | | { 0x2B11, "Acme: TRUSSHUB UG" }, |
1787 | | { 0x2B12, "Acme: THUNDER BREAKER" }, |
1788 | | { 0x2B13, "Acme: CALORIE" }, |
1789 | | { 0x2B14, "Acme: JOULES" }, |
1790 | | { 0x2B15, "Acme: PASCAL" }, |
1791 | | { 0x2B16, "Acme: GRAVITRON" }, |
1792 | | { 0x2B17, "Acme: NEWTON" }, |
1793 | | { 0x2B18, "Acme: GEMINI" }, |
1794 | | { 0x2B19, "TELMICNeo: QUADTRA2" }, |
1795 | | { 0x2B1A, "TrasMaTech: TrasMaTech Led Panel" }, |
1796 | | { 0x2B1B, "Yarilo Pro: PixelDIN" }, |
1797 | | { 0x2B1C, "CLAYPAKY: MINI XTYLOS HPE" }, |
1798 | | { 0x2B1D, "WizzuLED: WizzuLED WiFi Link Pro Optoisolated" }, |
1799 | | { 0x2B1E, "WizzuLED: WizzuLED WiFi Link" }, |
1800 | | { 0x2B1F, "WizzuLED: WizzuLED Matrix Display Module v2" }, |
1801 | | { 0x2B20, "CLAYPAKY: SINFONYA PROFILE 600" }, |
1802 | | { 0x2B21, "IMMOLAS: IMMO GATE x4 ISO" }, |
1803 | | { 0x2B22, "Chauvet Professional: Logic POE X" }, |
1804 | | { 0x2B23, "Chauvet Professional: Logic AR111 DN 24W" }, |
1805 | | { 0x2B24, "Chauvet Professional: Logic AR111 DN 12W" }, |
1806 | | { 0x2B25, "Chauvet Professional: Logic MR16 DN 6W" }, |
1807 | | { 0x2B26, "Chauvet Professional: Logic GZ 48W" }, |
1808 | | { 0x2B27, "Chauvet Professional: Logic GZ 12W" }, |
1809 | | { 0x2B28, "Chauvet Professional: Logic CV 24W" }, |
1810 | | { 0x2B29, "Chauvet Professional: Logic CV 12W" }, |
1811 | | { 0x2B2A, "Chauvet Professional: Logic Drive 2Xb" }, |
1812 | | { 0x2B2B, "Control Pro Kft: CubeOS" }, |
1813 | | { 0x2B2C, "LightnTec GmbH: ledTec flex wallpaper" }, |
1814 | | { 0x2B2D, "Luminex Lighting Control Equipment: LumiNode 12 RJ45" }, |
1815 | | { 0x2B2E, "Luminex Lighting Control Equipment: LumiNode 4 DIN" }, |
1816 | | { 0x2B2F, "Colordeve International: MissionBAR" }, |
1817 | | { 0x2B30, "Chauvet Professional: Maverick Force S Profile" }, |
1818 | | { 0x2B31, "Chauvet Professional: Maverick Force S Spot" }, |
1819 | | { 0x2B32, "Integrated System Technology Limited: Tendo Pod PoE" }, |
1820 | | { 0x2B33, "Integrated System Technologies: POE LED Driver 2" }, |
1821 | | { 0x2B34, "Integrated System Technologies: POE LED Driver 4" }, |
1822 | | { 0x2B35, "Integrated System Technologies: Well building Environmental Sensor" }, |
1823 | | { 0x2B36, "Nastedt VA Technik: PixelLedDriver" }, |
1824 | | { 0x2B37, "Chauvet Professional: Color STRIKE M" }, |
1825 | | { 0x2B38, "Sidus Link Ltd: Sidus QNet Jupiter" }, |
1826 | | { 0x2B39, "CLAYPAKY: VOLERO BATTEN AQUA" }, |
1827 | | { 0x2B3A, "CLAYPAKY: VOLERO WAVE" }, |
1828 | | { 0x2B3B, "CLAYPAKY: ACTORIS PARLED" }, |
1829 | | { 0x2B3C, "CLAYPAKY: PANIFY" }, |
1830 | | { 0x2B3D, "CLAYPAKY: SHARPY X FRAME" }, |
1831 | | { 0x2B3E, "CLAYPAKY: MIDIB WW" }, |
1832 | | { 0x2B3F, "CLAYPAKY: MINIB PARLED AQUA WW" }, |
1833 | | { 0x2B40, "CLAYPAKY: MINIB WW" }, |
1834 | | { 0x2B41, "Hypar Collective: HyparDrive" }, |
1835 | | { 0x2B42, "Uniquenterprice: Unique" }, |
1836 | | { 0x2B43, "Martin Professional: MAC Ultra Wash" }, |
1837 | | { 0x2B44, "Martin Professional: MAC Ultra Performance" }, |
1838 | | { 0x2B45, "Akatsuki: Node 10" }, |
1839 | | { 0x2B46, "NEWSUBSTANCE Ltd: Timecode Receiver" }, |
1840 | | { 0x2B47, "NEWSUBSTANCE Ltd: LED Pixel Driver" }, |
1841 | | { 0x2B48, "Licht Technik Hagenbach Grill: MB Yoke" }, |
1842 | | { 0x2B49, "Stops Mops GmbH: Desk Dough Beam" }, |
1843 | | { 0x2B4A, "elements: DEX 8" }, |
1844 | | { 0x2B4B, "LumiOS: eDLC4" }, |
1845 | | { 0x2B4C, "LumiOS: eDLC1" }, |
1846 | | { 0x2B4D, "LumiOS: eDMX1" }, |
1847 | | { 0x2B4E, "LumiOS: eDMX12" }, |
1848 | | { 0x2B4F, "LumiOS: eDMX4" }, |
1849 | | { 0x2B50, "ADL Electronics Ltd: ADL NET SERVER" }, |
1850 | | { 0x2B51, "ADL Electronics Ltd: ADL DIM SW 220 6 5" }, |
1851 | | { 0x2B52, "ADL Electronics Ltd: ADL DIM SW 220 6 3" }, |
1852 | | { 0x2B53, "ADL Electronics Ltd: ADL DIM SW 220 24 3" }, |
1853 | | { 0x2B54, "ADL Electronics Ltd: ADL DIM SW 220 12 3" }, |
1854 | | { 0x2B55, "ADL Electronics Ltd: ADL SW 220 6 5" }, |
1855 | | { 0x2B56, "ADL Electronics Ltd: ADL SW 220 12 3" }, |
1856 | | { 0x2B57, "ADL Electronics Ltd: ADL DIM 220 6 5" }, |
1857 | | { 0x2B58, "ADL Electronics Ltd: ADL DIM 220 6 1 LED" }, |
1858 | | { 0x2B59, "ADL Electronics Ltd: ADL DIM 220 12 1 LED" }, |
1859 | | { 0x2B5A, "ADL Electronics Ltd: ADL DIM 220 12 3" }, |
1860 | | { 0x2B5B, "ADL Electronics Ltd: ADL DC WSO Note" }, |
1861 | | { 0x2B5C, "ADL Electronics Ltd: ADL DMX NetGate Mini" }, |
1862 | | { 0x2B5D, "ADL Electronics Ltd: ADL DMX NetGate SPI" }, |
1863 | | { 0x2B5E, "ADL Electronics Ltd: ADL DMX NetGate DALI" }, |
1864 | | { 0x2B5F, "LRS Solutions: LRS ControlBridge" }, |
1865 | | { 0x2B60, "Pioneer lighting solutions india pvt ltd: PL NODE 8" }, |
1866 | | { 0x2B61, "AECO 10: AECO 10" }, |
1867 | | { 0x2B62, "Acme: AECO 12" }, |
1868 | | { 0x2B63, "Acme: AECO 5" }, |
1869 | | { 0x2B64, "Acme: AECO 20" }, |
1870 | | { 0x2B65, "Acme: AECO 8" }, |
1871 | | { 0x2B66, "Acme: AECO 22" }, |
1872 | | { 0x2B67, "CLAYPAKY: TAMBORA BATTEN SQUARE" }, |
1873 | | { 0x2B68, "CLAYPAKY: TAMBORA BATTEN ROUND" }, |
1874 | | { 0x2B69, "WHITEvoid: Comms Module" }, |
1875 | | { 0x2B6A, "Martin Professional: PDE Junction Box Active" }, |
1876 | | { 0x2B6B, "Martin Professional: VDO Atomic Bold" }, |
1877 | | { 0x2B6C, "SLLCP: NodeSTereo" }, |
1878 | | { 0x2B6D, "Acme: NEOZONE" }, |
1879 | | { 0x2B6E, "Acme: FLASHBOLT" }, |
1880 | | { 0x2B6F, "Acme: OCTOPUS 8" }, |
1881 | | { 0x2B70, "SLLCP: NodeSTereo2" }, |
1882 | | { 0x2B71, "Tavlintsev Timofey: LedMapper" }, |
1883 | | { 0x2B72, "Tyler Ward: POE stack light" }, |
1884 | | { 0x2B73, "Alexin Smart Integrations: RTI colorpicker driver" }, |
1885 | | { 0x2B74, "Wireless Solution Sweden AB: W DMX WiFi Bridge F 2" }, |
1886 | | { 0x2B75, "Wireless Solution Sweden AB: W DMX WiFi Bridge F 1" }, |
1887 | | { 0x2B76, "LumenRadio: CRMX Aurora" }, |
1888 | | { 0x2B77, "LumenRadio AB: CRMX Stardust" }, |
1889 | | { 0x2B78, "Schnick Schnack Systems GmbH: Pixel Gate Mini" }, |
1890 | | { 0x2B79, "LIGEO GmbH: LIGEO GATEWAY G2" }, |
1891 | | { 0x2B7A, "Strike Theatre Electronics LLC: Hellbender Console" }, |
1892 | | { 0x2B7B, "Elation Lighting: EP2" }, |
1893 | | { 0x2B7C, "Locimation Pty Ltd: LX Toolkit" }, |
1894 | | { 0x2B7D, "NEWSUBSTANCE Ltd: Media Server" }, |
1895 | | { 0x2B7E, "Yarilo Pro: Pixel Mini" }, |
1896 | | { 0x2B7F, "StrongLED Lighting Systems Suzhou Co Ltd: IP Controller" }, |
1897 | | { 0x2B80, "Wattle IT: Kanet" }, |
1898 | | { 0x2B81, "kuwatec Inc: PrefLight" }, |
1899 | | { 0x2B82, "kuwatec Inc: Ex2" }, |
1900 | | { 0x2B83, "Chauvet Professional: COLORado PXL BAR 16" }, |
1901 | | { 0x2B84, "Chauvet Professional: COLORado PXL BAR 8" }, |
1902 | | { 0x2B85, "Falcon Christmas: FPP" }, |
1903 | | { 0x2B86, "LIGEO GmbH: LIGEO WIFI G1" }, |
1904 | | { 0x2B87, "Imlight Electronics: Netline 2" }, |
1905 | | { 0x2B88, "Imlight Electronics: Netline 8" }, |
1906 | | { 0x2B89, "Imlight Electronics: Netline 4" }, |
1907 | | { 0x2B8A, "Imlight Electronics: DimRack 96" }, |
1908 | | { 0x2B8B, "Imlight Electronics: DimRack 48" }, |
1909 | | { 0x2B8C, "DTS Illuminazione srl: ALCHEMY 7 F" }, |
1910 | | { 0x2B8D, "Steinigke Showtechnic GmbH: DXT PoE Node I" }, |
1911 | | { 0x2B8E, "Chauvet Professional: Maverick Storm 2 BeamWash" }, |
1912 | | { 0x2B8F, "Arkaos: MediaMaster6" }, |
1913 | | { 0x2B90, "ALPHA LITE: ALPHA LITE" }, |
1914 | | { 0x2B91, "LED CONTROL PTE LTD: MX96 v2" }, |
1915 | | { 0x2B92, "LED CTRL: LED CTRL" }, |
1916 | | { 0x2B93, "control8r: MIDIMonster" }, |
1917 | | { 0x2B94, "StageTubes: MatrixEngine" }, |
1918 | | { 0x2B95, "Pippin Technical Service: PTS Limelight" }, |
1919 | | { 0x2B96, "Emporio On Stage: EosOemController" }, |
1920 | | { 0x2B97, "Integrated System Technologies Ltd: iDrive Eco 12" }, |
1921 | | { 0x2B98, "MakePro X: Glue" }, |
1922 | | { 0x2B99, "GODOX PHOTO EQUIPMENT CO LTD: LED Light" }, |
1923 | | { 0x2B9A, "Lucenti: Blackwave PixlDrive8 Pro" }, |
1924 | | { 0x2B9B, "LSC ControlSystems Pty Ltd: TRS Rack" }, |
1925 | | { 0x2B9C, "Acme: HAIL" }, |
1926 | | { 0x2B9D, "Acme: PIXEL LINE IP" }, |
1927 | | { 0x2B9E, "L4S GmbH: ETH Controller 10x1024" }, |
1928 | | { 0x2B9F, "CLAYPAKY: TAMBORA FLASH" }, |
1929 | | { 0x2BA0, "CLAYPAKY: TAMBORA LINEAR 100" }, |
1930 | | { 0x2BA1, "Luminex Lighting Control Equipment: LumiNode 4 Wall" }, |
1931 | | { 0x2BA2, "CLAYPAKY: MINIB" }, |
1932 | | { 0x2BA3, "Vari Lite: VL internal node" }, |
1933 | | { 0x2BA4, "Pixsper: LXMax" }, |
1934 | | { 0x2BA5, "Steinigke Showtechnic GmbH: IP PLH 420 Moving Head SpotBeam" }, |
1935 | | { 0x2BA6, "Steinigke Showtechnic GmbH: IP PLB420 Moving Head Beam" }, |
1936 | | { 0x2BA7, "Integrated System Technologies Ltd: iDrive Atlas 36" }, |
1937 | | { 0x2BA8, "Integrated System Technologies Ltd: iDrive Atlas 12" }, |
1938 | | { 0x2BA9, "equivalent: LSSR 65" }, |
1939 | | { 0x2BAA, "White Wing Logic: Ethersplitter" }, |
1940 | | { 0x2BAB, "LUXIBEL: B BLAST" }, |
1941 | | { 0x2BAC, "LUXIBEL: B BLAST PRO" }, |
1942 | | { 0x2BAD, "JentonDimaco: VeriPACK" }, |
1943 | | { 0x2BAE, "AhojPepo eu: Node1w1" }, |
1944 | | { 0x2BAF, "Schannherz Elektronikai Mahely: MUEB 4" }, |
1945 | | { 0x2BB0, "Shenzhen ImagineVision Technology Limited: ZOLAR Toliman 30C" }, |
1946 | | { 0x2BB1, "Yarilo Pro: LanDMX8DIN" }, |
1947 | | { 0x2BB2, "SoundSwitch: SoundSwitch" }, |
1948 | | { 0x2BB3, "Shenzhen ImagineVision Technology Limited: ZOLAR Vega 30C" }, |
1949 | | { 0x2BB4, "Shenzhen ImagineVision Technology Limited: ZOLAR Toliman 30Cb" }, |
1950 | | { 0x2BB5, "Shenzhen ImagineVision Technology Limited: ZOLAR Toliman 30S" }, |
1951 | | { 0x2BB6, "Lichtmanufaktur Berlin GmbH: Lithernet Casambi Gateway" }, |
1952 | | { 0x2BB7, "Tank Serbatoio Culturale: TASV" }, |
1953 | | { 0x2BB8, "L4S GmbH: ETH Controller 10x1024b" }, |
1954 | | { 0x2BB9, "expanseElectronics: soloWiFi" }, |
1955 | | { 0x2BBA, "expanseElectronics: dualETH" }, |
1956 | | { 0x2BBB, "Chauvet Professional: Maverick Storm 4 Profile" }, |
1957 | | { 0x2BBC, "Chauvet Professional: Maverick Storm 2 Profile" }, |
1958 | | { 0x2BBD, "Adkins Professional Lighting: 6x6 Watt RGBAW UV FlatPar" }, |
1959 | | { 0x2BBE, "Shenzhen ImagineVision Technology Limited: ZOLAR" }, |
1960 | | { 0x2BBF, "Manu: Enttec" }, |
1961 | | { 0x2BC0, "GVA Lighting Inc: PDC-G5" }, |
1962 | | { 0x2BC1, "Subsomav Lda: MyPocketNode" }, |
1963 | | { 0x2BC2, "Krypton: P800 IP" }, |
1964 | | { 0x2BC3, "Krypton: BRUTE" }, |
1965 | | { 0x2BC4, "SUPER CAN Light: HDMI Video Player" }, |
1966 | | { 0x2BC5, "SUPER CAN Industry Growing Co LTD: ETA Node" }, |
1967 | | { 0x2BC6, "Krypton: X Treme 1100" }, |
1968 | | { 0x2BC7, "Skaarhoj: BluePill" }, |
1969 | | { 0x2BC8, "ADJ Products: Pixie Driver 8000" }, |
1970 | | { 0x2BC9, "riccarf: asa" }, |
1971 | | { 0x2BCA, "ON LX Limited: Ctrl Engine" }, |
1972 | | { 0x2BCB, "nicoleaudio: daslight4" }, |
1973 | | { 0x2BCC, "Briteq: BTX LIGHTSTRIKE" }, |
1974 | | { 0x2BCD, "Company 235 LLC: OpenLCP" }, |
1975 | | { 0x2BCE, "Guangzhou ChaiYi Light CO Ltd: TEKMAND Node 2P" }, |
1976 | | { 0x2BCF, "CHAUVET: DMX AN" }, |
1977 | | { 0x2BD0, "Automatic Devices Company: ADC Clear Path Controller" }, |
1978 | | { 0x2BD1, "edelkrone: LightONE" }, |
1979 | | { 0x2BD2, "JPK Systems Limited: LeDMX4 MAX" }, |
1980 | | { 0x2BD3, "JPK Systems Limited: LeDMX2 MAX" }, |
1981 | | { 0x2BD4, "JPK Systems Limited: eDMX4 MAX ISODIN11" }, |
1982 | | { 0x2BD5, "JPK Systems Limited: eDMX4 MAX DIN" }, |
1983 | | { 0x2BD6, "JPK Systems Limited: ultraDMX MAX" }, |
1984 | | { 0x2BD7, "MLH Electronics: LEDstrip controller" }, |
1985 | | { 0x2BD8, "FixtureMapper: FixtureMapper" }, |
1986 | | { 0x2BD9, "Mantic Lighting Appliance Co Ltd: Matrix M801" }, |
1987 | | { 0x2BDA, "Litegear Inc: LiteDimmer" }, |
1988 | | { 0x2BDB, "Litegear Inc: Litemat" }, |
1989 | | { 0x2BDC, "TORRES: DMXAN" }, |
1990 | | { 0x2BDD, "HongYuan: HY001" }, |
1991 | | { 0x2BDE, "Chauvet Professional: STRIKE Bolt" }, |
1992 | | { 0x2BDF, "Chauvet Professional: Color STRIKE L" }, |
1993 | | { 0x2BE0, "USHIO LIGHTING INC: Amata2" }, |
1994 | | { 0x2BE1, "Mate LLC: MEL" }, |
1995 | | { 0x2BE2, "Litegear Inc: LiteDimmerB" }, |
1996 | | { 0x2BE3, "CLAYPAKY: MINI B SPOT" }, |
1997 | | { 0x2BE4, "CLAYPAKY: ACTORIS PARLED RGBW" }, |
1998 | | { 0x2BE5, "CLAYPAKY: TAMBORA LINEAR 60" }, |
1999 | | { 0x2BE6, "arpschuino: arpschuino32" }, |
2000 | | { 0x2BE7, "xiaoxu: DMX512 Expander" }, |
2001 | | { 0x2BE8, "MODUS: Wi Fi ColorBox" }, |
2002 | | { 0x2BE9, "Home Assistant Core Team and Community: Home Assistant" }, |
2003 | | { 0x2BEA, "LKE Lasershow: LED Driver" }, |
2004 | | { 0x2BEB, "Jorge Lighting: Obsidian EN4" }, |
2005 | | { 0x2BEC, "Guangdong Nanguang Photo Video Systems Co Ltd: NANLUX" }, |
2006 | | { 0x2BED, "Martin Professional: MAC Aura XIP" }, |
2007 | | { 0x2BEE, "mad: ks910p" }, |
2008 | | { 0x2BEF, "allroundDigital: cuewise Audio" }, |
2009 | | { 0x2BF0, "Aircoookie: WLED" }, |
2010 | | { 0x2BF1, "JPK Systems Limited: eDMX4 MAX" }, |
2011 | | { 0x2BF2, "JPK Systems Limited: eDMX2 MAX" }, |
2012 | | { 0x2BF3, "JPK Systems Limited: eDMX1 MAX" }, |
2013 | | { 0x2BF4, "JPK Systems Limited: eDMX4 MAX ISODIN22" }, |
2014 | | { 0x2BF5, "Fufeng lighting: EN8" }, |
2015 | | { 0x2BF6, "PH Lighting: LCI WiFi MINI" }, |
2016 | | { 0x2BF7, "PH Lighting: LCI WiFi MAX" }, |
2017 | | { 0x2BF8, "Steinigke Showtechnic GmbH: LED IP Atmo Blinder 9" }, |
2018 | | { 0x2BF9, "Astera: AsteraBox Wifi" }, |
2019 | | { 0x2BFA, "Ex Machina: lonestar" }, |
2020 | | { 0x2BFB, "Showtacle Ltd: SPI LED 2" }, |
2021 | | { 0x2BFC, "JPK Systems Limited: eDMX1 MAX DIN" }, |
2022 | | { 0x2BFD, "Vari Lite: Neo" }, |
2023 | | { 0x2BFE, "Vari Lite: ZerOS" }, |
2024 | | { 0x2BFF, "NEWSUBSTANCE Ltd: Wireless LED Pixel Driver" }, |
2025 | | { 0x2C00, "gobo ws: IoT lighting gateway" }, |
2026 | | { 0x2C01, "United Protocols: UP8420" }, |
2027 | | { 0x2C02, "United Protocols: UP8410" }, |
2028 | | { 0x2C03, "PIONEER LIGHTING SOLUTIONS INDIA PVT LTD: PL NODE 4" }, |
2029 | | { 0x2C04, "Chauvet Professional: onAir IP Panel 3" }, |
2030 | | { 0x2C05, "Lumascape: Lumascape PSync 010" }, |
2031 | | { 0x2C06, "Lumascape: Lumascape PSync 009" }, |
2032 | | { 0x2C07, "Lumascape: Lumascape PSync 008" }, |
2033 | | { 0x2C08, "Lumascape: Lumascape PSync 007" }, |
2034 | | { 0x2C09, "Lumascape: Lumascape PSync 006" }, |
2035 | | { 0x2C0A, "Lumascape: Lumascape PSync 005" }, |
2036 | | { 0x2C0B, "Lumascape: Lumascape PSync 004" }, |
2037 | | { 0x2C0C, "Lumascape: Lumascape PSync 003" }, |
2038 | | { 0x2C0D, "Lumascape: Lumascape PSync 002" }, |
2039 | | { 0x2C0E, "Lumascape: Lumascape PSync 001" }, |
2040 | | { 0x2C0F, "CLAYPAKY: SKYLOS" }, |
2041 | | { 0x2C10, "Showtacle Ltd: Reactivo 2" }, |
2042 | | { 0x2C11, "PXM: Px914" }, |
2043 | | { 0x2C12, "Cronic Industries: FlexNode S1" }, |
2044 | | { 0x2C13, "Chauvet Professional: onAir Panel 4 IP Hard" }, |
2045 | | { 0x2C14, "Chauvet Professional: Strike Array 1" }, |
2046 | | { 0x2C15, "rosdi ab latiff: TouchDesigner" }, |
2047 | | { 0x2C16, "VINGTQUATREVOLTS: D Light" }, |
2048 | | { 0x2C17, "Synthesis LED: Synthesis Pro" }, |
2049 | | { 0x2C18, "AULIOS GmbH: AULIOS" }, |
2050 | | { 0x2C19, "St Andrews: Dot 2" }, |
2051 | | { 0x2C1A, "Digipet: Win Digipet" }, |
2052 | | { 0x2C1B, "Chauvet Professional: Maverick Storm 3 BeamWash" }, |
2053 | | { 0x2C1C, "Chauvet Professional: Maverick Force 3 Profile" }, |
2054 | | { 0x2C1D, "Chauvet Professional: Maverick Force 2 Beam" }, |
2055 | | { 0x2C1E, "Chauvet Professional: COLORado PXL Curve 12" }, |
2056 | | { 0x2C1F, "Chauvet Professional: Maverick Storm 1 Beam" }, |
2057 | | { 0x2C20, "Chauvet Professional: Maverick Storm 1 Hybrid" }, |
2058 | | { 0x2C21, "Steinigke Showtechnic GmbH: LED IP Atmo Bar 10" }, |
2059 | | { 0x2C22, "Acme: LIGHTNING" }, |
2060 | | { 0x2C23, "CLAYPAKY: MIDIB FX" }, |
2061 | | { 0x2C24, "CLAYPAKY: SHARPY X SPOT" }, |
2062 | | { 0x2C25, "CLAYPAKY: AROLLA AQUA" }, |
2063 | | { 0x2C26, "CLAYPAKY: K15 AQUA" }, |
2064 | | { 0x2C27, "CLAYPAKY: ACTORIS PROFILE FC" }, |
2065 | | { 0x2C28, "CLAYPAKY: MINI B AQUA" }, |
2066 | | { 0x2C29, "Steinigke Showtechnic GmbH: DXT Pixel Node IV" }, |
2067 | | { 0x2C2A, "Vivalyte BV: LEDLogix" }, |
2068 | | { 0x2C2B, "PXL Lighting: B1" }, |
2069 | | { 0x2C2C, "Pyrodigy Production: DAC" }, |
2070 | | { 0x2C2D, "Chauvet Professional: Strike Array 2 FC" }, |
2071 | | { 0x2C2E, "Chauvet Professional: Strike Array 4 FC" }, |
2072 | | { 0x2C2F, "Chauvet Professional: Color Strike Duo" }, |
2073 | | { 0x2C30, "Plura: SPT" }, |
2074 | | { 0x2C31, "ARGETRON: Norval" }, |
2075 | | { 0x2C32, "PXM: Rh836" }, |
2076 | | { 0x2C33, "Plura: TRC" }, |
2077 | | { 0x2C34, "Plura: ELC" }, |
2078 | | { 0x2C35, "Plura: TCUH1D" }, |
2079 | | { 0x2C36, "Plura: SPTH1" }, |
2080 | | { 0x2C37, "Plura: TCUH1" }, |
2081 | | { 0x2C38, "Plura: TCU MTD ID" }, |
2082 | | { 0x2C39, "Plura: TCU" }, |
2083 | | { 0x2C3A, "Plura: SPT MTD ID" }, |
2084 | | { 0x2C3B, "Plura: UD300D" }, |
2085 | | { 0x2C3C, "Plura: UD300" }, |
2086 | | { 0x2C3D, "Plura: UD56S" }, |
2087 | | { 0x2C3E, "Plura: UD56" }, |
2088 | | { 0x2C3F, "Plura: UD56 8" }, |
2089 | | { 0x2C40, "Plura: UD25 8" }, |
2090 | | { 0x2C41, "Plura: UDD25" }, |
2091 | | { 0x2C42, "Plura: UD25" }, |
2092 | | { 0x2C43, "LSC Control Systems Pty Ltd: NEXEN DIN" }, |
2093 | | { 0x2C44, "LSC Control Systems Pty Ltd: NXD4" }, |
2094 | | { 0x2C45, "LSC Control Systems Pty Ltd: NXW2" }, |
2095 | | { 0x2C46, "LSC Control Systems Pty Ltd: NXP2" }, |
2096 | | { 0x2C47, "Acme: XA 2000 BSWF IP" }, |
2097 | | { 0x2C48, "Acme: XA 1000 BW IP" }, |
2098 | | { 0x2C49, "Acme: XA 1000 BSWF IP" }, |
2099 | | { 0x2C4A, "Acme: TS 500 RGBA" }, |
2100 | | { 0x2C4B, "Acme: TS 500 CW WW" }, |
2101 | | { 0x2C4C, "Acme: TB 5 IP" }, |
2102 | | { 0x2C4D, "Acme: TB 5" }, |
2103 | | { 0x2C4E, "Acme: STROBE 7 IP" }, |
2104 | | { 0x2C4F, "Acme: MB 1000" }, |
2105 | | { 0x2C50, "Acme: LP F3000" }, |
2106 | | { 0x2C51, "Acme: HUE 6 IP" }, |
2107 | | { 0x2C52, "Acme: CM S2" }, |
2108 | | { 0x2C53, "Acme: CM 1000Z" }, |
2109 | | { 0x2C54, "Acme: BLINDER BAR IP" }, |
2110 | | { 0x2C55, "Acme: ARC 640" }, |
2111 | | { 0x2C56, "Acme: STROBE 1 IP" }, |
2112 | | { 0x2C57, "Acme: ARC ST200" }, |
2113 | | { 0x2C58, "GLP German Light Products INC: Drixl" }, |
2114 | | { 0x2C59, "GLP German Light Products INC: Scenex PixiPower" }, |
2115 | | { 0x2C5A, "Synthesis LED: Synthesis Assistant tool" }, |
2116 | | { 0x2C5B, "SmartShow UK Ltd: Pro ONE" }, |
2117 | | { 0x2C5C, "Bulldog Lighting and Events: Armani Cobra 4" }, |
2118 | | { 0x2C5D, "Bulldog Lighting and Events: Diesel 12" }, |
2119 | | { 0x2C5E, "Bulldog Lighting and Events: Diesel 24" }, |
2120 | | { 0x2C5F, "Singularity UK Ltd: rdmInspect" }, |
2121 | | { 0x2C60, "ARCTOS Showlasertechnik GmbH: Orbit" }, |
2122 | | { 0x2C61, "CLAYPAKY: RHAPSODY" }, |
2123 | | { 0x2C62, "ChamSys Ltd: QuickQ" }, |
2124 | | { 0x2C63, "PIXILAB Technologies AB: PIXILAB Blocks" }, |
2125 | | { 0x2C64, "JPK Systems Limited: eDMX4 MAX ISODIN" }, |
2126 | | { 0x2C65, "JPK Systems Limited: eDMX8 MAX" }, |
2127 | | { 0x2C66, "CLAYPAKY: SINFONYA PROFILE HP" }, |
2128 | | { 0x2C67, "CLAYPAKY: SINFONYA PROFILE 600EX" }, |
2129 | | { 0x2C68, "CLAYPAKY: RHAPSODYA" }, |
2130 | | { 0x2C69, "CLAYPAKY: SKYLOS NV" }, |
2131 | | { 0x2C6A, "Onderweg Software: Onderweg DMX Library" }, |
2132 | | { 0x2C6B, "ChromaQ: 2inspire 300" }, |
2133 | | { 0x2C6C, "ChromaQ: 2inspire 200" }, |
2134 | | { 0x2C6D, "ChromaQ: 2inspire 100" }, |
2135 | | { 0x2C6E, "DTS Illuminazione srl: SYNERGY 6 PROFILE" }, |
2136 | | { 0x2C6F, "TELMIC Neo: Recoller" }, |
2137 | | { 0x2C70, "CB Electronics: TC 5 Midi Timecode Interface" }, |
2138 | | { 0x2C71, "BRITEQ Beglec NV: BTX SKYRAN" }, |
2139 | | { 0x2C72, "JPK Systems Limited: eDMX8 MAX DIN" }, |
2140 | | { 0x2C73, "Chauvet Professional: onAir B6" }, |
2141 | | { 0x2C74, "Chauvet Professional: onAir B4" }, |
2142 | | { 0x2C75, "Chauvet Professional: onAir B1" }, |
2143 | | { 0x2C76, "Swisson AG: XMT 500" }, |
2144 | | { 0x2C77, "Kino Flo Lighting Systems: Celeb Ikon 12" }, |
2145 | | { 0x2C78, "Kino Flo Lighting Systems: Celeb Ikon 6" }, |
2146 | | { 0x2C79, "Kino Flo Lighting Systems: Diva Lux 4" }, |
2147 | | { 0x2C7A, "Kino Flo Lighting Systems: Diva Lux 2" }, |
2148 | | { 0x2C7B, "Kino Flo Lighting Systems: Diva Lux 1" }, |
2149 | | { 0x2C7C, "Kino Flo Lighting Systems: FreeFrame Control 2" }, |
2150 | | { 0x2C7D, "Kino Flo Lighting Systems: FreeFrame P3" }, |
2151 | | { 0x2C7E, "Kino Flo Lighting Systems: FreeFrame P2" }, |
2152 | | { 0x2C7F, "Kino Flo Lighting Systems: FreeFrame P1" }, |
2153 | | { 0x2C80, "Kino Flo Lighting Systems: LED Fixture" }, |
2154 | | { 0x2C81, "Chauvet Professional: Epix Drive 4000X IP" }, |
2155 | | { 0x2C82, "Briteq Beglec NV: BT NODE24 Mk2" }, |
2156 | | { 0x2C83, "Briteq Beglec NV: BTI LIGHTSTRIKE IP66" }, |
2157 | | { 0x2C84, "ChamSys Ltd: MagicHD" }, |
2158 | | { 0x2C85, "ChamSys Ltd: MagicVis" }, |
2159 | | { 0x2C86, "Lighting Infusion LLC: Streaming Toolkit" }, |
2160 | | { 0x2C87, "Shenzhen Lumi Lime Technology Limited: LA01" }, |
2161 | | { 0x2C88, "Steinigke Showtechnic GmbH: eurolite Light Captain" }, |
2162 | | { 0x2C89, "ADJ Products: Wifi Net 2" }, |
2163 | | { 0x2C8A, "ADJ Products: Net 8" }, |
2164 | | { 0x2C8B, "ADJ Products: Net 4" }, |
2165 | | { 0x2C8C, "Martin Professional: ERA 700 Performance IP" }, |
2166 | | { 0x2C8D, "White WIng Logic: PoE LED controller MW10P" }, |
2167 | | { 0x2C8E, "DALCERO ENGINEERING: OemDalceroGateway04" }, |
2168 | | { 0x2C8F, "DALCERO ENGINEERING: OemDalceroGateway01" }, |
2169 | | { 0x2C90, "Chauvet Professional: Maverick Silens 2X Profile" }, |
2170 | | { 0x2C91, "Chauvet Professional: Maverick Silens 1X Profile" }, |
2171 | | { 0x2C92, "Elation Lighting: EN6 IP" }, |
2172 | | { 0x2C93, "Elation Lighting: EN12i" }, |
2173 | | { 0x2C94, "Elation Lighting: EP1" }, |
2174 | | { 0x2C95, "ADB: ORKIS CYC" }, |
2175 | | { 0x2C96, "Emilio Karas: Fixture Visualizer unreleased" }, |
2176 | | { 0x2C97, "Steinigke Showtechnic GmbH: LED Pixel Matrix Panel 5x5 RGBWW" }, |
2177 | | { 0x2C98, "MODUS: MODUS Max08" }, |
2178 | | { 0x2C99, "IQ COMPANY Ltd: DOTIMAGE" }, |
2179 | | { 0x2C9A, "Chauvet Professional: Maverick Storm 4 SoloWash" }, |
2180 | | { 0x2C9B, "CLAYPAKY: Deprecated1" }, |
2181 | | { 0x2C9C, "Thomas Neumann Licht und Tontechnik: Levelcheck" }, |
2182 | | { 0x2C9D, "LaserAV: DistroNode" }, |
2183 | | { 0x2C9E, "LumenRadio AB: CRMX Galileo MAX" }, |
2184 | | { 0x2C9F, "Martin Professional: MAC One" }, |
2185 | | { 0x2CA0, "LSC Control Systems Pty Ltd: GENX" }, |
2186 | | { 0x2CA1, "LSC Control Systems Pty Ltd: APSX" }, |
2187 | | { 0x2CA2, "Chauvet Professional: Strike Rail" }, |
2188 | | { 0x2CA3, "Rift Labs: Kelvin" }, |
2189 | | { 0x2CA4, "SG Product: ArtnetWirelessSerialLed" }, |
2190 | | { 0x2CA5, "Constell8: KLSTR CTRL" }, |
2191 | | { 0x2CA6, "Chauvet Professional: Maverick Storm 3X BeamWash" }, |
2192 | | { 0x2CA7, "Steinigke Showtechnic GmbH: LED PIX 12 Swing QCL Zoom Bar" }, |
2193 | | { 0x2CA8, "Chauvet Professional: Maverick Storm 2 Profile M" }, |
2194 | | { 0x2CA9, "OSRAM: RGBI controller" }, |
2195 | | { 0x2CAA, "Elation Lighting: EP1D" }, |
2196 | | { 0x2CAB, "Elation Lighting: EN6D" }, |
2197 | | { 0x2CAC, "Elation Lighting: DA2410V" }, |
2198 | | { 0x2CAD, "Acme: XP 400 BEAM IP" }, |
2199 | | { 0x2CAE, "Acme: Deprecated1" }, |
2200 | | { 0x2CAF, "Acme: CM 7 IP" }, |
2201 | | { 0x2CB0, "Acme: XP 500 BEAM IP" }, |
2202 | | { 0x2CB1, "Acme: Deprecated2" }, |
2203 | | { 0x2CB2, "Acme: BLB 10 IP" }, |
2204 | | { 0x2CB3, "Acme: BLB 5 IP" }, |
2205 | | { 0x2CB4, "Acme: AECO 30 IP" }, |
2206 | | { 0x2CB5, "Acme: Deprecated3" }, |
2207 | | { 0x2CB6, "Acme: XA 600 BSWF IP" }, |
2208 | | { 0x2CB7, "Acme: XA 600 BSW IP" }, |
2209 | | { 0x2CB8, "Cindy Professional Lighting Co Ltd: TOUGH 800 BAR" }, |
2210 | | { 0x2CB9, "Imlight Electronics: Apollo CCS" }, |
2211 | | { 0x2CBA, "FTSLED: Cerise 1U USB" }, |
2212 | | { 0x2CBB, "FTSLED: Cerise 2U Pro" }, |
2213 | | { 0x2CBC, "FTSLED: Cerise 2U Pro Wired" }, |
2214 | | { 0x2CBD, "FTSLED: Cerise 4U Pro" }, |
2215 | | { 0x2CBE, "FTSLED: Cerise 4U Pro Wired" }, |
2216 | | { 0x2CBF, "FTSLED: Cerise Wired 1U" }, |
2217 | | { 0x2CC0, "NEWSUBSTANCE Ltd: LoRa LED Controller" }, |
2218 | | { 0x2CC1, "tarm AG: tarm BLAZE" }, |
2219 | | { 0x2CC2, "Hondel Lighting Limited: HDS308A" }, |
2220 | | { 0x2CC3, "Lighthaus: Lighthaus Controller A" }, |
2221 | | { 0x2CC4, "Advatek Lighting Pty Ltd: PixLite T16X S Mk3" }, |
2222 | | { 0x2CC5, "Chauvet Professional: Maverick Silens 2 SoloWash" }, |
2223 | | { 0x2CC6, "kuwatec Inc: Ex4" }, |
2224 | | { 0x2CC7, "Vari Lite: RigSwitchPlus" }, |
2225 | | { 0x2CC8, "Cameo: P6" }, |
2226 | | { 0x2CC9, "Cameo: OTOS W12" }, |
2227 | | { 0x2CCA, "Cameo: OTOS W6" }, |
2228 | | { 0x2CCB, "Cameo: OTOS W3" }, |
2229 | | { 0x2CCC, "Cameo: OPUS X4" }, |
2230 | | { 0x2CCD, "Cameo: ORON H2" }, |
2231 | | { 0x2CCE, "Resolume: Resolume Arena" }, |
2232 | | { 0x2CCF, "Martin Professional: MAC Viper XIP" }, |
2233 | | { 0x2CD0, "RT DMX: RT DMX Device" }, |
2234 | | { 0x2CD1, "Particle Studio: Pixel Postie" }, |
2235 | | { 0x2CD2, "Colordreamer Technology Co Limited: CD Titan R8" }, |
2236 | | { 0x2CD3, "Tea Engineering Ltd: RazzleDMX" }, |
2237 | | { 0x2CD4, "DELTACAST: TriggersManager" }, |
2238 | | { 0x2CD5, "Event Lighting Pty Ltd: APRO4_IP" }, |
2239 | | { 0x2CD6, "Event Lighting Pty Ltd: APRO8" }, |
2240 | | { 0x2CD7, "Event Lighting Pty Ltd: APRO4" }, |
2241 | | { 0x2CD8, "Event Lighting Pty Ltd: APRO2" }, |
2242 | | { 0x2CD9, "GLP German Light Products GmbH: XDC1 IP Hybrid" }, |
2243 | | { 0x2CDA, "GLP German Light Products GmbH: JDC2 IP" }, |
2244 | | { 0x2CDB, "GLP German Light Products GmbH: impression X5 Bar 1000" }, |
2245 | | { 0x2CDC, "GLP German Light Products GmbH: impression X5 IP Bar" }, |
2246 | | { 0x2CDD, "GLP German Light Products GmbH: impression X5 IP Maxx" }, |
2247 | | { 0x2CDE, "GLP German Light Products GmbH: impression X5 Compact" }, |
2248 | | { 0x2CDF, "GLP German Light Products GmbH: impression X5" }, |
2249 | | { 0x2CE0, "Steinigke Showtechnic GmbH: LED Pixel Matrix Panel 2x5 RGBWW" }, |
2250 | | { 0x2CE1, "Steinigke Showtechnic GmbH: LED Pixel Matrix Bar 10 RGBWW" }, |
2251 | | { 0x2CE2, "Axion Lighting: Axion PoE WiFi DMX Controller" }, |
2252 | | { 0x2CE3, "Fufeng ligthing: ANP4 PRO IP" }, |
2253 | | { 0x2CE4, "Fufeng ligthing: ANP8 PRO" }, |
2254 | | { 0x2CE5, "Fufeng ligthing: ANP4 PRO" }, |
2255 | | { 0x2CE6, "Fufeng ligthing: ANP2 PRO" }, |
2256 | | { 0x2CE7, "ROBERT JULIAT: TRISTAN 1189" }, |
2257 | | { 0x2CE8, "ROBERT JULIAT: BIZET 1176" }, |
2258 | | { 0x2CE9, "ROBERT JULIAT: BIZET 67X" }, |
2259 | | { 0x2CEA, "Highlite International BV: Furion P602 Profile" }, |
2260 | | { 0x2CEB, "Highlite International BV: Furion P402 Profile" }, |
2261 | | { 0x2CEC, "Highlite International BV: Furion S602 Spot" }, |
2262 | | { 0x2CED, "Highlite International BV: Furion S402 Spot" }, |
2263 | | { 0x2CEE, "Highlite International BV: Furion W602 WashBeam" }, |
2264 | | { 0x2CEF, "Highlite International BV: Furion W402 WashBeam" }, |
2265 | | { 0x2CF0, "Highlite International BV: Furion H402 Hybrid" }, |
2266 | | { 0x2CF1, "Highlite International BV: Furion B402 Beam" }, |
2267 | | { 0x2CF2, "EXALUX: TiLINK" }, |
2268 | | { 0x2CF3, "Optoma Corporation: Projector" }, |
2269 | | { 0x2CF4, "Plura: SPTH1D" }, |
2270 | | { 0x2CF5, "City Theatrical: DMXcat E" }, |
2271 | | { 0x2CF6, "Chauvet Professional: Ovation E 2FCS" }, |
2272 | | { 0x2CF7, "Chauvet Professional: Ovation Reve F 3S" }, |
2273 | | { 0x2CF8, "Chauvet Professional: Ovation Reve E 3S" }, |
2274 | | { 0x2CF9, "Chauvet Professional: Strike Array 1BC" }, |
2275 | | { 0x2CFA, "Chauvet Professional: COLORado Solo FL" }, |
2276 | | { 0x2CFB, "Artistic Licence Engineering Ltd: TRUSS GATEWAY 4 RDM" }, |
2277 | | { 0x2CFC, "Artistic Licence Engineering Ltd: RACK DATA 8 RDM" }, |
2278 | | { 0x2CFD, "Artistic Licence Engineering Ltd: RACK GATEWAY 12 RDM" }, |
2279 | | { 0x2CFE, "Jiangmen Seekway Technology Limited: AN Controller" }, |
2280 | | { 0x2CFF, "Jiangmen Seekway Technology Limited: A308" }, |
2281 | | { 0x2D00, "Light Stream: Light Stream Player" }, |
2282 | | { 0x2D01, "kw Veranstaltungstechnik: Smart Test Tool" }, |
2283 | | { 0x2D02, "CLAYPAKY: VOLERO TWINS" }, |
2284 | | { 0x2D03, "CLAYPAKY: VOLERO CUBE" }, |
2285 | | { 0x2D04, "CLAYPAKY: PANIFY 2" }, |
2286 | | { 0x2D05, "CLAYPAKY: ACTORIS FRESNEL" }, |
2287 | | { 0x2D06, "CLAYPAKY: AROLLA WASH AQUA" }, |
2288 | | { 0x2D07, "CLAYPAKY: AROLLA AQUA LT" }, |
2289 | | { 0x2D08, "CLAYPAKY: ULTIMO BEAM" }, |
2290 | | { 0x2D09, "CLAYPAKY: ULTIMO SHARPY" }, |
2291 | | { 0x2D0A, "CLAYPAKY: ULTIMO HYBRID" }, |
2292 | | { 0x2D0B, "CLAYPAKY: TAMBORA STORMY LINEAR" }, |
2293 | | { 0x2D0C, "CLAYPAKY: TAMBORA GLARE" }, |
2294 | | { 0x2D0D, "CLAYPAKY: TAMBORA STORMY" }, |
2295 | | { 0x2D0E, "CLAYPAKY: TAMBORA RAYS" }, |
2296 | | { 0x2D0F, "CLAYPAKY: MINI B SPARKY AQUA" }, |
2297 | | { 0x2D10, "CLAYPAKY: MINI B AQUA PX" }, |
2298 | | { 0x2D11, "Martin Professional: P3 PowerPort 500 IP Install" }, |
2299 | | { 0x2D12, "Martin Professional: P3 PowerPort 500 IP Rental" }, |
2300 | | { 0x2D13, "Martin Professional: P3 PowerPort 2000" }, |
2301 | | { 0x2D14, "Martin Professional: Exterior DC Feeder" }, |
2302 | | { 0x2D15, "Martin Professional: Exterior AC Feeder" }, |
2303 | | { 0x2D16, "Martin Professional: Exterior Dot 9 Pro" }, |
2304 | | { 0x2D17, "Martin Professional: Exterior Dot 4 Pro" }, |
2305 | | { 0x2D18, "Hangzhou YD Illumination Co Ltd: LED Controller" }, |
2306 | | { 0x2D19, "Martin Professional: Exterior Dot 1 Pro" }, |
2307 | | { 0x2D1A, "Martin Professional: Exterior Dot HP Pro" }, |
2308 | | { 0x2D1B, "TELMIC Neo: U bar Trans" }, |
2309 | | { 0x2D1C, "TELMIC Neo: QUADTRA3" }, |
2310 | | { 0x2D1D, "inoage GmbH: MADRIX StarterTool" }, |
2311 | | { 0x2D1E, "inoage GmbH: MADRIX HARDWARE MANAGER" }, |
2312 | | { 0x2D1F, "matrix: matrix" }, |
2313 | | { 0x2D20, "CHAUVET Professional: Ovation Reve 1 Wash" }, |
2314 | | { 0x2D21, "CHAUVET Professional: Ovation Reve 1 Profile" }, |
2315 | | { 0x2D22, "CHAUVET Professional: Ovation Reve 1 Spot" }, |
2316 | | { 0x2D23, "CHAUVET Professional: Ovation Reve 2 Wash" }, |
2317 | | { 0x2D24, "CHAUVET Professional: Ovation Reve 2 Profile" }, |
2318 | | { 0x2D25, "CHAUVET Professional: Strike Verve" }, |
2319 | | { 0x2D26, "CLAYPAKY: AROLLA AQUA LT FS" }, |
2320 | | { 0x2D27, "GLP German Light Products GmbH: impression X5 IP" }, |
2321 | | { 0x2D28, "GLP German Light Products GmbH: GLP impression S500 Wash HC" }, |
2322 | | { 0x2D29, "GLP German Light Products GmbH: GLP impression S500 Profile HC" }, |
2323 | | { 0x2D2A, "GLP German Light Products GmbH: GLP impression S500 Profile HO" }, |
2324 | | { 0x2D2B, "Newlab Srl: AN FORREST SPI" }, |
2325 | | { 0x2D2C, "Obsidian Controls: Onyx" }, |
2326 | | { 0x2D2D, "Prolights: ASTRABLADE100IP" }, |
2327 | | { 0x2D2E, "Prolights: SUNBLASTFLX" }, |
2328 | | { 0x2D2F, "Prolights: HALUPIXDUO" }, |
2329 | | { 0x2D30, "CHAUVET Professional: Maverick Storm 1L Hybrid" }, |
2330 | | { 0x2D31, "Prolights: ECLPANELIPHARD2X1" }, |
2331 | | { 0x2D32, "Prolights: ECLPANELIPHARD1X1" }, |
2332 | | { 0x2D33, "Prolights: ECLPANELIPSOFT2X1" }, |
2333 | | { 0x2D34, "Prolights: ECLPANELIPSOFT1X1" }, |
2334 | | { 0x2D35, "BRITEQ Beglec NV: BTI BLIZZARD PROFILE" }, |
2335 | | { 0x2D36, "BRITEQ Beglec NV: BTI BLIZZARD BSW2" }, |
2336 | | { 0x2D37, "BRITEQ Beglec NV: BTI BLIZZARD WASH2" }, |
2337 | | { 0x2D38, "pro solution: sun star" }, |
2338 | | { 0x2D39, "Showtec: Festoonlight Q4" }, |
2339 | | { 0x2D3A, "Infinity: iW 1941" }, |
2340 | | { 0x2D3B, "Showtec: Titan Strobe FLEX FX" }, |
2341 | | { 0x2D3C, "Showtec: Octostrip FLEX" }, |
2342 | | { 0x2D3D, "Showtec: NET 45 IP" }, |
2343 | | { 0x2D3E, "Showtec: NET 43 IP" }, |
2344 | | { 0x2D3F, "Showtec: SPI2 Install" }, |
2345 | | { 0x2D40, "Showtec: NET 2 Panel" }, |
2346 | | { 0x2D41, "Showtec: NET 2 Install" }, |
2347 | | { 0x2D42, "Showtec: NET 2 5 Pocket" }, |
2348 | | { 0x2D43, "Showtec: NET 2 3 Pocket" }, |
2349 | | { 0x2D44, "WKL TEAM64: PROMYK 3 6" }, |
2350 | | { 0x2D45, "CHAUVET Professional: Strike V" }, |
2351 | | { 0x2D46, "CHAUVET Professional: Maveric Storm 1 Flex" }, |
2352 | | { 0x2D47, "Showjockey Technology Co Ltd: SJ DMX E32" }, |
2353 | | { 0x2D48, "Showjockey Technology Co Ltd: SJ DMX E24" }, |
2354 | | { 0x2D49, "Showjockey Technology Co Ltd: SJ DMX E8" }, |
2355 | | { 0x2D4A, "Showjockey Technology Co Ltd: SJ DMX E4" }, |
2356 | | { 0x2D4B, "Showjockey Technology Co Ltd: SJ DMX E2" }, |
2357 | | { 0x2D4C, "Audioeffetti: AE Node4" }, |
2358 | | { 0x2D4D, "Audioeffetti: AE Node8" }, |
2359 | | { 0x2D4E, "Chaostreff Backnang Ev: ChaosDMX" }, |
2360 | | { 0x2D4F, "The White Rabbit Company Inc: SPM Controller" }, |
2361 | | { 0x2D50, "FengYi: DLB" }, |
2362 | | { 0x2D51, "Myostat Motion Control: CM1 T" }, |
2363 | | { 0x2D52, "CHAUVET Professional: Maverick Storm 3 Profile" }, |
2364 | | { 0x2D53, "Showjockey Technology Co Ltd: SJ DMX E100" }, |
2365 | | { 0x2D54, "Steinigke Showtechnic GmbH: LED Pixel Ball PSU 5 MK2" }, |
2366 | | { 0x2D55, "Quasar Science: Rainbow 2 and Double Rainbow" }, |
2367 | | { 0x2D56, "Videndum: Astra IP" }, |
2368 | | { 0x2D57, "CHAUVET Professional: Maverick Force X Spot" }, |
2369 | | { 0x2D58, "CHAUVET Professional: Maverick Force X Profile" }, |
2370 | | { 0x2D59, "CHAUVET Professional: Maveric Force X Spot" }, |
2371 | | { 0x2D5A, "Luminex Lighting Control Equipment: LumiNode 8 IP" }, |
2372 | | { 0x2D5B, "Benjamin Graf Ton und Medientechnik: DmxRgbDisplay" }, |
2373 | | { 0x2D5C, "Cindy Professional Lighting Co Ltd: CL 180C BEAM" }, |
2374 | | { 0x2D5D, "Cindy Professional Lighting Co Ltd: CL 1950 WASH" }, |
2375 | | { 0x2D5E, "Cindy Professional Lighting Co Ltd: CL 2850 WASH" }, |
2376 | | { 0x2D5F, "Cindy Professional Lighting Co Ltd: CL 650D HYBRID" }, |
2377 | | { 0x2D60, "Cindy Professional Lighting Co Ltd: CL 800 BSWF" }, |
2378 | | { 0x2D61, "Cindy Professional Lighting Co Ltd: CL 1800 WF" }, |
2379 | | { 0x2D62, "Cindy Professional Lighting Co Ltd: CL 1800 BSWF" }, |
2380 | | { 0x2D63, "Cindy Professional Lighting Co Ltd: CL 1060 WEAVER" }, |
2381 | | { 0x2D64, "Prolights: AETHERBOX" }, |
2382 | | { 0x2D65, "Prolights: PIXELBRUTE" }, |
2383 | | { 0x2D66, "Prolights: ASTRAPROFILE900" }, |
2384 | | { 0x2D67, "Prolights: ASTRAHYB260IP" }, |
2385 | | { 0x2D68, "Integrated System Technologies Ltd: iDrive Ultima 36" }, |
2386 | | { 0x2D69, "sqdlighting: SQD ZNJCX1 12" }, |
2387 | | { 0x2D6A, "sqdlighting: SQD ZNJCX1 6" }, |
2388 | | { 0x2D6B, "sqdlighting: SQD ZNFDQ1 8" }, |
2389 | | { 0x2D6C, "sqdlighting: SQD ZNJCX 6" }, |
2390 | | { 0x2D6D, "sqdlighting: SQD ZNJCX 12" }, |
2391 | | { 0x2D6E, "sqdlighting: SQD NOODE2 8" }, |
2392 | | { 0x2D6F, "sqdlighting: SQD NOODE2 4" }, |
2393 | | { 0x2D70, "sqdlighting: SQD NOODE2 2" }, |
2394 | | { 0x2D71, "sqdlighting: SQD NOODE1 2" }, |
2395 | | { 0x2D72, "sqdlighting: SQD NOODE1 4" }, |
2396 | | { 0x2D73, "sqdlighting: SQD NOODE1 8" }, |
2397 | | { 0x2D74, "sqdlighting: SQD NODE1 2" }, |
2398 | | { 0x2D75, "sqdlighting: SQD NODE1 2a" }, |
2399 | | { 0x2D76, "sqdlighting: SQD NOODE2 2a" }, |
2400 | | { 0x2D77, "sqdlighting: SQD NOODE2 4a" }, |
2401 | | { 0x2D78, "sqdlighting: SQD NOODE2 8a" }, |
2402 | | { 0x2D79, "Calvitia Limited: Wireless Pixel Driver" }, |
2403 | | { 0x2D7A, "Plura: DTG" }, |
2404 | | { 0x2D7B, "Plura: UD Stage" }, |
2405 | | { 0x2D7C, "Artistic Licence: artCore" }, |
2406 | | { 0x2D7D, "Huizhou LATU Film Equipment Co Ltd: SD1200B" }, |
2407 | | { 0x2D7E, "EQ2: GinormoTime" }, |
2408 | | { 0x2D7F, "De Sisti: OEMDeSisti" }, |
2409 | | { 0x2D80, "L8 LLC: L8" }, |
2410 | | { 0x2D81, "Martin Professional: VDO Sceptron XB 1000mm" }, |
2411 | | { 0x2D82, "Martin Professional: VDO Sceptron XB 320mm" }, |
2412 | | { 0x2D83, "Martin Professional: MAC Aura Raven XIP" }, |
2413 | | { 0x2D84, "Blizzard Lighting LLC: Stingray" }, |
2414 | | { 0x2D85, "Cindy Professional Lighting Co Ltd: CL 800PLUS BSWF" }, |
2415 | | { 0x2D86, "Cindy Professional Lighting Co Ltd: CL 750 HYBRID" }, |
2416 | | { 0x2D87, "Lumenpulse Lighting Inc: Lumenlink Pro" }, |
2417 | | { 0x2D88, "Lumenpulse Lighting Inc: CBOX ExtendX" }, |
2418 | | { 0x2D89, "Highlite International BV: Goliath" }, |
2419 | | { 0x2D8A, "RMLX: StageThing" }, |
2420 | | { 0x2D8B, "Singularity (UK) Ltd: RefCon" }, |
2421 | | { 0x2D8C, "ADJ Products: Vizi Pix Z19" }, |
2422 | | { 0x2D8D, "ADJ Products: Vintage Bar" }, |
2423 | | { 0x2D8E, "GLP German Light Products GmbH: JDC Burst 1" }, |
2424 | | { 0x2D8F, "GLP German Light Products GmbH: Creos" }, |
2425 | | { 0x2D90, "GLP German Light Products GmbH: MAD MAXX CMY" }, |
2426 | | { 0x2D91, "GLP German Light Products GmbH: MAD MAXX CW" }, |
2427 | | { 0x2D92, "GLP German Light Products GmbH: Matrix Burst" }, |
2428 | | { 0x2D93, "GLP German Light Products GmbH: Wild Bar 9X" }, |
2429 | | { 0x2D94, "GLP German Light Products GmbH: Wild Batten 16" }, |
2430 | | { 0x2D95, "GLP German Light Products GmbH: Wild Bar 16" }, |
2431 | | { 0x2D96, "Dijiabaosheng: Projector" }, |
2432 | | { 0x2D97, "Cronic Lighting: Cronic Node DMX Mini" }, |
2433 | | { 0x2D98, "Cronic Lighting: Cronic Node DMX" }, |
2434 | | { 0x2D99, "SQD lighting Co Limited: SQD ZNJCX112Z" }, |
2435 | | { 0x2D9A, "SQD lighting Co Limited: SQD ZNJCX16Z" }, |
2436 | | { 0x2D9B, "Highlite International BV: Furion FX402 Bar" }, |
2437 | | { 0x2D9D, "Prolights: SUNRISE2FLXFC" }, |
2438 | | { 0x2D9E, "Prolights: ASTRAHYB330IP" }, |
2439 | | { 0x2D9F, "Prolights: ASTRAHYB330" }, |
2440 | | { 0x2DA0, "Light Stream: Light Stream Converter 8Lite" }, |
2441 | | { 0x2DA1, "Light Stream: Light Stream Converter 2" }, |
2442 | | { 0x2DA2, "Light Stream: Light Stream Converter 6" }, |
2443 | | { 0x2DA3, "SQD lighting Co Limited: SQD ZNFDQ14" }, |
2444 | | { 0x2DA4, "SQD lighting Co Limited: CD90RACK 48i" }, |
2445 | | { 0x2DA5, "SQD lighting Co Limited: CD90RACK 96i" }, |
2446 | | { 0x2DA6, "8lightspace limited: Beambar" }, |
2447 | | { 0x2DA7, "Vari-Lite: VLHive 151 Digital FX" }, |
2448 | | { 0x2DA8, "Cindy Professional Lighting Co Ltd: CL400LS BEAM" }, |
2449 | | { 0x2DA9, "Pyrotechnics Management Inc: FireOne TimeMachine" }, |
2450 | | { 0x2DAA, "QubiCast GmbH: QubiCore" }, |
2451 | | { 0x2DAB, "Prolights: ASTRABEAM120IP" }, |
2452 | | { 0x2DAC, "NXT Lights: FLEXON L" }, |
2453 | | { 0x2DAD, "NXT Lights: NEXON M" }, |
2454 | | { 0x2DAE, "Sharp Corporation: Flat Panel Display" }, |
2455 | | { 0x2DAF, "Sharp Corporation: Projector" }, |
2456 | | { 0x2DB0, "GuangZhou Dream Lighting Equipment Co Ltd: DREAM L1600HP FLAG" }, |
2457 | | { 0x2DB1, "GLP German Light Products GmbH: Matrix Eye 4" }, |
2458 | | { 0x2DB2, "GLP German Light Products GmbH: Matrix Eye 2" }, |
2459 | | { 0x2DB3, "CLAYPAKY: AROLLA AQUA SP" }, |
2460 | | { 0x2DB4, "CLAYPAKY: AROLLA AQUA MP" }, |
2461 | | { 0x2DB5, "CLAYPAKY: AROLLA AQUA HP FS" }, |
2462 | | { 0x2DB6, "CLAYPAKY: AROLLA AQUA HP" }, |
2463 | | { 0x2DB7, "CLAYPAKY: ULTIMO SKYBEAM" }, |
2464 | | { 0x2DB8, "SQD lighting Co Limited: SQD SN2048 H" }, |
2465 | | { 0x2DB9, "SQD lighting Co Limited: SQD SN1024 H" }, |
2466 | | { 0x2DBA, "Cindy Professional Lighting Co Ltd: CL 1000 BSWF" }, |
2467 | | { 0x2DBB, "Cindy Professional Lighting Co Ltd: CL 600C TRIDENT" }, |
2468 | | { 0x2DBC, "Cindy Professional Lighting Co Ltd: CL 200C PUZZLE" }, |
2469 | | { 0x2DBD, "Cindy Professional Lighting Co Ltd: CL 200C COMPACT PUZZLE" }, |
2470 | | { 0x2DBE, "Calvitia Limited: Wired Pixel Driver" }, |
2471 | | { 0x2DBF, "Dijiabaosheng: Projector" }, |
2472 | | { 0x2DC0, "Chauvet Professional: COLORado Edge 3" }, |
2473 | | { 0x2DC1, "Chauvet Professional: COLORado Edge 1" }, |
2474 | | { 0x2DC2, "Visual Productions BV: SpiNode" }, |
2475 | | { 0x2DC3, "Visual Productions BV: RdmNode" }, |
2476 | | { 0x2DC4, "Chauvet: Ovation Reve 2 Profile" }, |
2477 | | { 0x2DC5, "Equipson SA: NODE 4" }, |
2478 | | { 0x2DC6, "Equipson SA: NODE 2" }, |
2479 | | { 0x2DC7, "Equipson SA: NODE 1" }, |
2480 | | { 0x2DC8, "CEE Lighting Equipment Co Ltd: NP4096" }, |
2481 | | { 0x2DC9, "TELMIC Neo: ADC20" }, |
2482 | | { 0x2DCA, "Lumenpulse Lighting Inc: LumenID software" }, |
2483 | | { 0x2DCB, "Cindy Professional Lighting Co Ltd: CL 780D BEAM" }, |
2484 | | { 0x2DCC, "Cindy Professional Lighting Co Ltd: CP3 WASH" }, |
2485 | | { 0x2DCD, "Cindy Professional Lighting Co Ltd: CP3 BSWF" }, |
2486 | | { 0x2DCE, "Cindy Professional Lighting Co Ltd: CP2 BAR" }, |
2487 | | { 0x2DCF, "Blizzard Lighting: Stingray DMX App" }, |
2488 | | { 0x2DD0, "ROBERT JULIAT: BIZET 370" }, |
2489 | | { 0x2DD1, "ROBERT JULIAT: BIZET 770X" }, |
2490 | | { 0x2DD2, "ROBERT JULIAT: BIZET 370 MOT" }, |
2491 | | { 0x2DD3, "ROBERT JULIAT: MORGANE 1489" }, |
2492 | | { 0x2DD4, "SWISSON AG: XND 1" }, |
2493 | | { 0x2DD5, "The Viva Foundation of South Africa: Hybrid Mini 1000T" }, |
2494 | | { 0x2DD6, "INACKS: IS3730" }, |
2495 | | { 0x2DD7, "Changsha ZMIOT Co Ltd: ZM-AF8K" }, |
2496 | | { 0x2DD8, "Foshan Xinzhijie Optoelectronics: XZJ led800" }, |
2497 | | { 0x2DD9, "Foshan Xinzhijie Optoelectronics: XZJ 8CH LNC" }, |
2498 | | { 0x2DDA, "Foshan Xinzhijie Optoelectronics: XZJ 4CH LNC" }, |
2499 | | { 0x2DDB, "Foshan Xinzhijie Optoelectronics: XZJ 2CH LNC" }, |
2500 | | { 0x2DDC, "Foshan Xinzhijie Optoelectronics: XZJ 2CH LNC" }, |
2501 | | { 0x2DDD, "ashl ee: Triggerino" }, |
2502 | | { 0x2DDE, "Highlite International BV: Signature TF480C6 Fresnel" }, |
2503 | | { 0x2DDF, "Highlite International BV: Signature TS480C6 Profile" }, |
2504 | | { 0x2DE0, "PXM: Px749" }, |
2505 | | { 0x2DE1, "MSL: BT NODE24 Mk2" }, |
2506 | | { 0x2DE2, "Changsha ZMIOT Co Ltd: ZM AF08" }, |
2507 | | { 0x2DE3, "roca: burro" }, |
2508 | | { 0x2DE4, "Vari Lite: 3 Port DIN PCB PN 97 0387" }, |
2509 | | { 0x2DE5, "Vari Lite: 3 Port Embedded PCB PN 74261" }, |
2510 | | { 0x2DE6, "Vari Lite: 8 Port Node PN 65168" }, |
2511 | | { 0x2DE7, "Vari Lite: 2 Port Node PN 65162" }, |
2512 | | { 0x2DE8, "Vari Lite: Single Gang Node PN 65161" }, |
2513 | | { 0x2DE9, "tarm AG: tarm REVOLT RGB" }, |
2514 | | { 0x2DEA, "tarm AG: tarm REVOLT" }, |
2515 | | { 0x2DEB, "Prolights: ASTRAPROFILE600IP" }, |
2516 | | { 0x2DEC, "Prolights: ASTRAPROFILE400" }, |
2517 | | { 0x2DED, "Prolights: ASTRAWASH37PIX" }, |
2518 | | { 0x2DEE, "Prolights: ASTRAWASH19PIXIP" }, |
2519 | | { 0x2DEF, "Prolights: ASTRAWASH19PIX" }, |
2520 | | { 0x2DF0, "Prolights: ASTRAWASH7PIXIP" }, |
2521 | | { 0x2DF1, "Prolights: ASTRAWASH7PIX" }, |
2522 | | { 0x2DF2, "Prolights: ASTRAPROF300LTIP" }, |
2523 | | { 0x2DF3, "Prolights: ASTRAPROF500LTIP" }, |
2524 | | { 0x2DF4, "Prolights: LUMIPIXXB100" }, |
2525 | | { 0x2DF5, "Prolights: AETHERBOXTWO" }, |
2526 | | { 0x2DF6, "Prolights: ASTRAPROF1000MC" }, |
2527 | | { 0x2DF7, "Prolights: AETHERBOXONE" }, |
2528 | | { 0x2DF8, "Prolights: HALUSTRIPDUO" }, |
2529 | | { 0x2DF9, "Prolights: SUNBARFLX" }, |
2530 | | { 0x2DFA, "Prolights: SUNRISE2FLXVW" }, |
2531 | | { 0x2DFB, "Prolights: ASTRAPROF1200IP" }, |
2532 | | { 0x2DFC, "BRITEQ Beglec NV: BT NODE28x" }, |
2533 | | { 0x2DFD, "Chauvet Professional: Epix X1 IP 50cm" }, |
2534 | | { 0x2DFE, "Chauvet Professional: Epix X1 IP 100cm" }, |
2535 | | { 0x2DFF, "Chauvet Professional: Epix Drive 4X IP" }, |
2536 | | { 0x2E00, "PIXL Lighting Inc.: PixlGear" }, |
2537 | | { 0x8000, "Artistic Licence Engineering Ltd: Netgate XT" }, |
2538 | | { 0x8001, "Artistic Licence Engineering Ltd: Net Patch" }, |
2539 | | { 0x8002, "Artistic Licence Engineering Ltd: DMX Hub XT" }, |
2540 | | { 0x8003, "Artistic Licence Engineering Ltd: Four Play" }, |
2541 | | { 0xFFFF, "Artistic Licence Engineering Ltd: OemGlobal" }, |
2542 | | { 0, NULL } |
2543 | | }; |
2544 | | static value_string_ext artnet_oem_code_vals_ext = VALUE_STRING_EXT_INIT(artnet_oem_code_vals); |
2545 | | |
2546 | | static const value_string artnet_indicator_state_vals[] = { |
2547 | | { 0x00, "unknown" }, |
2548 | | { 0x01, "Locate Mode" }, |
2549 | | { 0x02, "Mute Mode" }, |
2550 | | { 0x03, "Normal Mode" }, |
2551 | | { 0, NULL } |
2552 | | }; |
2553 | | |
2554 | | static const true_false_string tfs_artnet_rom_booted = { |
2555 | | "Booted from ROM", |
2556 | | "Normal boot (from flash)" |
2557 | | }; |
2558 | | |
2559 | | static const value_string artnet_port_prog_auth_vals[] = { |
2560 | | { 0x00, "unknown" }, |
2561 | | { 0x01, "front panel" }, |
2562 | | { 0x02, "network" }, |
2563 | | { 0x03, "unused" }, |
2564 | | { 0, NULL } |
2565 | | }; |
2566 | | |
2567 | | #define ARTNET_PT_DMX512 0x00 |
2568 | | #define ARTNET_PT_MIDI 0x01 |
2569 | | #define ARTNET_PT_AVAB 0x02 |
2570 | | #define ARTNET_PT_CMX 0x03 |
2571 | | #define ARTNET_PT_ADB625 0x04 |
2572 | | #define ARTNET_PT_ARTNET 0x05 |
2573 | | #define ARTNET_PT_DALI 0x06 |
2574 | | |
2575 | | #define ARTNET_PT_DIR_NONE 0x00 |
2576 | | #define ARTNET_PT_DIR_INPUT 0x40 |
2577 | | #define ARTNET_PT_DIR_OUTPUT 0x80 |
2578 | | #define ARTNET_PT_DIR_BIDIR 0xc0 |
2579 | | |
2580 | | static const value_string artnet_port_type_vals[] = { |
2581 | | { ARTNET_PT_DIR_NONE , "Not present" }, |
2582 | | { ARTNET_PT_DIR_INPUT | ARTNET_PT_DMX512, "DMX512 -> Art-Net" }, |
2583 | | { ARTNET_PT_DIR_INPUT | ARTNET_PT_MIDI, "MIDI -> Art-Net" }, |
2584 | | { ARTNET_PT_DIR_INPUT | ARTNET_PT_AVAB, "Avab -> Art-Net" }, |
2585 | | { ARTNET_PT_DIR_INPUT | ARTNET_PT_CMX, "Colortran CMX -> Art-Net" }, |
2586 | | { ARTNET_PT_DIR_INPUT | ARTNET_PT_ADB625, "ADB 62.5 -> Art-Net" }, |
2587 | | { ARTNET_PT_DIR_INPUT | ARTNET_PT_ARTNET, "Art-Net -> Art-Net" }, |
2588 | | { ARTNET_PT_DIR_INPUT | ARTNET_PT_DALI, "DALI -> Art-Net" }, |
2589 | | { ARTNET_PT_DIR_OUTPUT | ARTNET_PT_DMX512, "Art-Net -> DMX512" }, |
2590 | | { ARTNET_PT_DIR_OUTPUT | ARTNET_PT_MIDI, "Art-Net -> MIDI" }, |
2591 | | { ARTNET_PT_DIR_OUTPUT | ARTNET_PT_AVAB, "Art-Net -> Avab" }, |
2592 | | { ARTNET_PT_DIR_OUTPUT | ARTNET_PT_CMX, "Art-Net -> Colortran CMX" }, |
2593 | | { ARTNET_PT_DIR_OUTPUT | ARTNET_PT_ADB625, "Art-Net -> ADB 62.5" }, |
2594 | | { ARTNET_PT_DIR_OUTPUT | ARTNET_PT_ARTNET, "Art-Net -> Art-Net" }, |
2595 | | { ARTNET_PT_DIR_OUTPUT | ARTNET_PT_DALI, "Art-Net -> DALI" }, |
2596 | | { ARTNET_PT_DIR_BIDIR | ARTNET_PT_DMX512, "Art-Net <-> DMX512" }, |
2597 | | { ARTNET_PT_DIR_BIDIR | ARTNET_PT_MIDI, "Art-Net <-> MIDI" }, |
2598 | | { ARTNET_PT_DIR_BIDIR | ARTNET_PT_AVAB, "Art-Net <-> Avab" }, |
2599 | | { ARTNET_PT_DIR_BIDIR | ARTNET_PT_CMX, "Art-Net <-> Colortran CMX" }, |
2600 | | { ARTNET_PT_DIR_BIDIR | ARTNET_PT_ADB625, "Art-Net <-> ADB 62.5" }, |
2601 | | { ARTNET_PT_DIR_BIDIR | ARTNET_PT_ARTNET, "Art-Net <-> Art-Net" }, |
2602 | | { ARTNET_PT_DIR_BIDIR | ARTNET_PT_DALI, "Art-Net <-> DALI" }, |
2603 | | { 0, NULL } |
2604 | | }; |
2605 | | |
2606 | | |
2607 | | #define ARTNET_AC_NONE 0x00 |
2608 | | #define ARTNET_AC_CANCEL_MERGE 0x01 |
2609 | | #define ARTNET_AC_LED_NORMAL 0x02 |
2610 | | #define ARTNET_AC_LED_MUTE 0x03 |
2611 | | #define ARTNET_AC_LED_LOCATE 0x04 |
2612 | | #define ARTNET_AC_RESET_RX_FLAGS 0x05 |
2613 | | #define ARTNET_AC_ANALYSIS_ON 0x06 |
2614 | | #define ARTNET_AC_ANALYSIS_OFF 0x07 |
2615 | | #define ARTNET_AC_FAIL_HOLD 0x08 |
2616 | | #define ARTNET_AC_FAIL_ZERO 0x09 |
2617 | | #define ARTNET_AC_FAIL_FULL 0x0A |
2618 | | #define ARTNET_AC_FAIL_SCENE 0x0B |
2619 | | #define ARTNET_AC_FAIL_RECORD 0x0C |
2620 | | #define ARTNET_AC_MERGE_LTP0 0x10 |
2621 | | #define ARTNET_AC_MERGE_LTP1 0x11 |
2622 | | #define ARTNET_AC_MERGE_LTP2 0x12 |
2623 | | #define ARTNET_AC_MERGE_LTP3 0x13 |
2624 | | #define ARTNET_AC_DIR_TX0 0x20 |
2625 | | #define ARTNET_AC_DIR_TX1 0x21 |
2626 | | #define ARTNET_AC_DIR_TX2 0x22 |
2627 | | #define ARTNET_AC_DIR_TX3 0x23 |
2628 | | #define ARTNET_AC_DIR_RX0 0x30 |
2629 | | #define ARTNET_AC_DIR_RX1 0x31 |
2630 | | #define ARTNET_AC_DIR_RX2 0x32 |
2631 | | #define ARTNET_AC_DIR_RX3 0x33 |
2632 | | #define ARTNET_AC_MERGE_HTP0 0x50 |
2633 | | #define ARTNET_AC_MERGE_HTP1 0x51 |
2634 | | #define ARTNET_AC_MERGE_HTP2 0x52 |
2635 | | #define ARTNET_AC_MERGE_HTP3 0x53 |
2636 | | #define ARTNET_AC_ARTNET_SEL0 0x60 |
2637 | | #define ARTNET_AC_ARTNET_SEL1 0x61 |
2638 | | #define ARTNET_AC_ARTNET_SEL2 0x62 |
2639 | | #define ARTNET_AC_ARTNET_SEL3 0x63 |
2640 | | #define ARTNET_AC_ACN_SEL0 0x70 |
2641 | | #define ARTNET_AC_ACN_SEL1 0x71 |
2642 | | #define ARTNET_AC_ACN_SEL2 0x72 |
2643 | | #define ARTNET_AC_ACN_SEL3 0x73 |
2644 | | #define ARTNET_AC_CLEAR_OP0 0x90 |
2645 | | #define ARTNET_AC_CLEAR_OP1 0x91 |
2646 | | #define ARTNET_AC_CLEAR_OP2 0x92 |
2647 | | #define ARTNET_AC_CLEAR_OP3 0x93 |
2648 | | #define ARTNET_AC_STYLE_DELTA0 0xA0 |
2649 | | #define ARTNET_AC_STYLE_DELTA1 0xA1 |
2650 | | #define ARTNET_AC_STYLE_DELTA2 0xA2 |
2651 | | #define ARTNET_AC_STYLE_DELTA3 0xA3 |
2652 | | #define ARTNET_AC_STYLE_CONST0 0xB0 |
2653 | | #define ARTNET_AC_STYLE_CONST1 0xB1 |
2654 | | #define ARTNET_AC_STYLE_CONST2 0xB2 |
2655 | | #define ARTNET_AC_STYLE_CONST3 0xB3 |
2656 | | #define ARTNET_AC_RDM_ENABLE0 0xC0 |
2657 | | #define ARTNET_AC_RDM_ENABLE1 0xC1 |
2658 | | #define ARTNET_AC_RDM_ENABLE2 0xC2 |
2659 | | #define ARTNET_AC_RDM_ENABLE3 0xC3 |
2660 | | #define ARTNET_AC_RDM_DISABLE0 0xD0 |
2661 | | #define ARTNET_AC_RDM_DISABLE1 0xD1 |
2662 | | #define ARTNET_AC_RDM_DISABLE2 0xD2 |
2663 | | #define ARTNET_AC_RDM_DISABLE3 0xD3 |
2664 | | #define ARTNET_AC_BQP0 0xE0 |
2665 | | #define ARTNET_AC_BQP1 0xE1 |
2666 | | #define ARTNET_AC_BQP2 0xE2 |
2667 | | #define ARTNET_AC_BQP3 0xE3 |
2668 | | #define ARTNET_AC_BQP4 0xE4 |
2669 | | #define ARTNET_AC_BQP5 0xE5 |
2670 | | #define ARTNET_AC_BQP6 0xE6 |
2671 | | #define ARTNET_AC_BQP7 0xE7 |
2672 | | #define ARTNET_AC_BQP8 0xE8 |
2673 | | #define ARTNET_AC_BQP9 0xE9 |
2674 | | #define ARTNET_AC_BQP10 0xEA |
2675 | | #define ARTNET_AC_BQP11 0xEB |
2676 | | #define ARTNET_AC_BQP12 0xEC |
2677 | | #define ARTNET_AC_BQP13 0xED |
2678 | | #define ARTNET_AC_BQP14 0xEE |
2679 | | #define ARTNET_AC_BQP15 0xEF |
2680 | | |
2681 | | static const value_string artnet_address_command_vals[] = { |
2682 | | { ARTNET_AC_NONE, "No Action" }, |
2683 | | { ARTNET_AC_CANCEL_MERGE, "Cancel merge" }, |
2684 | | { ARTNET_AC_LED_NORMAL, "LED Normal" }, |
2685 | | { ARTNET_AC_LED_MUTE, "LED Mute" }, |
2686 | | { ARTNET_AC_LED_LOCATE, "LED Locate" }, |
2687 | | { ARTNET_AC_RESET_RX_FLAGS, "Reset SIP text" }, |
2688 | | { ARTNET_AC_ANALYSIS_ON, "Enable analysis/debugging" }, |
2689 | | { ARTNET_AC_ANALYSIS_OFF, "Disable analysis/debugging" }, |
2690 | | { ARTNET_AC_FAIL_HOLD, "AcFail: Set outputs to hold last state" }, |
2691 | | { ARTNET_AC_FAIL_ZERO, "AcFail: Set outputs to zero" }, |
2692 | | { ARTNET_AC_FAIL_FULL, "AcFail: Set outputs to full" }, |
2693 | | { ARTNET_AC_FAIL_SCENE, "AcFail: Set outputs to failsafe scene" }, |
2694 | | { ARTNET_AC_FAIL_RECORD, "AcFail: Record outputs as failsafe scene" }, |
2695 | | { ARTNET_AC_MERGE_LTP0, "DMX port 1 LTP" }, |
2696 | | { ARTNET_AC_MERGE_LTP1, "DMX port 2 LTP" }, |
2697 | | { ARTNET_AC_MERGE_LTP2, "DMX port 3 LTP" }, |
2698 | | { ARTNET_AC_MERGE_LTP3, "DMX port 4 LTP" }, |
2699 | | { ARTNET_AC_DIR_TX0, "Set Port 0 direction to output" }, |
2700 | | { ARTNET_AC_DIR_TX1, "Set Port 1 direction to output (deprecated)" }, |
2701 | | { ARTNET_AC_DIR_TX2, "Set Port 2 direction to output (deprecated)" }, |
2702 | | { ARTNET_AC_DIR_TX3, "Set Port 3 direction to output (deprecated)" }, |
2703 | | { ARTNET_AC_DIR_RX0, "Set Port 0 direction to input" }, |
2704 | | { ARTNET_AC_DIR_RX1, "Set Port 1 direction to input (deprecated)" }, |
2705 | | { ARTNET_AC_DIR_RX2, "Set Port 2 direction to input (deprecated)" }, |
2706 | | { ARTNET_AC_DIR_RX3, "Set Port 3 direction to input (deprecated)" }, |
2707 | | { ARTNET_AC_MERGE_HTP0, "DMX port 1 HTP" }, |
2708 | | { ARTNET_AC_MERGE_HTP1, "DMX port 2 HTP" }, |
2709 | | { ARTNET_AC_MERGE_HTP2, "DMX port 3 HTP" }, |
2710 | | { ARTNET_AC_MERGE_HTP3, "DMX port 4 HTP" }, |
2711 | | { ARTNET_AC_ARTNET_SEL0, "DMX port 1 Art-Net -> DMX/RDM" }, |
2712 | | { ARTNET_AC_ARTNET_SEL1, "DMX port 2 Art-Net -> DMX/RDM" }, |
2713 | | { ARTNET_AC_ARTNET_SEL2, "DMX port 3 Art-Net -> DMX/RDM" }, |
2714 | | { ARTNET_AC_ARTNET_SEL3, "DMX port 4 Art-Net -> DMX/RDM" }, |
2715 | | { ARTNET_AC_ACN_SEL0, "DMX port 1 Art-Net -> RDM, sACN -> DMX" }, |
2716 | | { ARTNET_AC_ACN_SEL1, "DMX port 2 Art-Net -> RDM, sACN -> DMX" }, |
2717 | | { ARTNET_AC_ACN_SEL2, "DMX port 3 Art-Net -> RDM, sACN -> DMX" }, |
2718 | | { ARTNET_AC_ACN_SEL3, "DMX port 4 Art-Net -> RDM, sACN -> DMX" }, |
2719 | | { ARTNET_AC_CLEAR_OP0, "Clear DMX port 1" }, |
2720 | | { ARTNET_AC_CLEAR_OP1, "Clear DMX port 2" }, |
2721 | | { ARTNET_AC_CLEAR_OP2, "Clear DMX port 3" }, |
2722 | | { ARTNET_AC_CLEAR_OP3, "Clear DMX port 4" }, |
2723 | | { ARTNET_AC_STYLE_DELTA0, "DMX port 1 delta mode" }, |
2724 | | { ARTNET_AC_STYLE_DELTA1, "DMX port 2 delta mode" }, |
2725 | | { ARTNET_AC_STYLE_DELTA2, "DMX port 3 delta mode" }, |
2726 | | { ARTNET_AC_STYLE_DELTA3, "DMX port 4 delta mode" }, |
2727 | | { ARTNET_AC_STYLE_CONST0, "DMX port 1 constant mode" }, |
2728 | | { ARTNET_AC_STYLE_CONST1, "DMX port 2 constant mode" }, |
2729 | | { ARTNET_AC_STYLE_CONST2, "DMX port 3 constant mode" }, |
2730 | | { ARTNET_AC_STYLE_CONST3, "DMX port 4 constant mode" }, |
2731 | | { ARTNET_AC_RDM_ENABLE0, "DMX port 1 enable RDM" }, |
2732 | | { ARTNET_AC_RDM_ENABLE1, "DMX port 2 enable RDM" }, |
2733 | | { ARTNET_AC_RDM_ENABLE2, "DMX port 3 enable RDM" }, |
2734 | | { ARTNET_AC_RDM_ENABLE3, "DMX port 4 enable RDM" }, |
2735 | | { ARTNET_AC_RDM_DISABLE0, "DMX port 1 disable RDM" }, |
2736 | | { ARTNET_AC_RDM_DISABLE1, "DMX port 2 disable RDM" }, |
2737 | | { ARTNET_AC_RDM_DISABLE2, "DMX port 3 disable RDM" }, |
2738 | | { ARTNET_AC_RDM_DISABLE3, "DMX port 4 disable RDM" }, |
2739 | | { ARTNET_AC_BQP0, "Set BackgroundQueuePolicy to 0 (Collect using STATUS_NONE)" }, |
2740 | | { ARTNET_AC_BQP1, "Set BackgroundQueuePolicy to 1 (Collect using STATUS_ADVISORY)" }, |
2741 | | { ARTNET_AC_BQP2, "Set BackgroundQueuePolicy to 2 (Collect using STATUS_WARNING)" }, |
2742 | | { ARTNET_AC_BQP3, "Set BackgroundQueuePolicy to 3 (Collect using STATUS_ERROR)" }, |
2743 | | { ARTNET_AC_BQP4, "Set BackgroundQueuePolicy to 4 (Disabled)" }, |
2744 | | { ARTNET_AC_BQP5, "Set BackgroundQueuePolicy to 5 (user defined)" }, |
2745 | | { ARTNET_AC_BQP6, "Set BackgroundQueuePolicy to 6 (user defined)" }, |
2746 | | { ARTNET_AC_BQP7, "Set BackgroundQueuePolicy to 7 (user defined)" }, |
2747 | | { ARTNET_AC_BQP8, "Set BackgroundQueuePolicy to 8 (user defined)" }, |
2748 | | { ARTNET_AC_BQP9, "Set BackgroundQueuePolicy to 9 (user defined)" }, |
2749 | | { ARTNET_AC_BQP10, "Set BackgroundQueuePolicy to 10 (user defined)" }, |
2750 | | { ARTNET_AC_BQP11, "Set BackgroundQueuePolicy to 11 (user defined)" }, |
2751 | | { ARTNET_AC_BQP12, "Set BackgroundQueuePolicy to 12 (user defined)" }, |
2752 | | { ARTNET_AC_BQP13, "Set BackgroundQueuePolicy to 13 (user defined)" }, |
2753 | | { ARTNET_AC_BQP14, "Set BackgroundQueuePolicy to 14 (user defined)" }, |
2754 | | { ARTNET_AC_BQP15, "Set BackgroundQueuePolicy to 15 (user defined)" }, |
2755 | | { 0, NULL } |
2756 | | }; |
2757 | | |
2758 | | #define ARTNET_FT_FIRM_FIRST 0x00 |
2759 | | #define ARTNET_FT_FIRM_CONT 0x01 |
2760 | | #define ARTNET_FT_FIRM_LAST 0x02 |
2761 | | #define ARTNET_FT_UBEA_FIRST 0x03 |
2762 | | #define ARTNET_FT_UBEA_CONT 0x04 |
2763 | | #define ARTNET_FT_UBEA_LAST 0x05 |
2764 | | |
2765 | | static const value_string artnet_firmware_master_type_vals[] = { |
2766 | | { ARTNET_FT_FIRM_FIRST, "FirmFirst" }, |
2767 | | { ARTNET_FT_FIRM_CONT, "FirmCont" }, |
2768 | | { ARTNET_FT_FIRM_LAST, "FirmLast" }, |
2769 | | { ARTNET_FT_UBEA_FIRST, "UbeaFirst" }, |
2770 | | { ARTNET_FT_UBEA_CONT, "UbeaCont" }, |
2771 | | { ARTNET_FT_UBEA_LAST, "UbeaLast" }, |
2772 | | { 0, NULL } |
2773 | | }; |
2774 | | |
2775 | | #define ARTNET_FRT_FIRM_BLOCK_GOOD 0x00 |
2776 | | #define ARTNET_FRT_FIRM_ALL_GOOD 0x01 |
2777 | | #define ARTNET_FRT_FIRM_FAIL 0xff |
2778 | | |
2779 | | static const value_string artnet_firmware_reply_type_vals[] = { |
2780 | | { ARTNET_FRT_FIRM_BLOCK_GOOD, "FirmBlockGood" }, |
2781 | | { ARTNET_FRT_FIRM_ALL_GOOD, "FirmAllGood" }, |
2782 | | { ARTNET_FRT_FIRM_FAIL, "FirmFail" }, |
2783 | | { 0, NULL } |
2784 | | }; |
2785 | | |
2786 | | #define ARTNET_TRC_TOD_FULL 0x00 |
2787 | | |
2788 | | static const value_string artnet_tod_request_command_vals[] = { |
2789 | | { ARTNET_TRC_TOD_FULL, "TodFull" }, |
2790 | | { 0, NULL } |
2791 | | }; |
2792 | | |
2793 | | #define ARTNET_TDC_TOD_FULL 0x00 |
2794 | | #define ARTNET_TDC_TOD_NAK 0xFF |
2795 | | |
2796 | | static const value_string artnet_tod_data_command_vals[] = { |
2797 | | { ARTNET_TDC_TOD_FULL, "TodFull" }, |
2798 | | { ARTNET_TDC_TOD_NAK, "TodNak" }, |
2799 | | { 0, NULL } |
2800 | | }; |
2801 | | |
2802 | | #define ARTNET_TCC_ATC_NONE 0x00 |
2803 | | #define ARTNET_TCC_ATC_FLUSH 0x01 |
2804 | | #define ARTNET_TCC_ATC_END 0x02 |
2805 | | #define ARTNET_TCC_ATC_INC_ON 0x03 |
2806 | | #define ARTNET_TCC_ATC_INC_OFF 0x04 |
2807 | | |
2808 | | static const value_string artnet_tod_control_command_vals[] = { |
2809 | | { ARTNET_TCC_ATC_NONE, "AtcNone" }, |
2810 | | { ARTNET_TCC_ATC_FLUSH, "AtcFlush" }, |
2811 | | { ARTNET_TCC_ATC_END, "AtcEnd" }, |
2812 | | { ARTNET_TCC_ATC_INC_ON, "AtcIncOn" }, |
2813 | | { ARTNET_TCC_ATC_INC_OFF, "AtcIncOff" }, |
2814 | | { 0, NULL } |
2815 | | }; |
2816 | | |
2817 | | #define ARTNET_RC_AR_PROCESS 0x00 |
2818 | | |
2819 | | static const value_string artnet_rdm_command_vals[] = { |
2820 | | { ARTNET_RC_AR_PROCESS, "ArProcess" }, |
2821 | | { 0, NULL } |
2822 | | }; |
2823 | | |
2824 | 0 | #define ARTNET_CC_DISCOVERY_COMMAND 0x10 |
2825 | 0 | #define ARTNET_CC_DISCOVERY_COMMAND_RESPONSE 0x11 |
2826 | 0 | #define ARTNET_CC_GET_COMMAND 0x20 |
2827 | 0 | #define ARTNET_CC_GET_COMMAND_RESPONSE 0x21 |
2828 | 0 | #define ARTNET_CC_SET_COMMAND 0x30 |
2829 | 0 | #define ARTNET_CC_SET_COMMAND_RESPONSE 0x31 |
2830 | | |
2831 | | static const value_string artnet_cc_vals[] = { |
2832 | | { ARTNET_CC_DISCOVERY_COMMAND, "Discovery Command" }, |
2833 | | { ARTNET_CC_DISCOVERY_COMMAND_RESPONSE, "Discovery Command Response" }, |
2834 | | { ARTNET_CC_GET_COMMAND, "Get Command" }, |
2835 | | { ARTNET_CC_GET_COMMAND_RESPONSE, "Get Command Response" }, |
2836 | | { ARTNET_CC_SET_COMMAND, "Set Command" }, |
2837 | | { ARTNET_CC_SET_COMMAND_RESPONSE, "Set Command Response" }, |
2838 | | { 0, NULL }, |
2839 | | }; |
2840 | | |
2841 | | #define ARTNET_FILE_TYPE_FIRST 0x00 |
2842 | | #define ARTNET_FILE_TYPE_NORM 0x01 |
2843 | | #define ARTNET_FILE_TYPE_LAST 0x02 |
2844 | | |
2845 | | static const value_string artnet_file_type_vals[] = { |
2846 | | { ARTNET_FILE_TYPE_FIRST, "First file packet" } , |
2847 | | { ARTNET_FILE_TYPE_NORM, "File packet" } , |
2848 | | { ARTNET_FILE_TYPE_LAST, "Final file packet" } , |
2849 | | { 0, NULL }, |
2850 | | }; |
2851 | | |
2852 | | static const char * artnet_poll_reply_node_report_regex = "^#([A-Fa-f0-9]{4}) \\[?([0-9]+)\\]? (.{1,56})$"; |
2853 | | |
2854 | | static const value_string vals_artnet_poll_reply_style[] = { |
2855 | | { 0x00, "StNode (Art-Net to DMX device)" }, |
2856 | | { 0x01, "StController (Lighting console)" }, |
2857 | | { 0x02, "StMedia (Medial server)" }, |
2858 | | { 0x03, "StRoute (Network routing device)" }, |
2859 | | { 0x04, "StBackup (Backup device)" }, |
2860 | | { 0x05, "StConfig (Configuration or diagnostic tool)" }, |
2861 | | { 0x06, "StVisual (Visualizer)" }, |
2862 | | { 0x00, NULL }, |
2863 | | }; |
2864 | | |
2865 | | static const true_false_string tfs_artnet_poll_reply_tx_and_conversion_proto = { |
2866 | | "sACN", |
2867 | | "Art-Net" |
2868 | | }; |
2869 | | |
2870 | | static const true_false_string tfs_artnet_poll_reply_status2_bigaddr_supported = { |
2871 | | "15bit Port-Address", |
2872 | | "8bit Port-Address" |
2873 | | }; |
2874 | | |
2875 | | static const true_false_string tfs_artnet_poll_reply_output_style = { |
2876 | | "continuous", |
2877 | | "delta" |
2878 | | }; |
2879 | | |
2880 | | static const true_false_string tfs_artnet_poll_reply_output_discovery = { |
2881 | | "Currently not running", |
2882 | | "Currently running" |
2883 | | }; |
2884 | | |
2885 | | static const value_string vals_artnet_poll_reply_status3_failsafe_state[] = { |
2886 | | { 0x00, "Hold last state" }, |
2887 | | { 0x01, "All outputs to zero" }, |
2888 | | { 0x02, "All outputs to full" }, |
2889 | | { 0x03, "Playback failsafe scene" }, |
2890 | | { 0x00, NULL } |
2891 | | }; |
2892 | | |
2893 | | static const value_string vals_artnet_poll_reply_node_report_status_code[] = { |
2894 | | { 0x0000, "RcDebug" }, |
2895 | | { 0x0001, "RcPowerOk" }, |
2896 | | { 0x0002, "RcPowerFail" }, |
2897 | | { 0x0003, "RcSocketWr1" }, |
2898 | | { 0x0004, "RcParseFail" }, |
2899 | | { 0x0005, "RcUdpFail" }, |
2900 | | { 0x0006, "RcShNameOk" }, |
2901 | | { 0x0007, "RcLoNameOk" }, |
2902 | | { 0x0008, "RcDmxError" }, |
2903 | | { 0x0009, "RcDmxUdpFull" }, |
2904 | | { 0x000A, "RcDmxRxFull" }, |
2905 | | { 0x000B, "RcSwitchErr" }, |
2906 | | { 0x000C, "RcConfigErr" }, |
2907 | | { 0x000D, "RcDmxShort" }, |
2908 | | { 0x000E, "RcFirmwareFail" }, |
2909 | | { 0x000F, "RcUserFail" }, |
2910 | | { 0x0010, "RcFactoryRes" }, |
2911 | | { 0x0000, NULL } |
2912 | | }; |
2913 | | |
2914 | | static const range_string vals_artnet_poll_reply_bg_queue_policy[] = { |
2915 | | { 0, 0, "Collect using STATUS_NONE" }, |
2916 | | { 1, 1, "Collect using STATUS_ADVISORY" }, |
2917 | | { 2, 2, "Collect using STATUS_WARNING" }, |
2918 | | { 3, 3, "Collect using STATUS_ERROR" }, |
2919 | | { 4, 4, "Collection disabled" }, |
2920 | | { 5, 250, "Manufacturer defined" }, |
2921 | | { 251, 255, "Reserved" }, |
2922 | | { 0, 0, NULL} |
2923 | | }; |
2924 | | |
2925 | | /* Define the artnet proto */ |
2926 | | static int proto_artnet; |
2927 | | |
2928 | | /* general */ |
2929 | | static int hf_artnet_filler; |
2930 | | static int hf_artnet_spare; |
2931 | | static int hf_artnet_data; |
2932 | | static int hf_artnet_excess_bytes; |
2933 | | |
2934 | | /* Header */ |
2935 | | static int hf_artnet_header; |
2936 | | static int hf_artnet_header_id; |
2937 | | static int hf_artnet_header_opcode; |
2938 | | static int hf_artnet_header_protver; |
2939 | | |
2940 | | /* ArtPoll */ |
2941 | | static int hf_artnet_poll; |
2942 | | static int hf_artnet_poll_talktome; |
2943 | | static int hf_artnet_poll_talktome_reply_change; |
2944 | | static int hf_artnet_poll_talktome_diag; |
2945 | | static int hf_artnet_poll_talktome_diag_unicast; |
2946 | | static int hf_artnet_poll_talktome_vlc; |
2947 | | static int hf_artnet_poll_talktome_targeted; |
2948 | | |
2949 | | static int hf_artnet_poll_diag_priority; |
2950 | | static int hf_artnet_poll_target_port_top; |
2951 | | static int hf_artnet_poll_target_port_bottom; |
2952 | | static int hf_artnet_poll_esta_man; |
2953 | | static int hf_artnet_poll_oem; |
2954 | | |
2955 | | static int ett_artnet_poll_talktome; |
2956 | | |
2957 | | static int * const artnet_poll_talktome_fields[] = { |
2958 | | &hf_artnet_poll_talktome_reply_change, |
2959 | | &hf_artnet_poll_talktome_diag, |
2960 | | &hf_artnet_poll_talktome_diag_unicast, |
2961 | | &hf_artnet_poll_talktome_vlc, |
2962 | | &hf_artnet_poll_talktome_targeted, |
2963 | | NULL |
2964 | | }; |
2965 | | |
2966 | | static const true_false_string tfs_artnet_talktome_diag_unicast = { |
2967 | | "Unicast", |
2968 | | "Broadcast" |
2969 | | }; |
2970 | | |
2971 | | static const value_string artnet_talktome_diag_priority_vals[] = { |
2972 | | { 0x00, "DpAll" }, |
2973 | | { 0x10, "DpLow" }, |
2974 | | { 0x40, "DpMed" }, |
2975 | | { 0x80, "DpHigh" }, |
2976 | | { 0xe0, "DpCritical" }, |
2977 | | { 0xf0, "DpVolatile" }, |
2978 | | { 0x00, NULL } |
2979 | | }; |
2980 | | |
2981 | | /* ArtPollReply */ |
2982 | | static int hf_artnet_poll_reply; |
2983 | | static int hf_artnet_poll_reply_ip_address; |
2984 | | static int hf_artnet_poll_reply_port_nr; |
2985 | | static int hf_artnet_poll_reply_versinfo; |
2986 | | static int hf_artnet_poll_reply_netswitch; |
2987 | | static int hf_artnet_poll_reply_subswitch; |
2988 | | static int hf_artnet_poll_reply_oem; |
2989 | | static int hf_artnet_poll_reply_ubea_version; |
2990 | | static int hf_artnet_poll_reply_status; |
2991 | | static int hf_artnet_poll_reply_status_ubea_present; |
2992 | | static int hf_artnet_poll_reply_status_rdm_supported; |
2993 | | static int hf_artnet_poll_reply_status_rom_booted; |
2994 | | static int hf_artnet_poll_reply_status_port_prog; |
2995 | | static int hf_artnet_poll_reply_status_indicator; |
2996 | | |
2997 | | static int hf_artnet_poll_reply_esta_man; |
2998 | | static int hf_artnet_poll_reply_short_name; |
2999 | | static int hf_artnet_poll_reply_long_name; |
3000 | | static int hf_artnet_poll_reply_node_report; |
3001 | | static int hf_artnet_poll_reply_port_info; |
3002 | | static int hf_artnet_poll_reply_num_ports; |
3003 | | static int hf_artnet_poll_reply_port_types; |
3004 | | static int hf_artnet_poll_reply_port_types_1; |
3005 | | static int hf_artnet_poll_reply_port_types_2; |
3006 | | static int hf_artnet_poll_reply_port_types_3; |
3007 | | static int hf_artnet_poll_reply_port_types_4; |
3008 | | static int hf_artnet_poll_reply_good_input; |
3009 | | static int hf_artnet_poll_reply_good_input_1; |
3010 | | static int hf_artnet_poll_reply_good_input_2; |
3011 | | static int hf_artnet_poll_reply_good_input_3; |
3012 | | static int hf_artnet_poll_reply_good_input_4; |
3013 | | static int hf_artnet_poll_reply_good_output; |
3014 | | static int hf_artnet_poll_reply_good_output_1; |
3015 | | static int hf_artnet_poll_reply_good_output_2; |
3016 | | static int hf_artnet_poll_reply_good_output_3; |
3017 | | static int hf_artnet_poll_reply_good_output_4; |
3018 | | static int hf_artnet_poll_reply_good_output_b; |
3019 | | static int hf_artnet_poll_reply_good_output_b_1; |
3020 | | static int hf_artnet_poll_reply_good_output_b_2; |
3021 | | static int hf_artnet_poll_reply_good_output_b_3; |
3022 | | static int hf_artnet_poll_reply_good_output_b_4; |
3023 | | static int hf_artnet_poll_reply_good_output_tx_proto; |
3024 | | static int hf_artnet_poll_reply_good_output_merge_ltp; |
3025 | | static int hf_artnet_poll_reply_good_output_short; |
3026 | | static int hf_artnet_poll_reply_good_output_merge_artnet; |
3027 | | static int hf_artnet_poll_reply_good_output_dmx_text; |
3028 | | static int hf_artnet_poll_reply_good_output_dmx_sip; |
3029 | | static int hf_artnet_poll_reply_good_output_dmx_test; |
3030 | | static int hf_artnet_poll_reply_good_output_data; |
3031 | | static int hf_artnet_poll_reply_good_output_bg_discovery; |
3032 | | static int hf_artnet_poll_reply_good_output_discovery; |
3033 | | static int hf_artnet_poll_reply_good_output_style; |
3034 | | static int hf_artnet_poll_reply_good_output_rdm; |
3035 | | static int hf_artnet_poll_reply_swin; |
3036 | | static int hf_artnet_poll_reply_swin_1; |
3037 | | static int hf_artnet_poll_reply_swin_2; |
3038 | | static int hf_artnet_poll_reply_swin_3; |
3039 | | static int hf_artnet_poll_reply_swin_4; |
3040 | | static int hf_artnet_poll_reply_swin_1_universe; |
3041 | | static int hf_artnet_poll_reply_swin_2_universe; |
3042 | | static int hf_artnet_poll_reply_swin_3_universe; |
3043 | | static int hf_artnet_poll_reply_swin_4_universe; |
3044 | | static int hf_artnet_poll_reply_swout; |
3045 | | static int hf_artnet_poll_reply_swout_1; |
3046 | | static int hf_artnet_poll_reply_swout_2; |
3047 | | static int hf_artnet_poll_reply_swout_3; |
3048 | | static int hf_artnet_poll_reply_swout_4; |
3049 | | static int hf_artnet_poll_reply_swout_1_universe; |
3050 | | static int hf_artnet_poll_reply_swout_2_universe; |
3051 | | static int hf_artnet_poll_reply_swout_3_universe; |
3052 | | static int hf_artnet_poll_reply_swout_4_universe; |
3053 | | static int hf_artnet_poll_reply_sacnprio; |
3054 | | static int hf_artnet_poll_reply_swmacro; |
3055 | | static int hf_artnet_poll_reply_swremote; |
3056 | | static int hf_artnet_poll_reply_style; |
3057 | | static int hf_artnet_poll_reply_mac; |
3058 | | static int hf_artnet_poll_reply_bind_ip_address; |
3059 | | static int hf_artnet_poll_reply_bind_index; |
3060 | | static int hf_artnet_poll_reply_status2; |
3061 | | static int hf_artnet_poll_reply_status2_web_supported; |
3062 | | static int hf_artnet_poll_reply_status2_dhcp_used; |
3063 | | static int hf_artnet_poll_reply_status2_dhcp_supported; |
3064 | | static int hf_artnet_poll_reply_status2_bigaddr_supported; |
3065 | | static int hf_artnet_poll_reply_status2_sacn_supported; |
3066 | | static int hf_artnet_poll_reply_status2_squawking; |
3067 | | static int hf_artnet_poll_reply_status2_output_switching_supported; |
3068 | | static int hf_artnet_poll_reply_status2_control_rdm_supported; |
3069 | | static int hf_artnet_poll_reply_status3; |
3070 | | static int hf_artnet_poll_reply_status3_prog_bg_discovery_supported; |
3071 | | static int hf_artnet_poll_reply_status3_bg_queue_supported; |
3072 | | static int hf_artnet_poll_reply_status3_rdmnet_supported; |
3073 | | static int hf_artnet_poll_reply_status3_switching_port_supported; |
3074 | | static int hf_artnet_poll_reply_status3_llrp_supported; |
3075 | | static int hf_artnet_poll_reply_status3_failover_supported; |
3076 | | static int hf_artnet_poll_reply_status3_failsafe_state; |
3077 | | static int hf_artnet_poll_reply_default_responder_uid; |
3078 | | static int hf_artnet_poll_reply_node_report_status_code; |
3079 | | static int hf_artnet_poll_reply_node_report_response_counter; |
3080 | | static int hf_artnet_poll_reply_node_report_status_string; |
3081 | | |
3082 | | static int ett_artnet_poll_reply_status; |
3083 | | static int ett_artnet_poll_reply_port_info; |
3084 | | static int ett_artnet_poll_reply_port_types; |
3085 | | static int ett_artnet_poll_reply_good_input; |
3086 | | static int ett_artnet_poll_reply_good_input_1; |
3087 | | static int ett_artnet_poll_reply_good_input_2; |
3088 | | static int ett_artnet_poll_reply_good_input_3; |
3089 | | static int ett_artnet_poll_reply_good_input_4; |
3090 | | static int ett_artnet_poll_reply_good_output; |
3091 | | static int ett_artnet_poll_reply_good_output_1; |
3092 | | static int ett_artnet_poll_reply_good_output_2; |
3093 | | static int ett_artnet_poll_reply_good_output_3; |
3094 | | static int ett_artnet_poll_reply_good_output_4; |
3095 | | static int ett_artnet_poll_reply_good_output_b; |
3096 | | static int ett_artnet_poll_reply_good_output_b_1; |
3097 | | static int ett_artnet_poll_reply_good_output_b_2; |
3098 | | static int ett_artnet_poll_reply_good_output_b_3; |
3099 | | static int ett_artnet_poll_reply_good_output_b_4; |
3100 | | static int ett_artnet_poll_reply_swin; |
3101 | | static int ett_artnet_poll_reply_swout; |
3102 | | static int ett_artnet_poll_reply_swmacro; |
3103 | | static int ett_artnet_poll_reply_swremote; |
3104 | | static int ett_artnet_poll_reply_status2; |
3105 | | static int ett_artnet_poll_reply_status3; |
3106 | | |
3107 | | static int hf_artnet_poll_reply_good_input_converts_to; |
3108 | | static int hf_artnet_poll_reply_good_input_recv_error; |
3109 | | static int hf_artnet_poll_reply_good_input_disabled; |
3110 | | static int hf_artnet_poll_reply_good_input_dmx_text; |
3111 | | static int hf_artnet_poll_reply_good_input_dmx_sip; |
3112 | | static int hf_artnet_poll_reply_good_input_dmx_test; |
3113 | | static int hf_artnet_poll_reply_good_input_data; |
3114 | | |
3115 | | static int hf_artnet_poll_reply_swmacro_1; |
3116 | | static int hf_artnet_poll_reply_swmacro_2; |
3117 | | static int hf_artnet_poll_reply_swmacro_3; |
3118 | | static int hf_artnet_poll_reply_swmacro_4; |
3119 | | static int hf_artnet_poll_reply_swmacro_5; |
3120 | | static int hf_artnet_poll_reply_swmacro_6; |
3121 | | static int hf_artnet_poll_reply_swmacro_7; |
3122 | | static int hf_artnet_poll_reply_swmacro_8; |
3123 | | |
3124 | | static int hf_artnet_poll_reply_swremote_1; |
3125 | | static int hf_artnet_poll_reply_swremote_2; |
3126 | | static int hf_artnet_poll_reply_swremote_3; |
3127 | | static int hf_artnet_poll_reply_swremote_4; |
3128 | | static int hf_artnet_poll_reply_swremote_5; |
3129 | | static int hf_artnet_poll_reply_swremote_6; |
3130 | | static int hf_artnet_poll_reply_swremote_7; |
3131 | | static int hf_artnet_poll_reply_swremote_8; |
3132 | | |
3133 | | static int hf_artnet_poll_reply_user; |
3134 | | static int hf_artnet_poll_reply_refreshrate; |
3135 | | static int hf_artnet_poll_reply_bg_queue_policy; |
3136 | | |
3137 | | static int * const artnet_poll_reply_status_fields[] = { |
3138 | | &hf_artnet_poll_reply_status_ubea_present, |
3139 | | &hf_artnet_poll_reply_status_rdm_supported, |
3140 | | &hf_artnet_poll_reply_status_rom_booted, |
3141 | | &hf_artnet_poll_reply_status_port_prog, |
3142 | | &hf_artnet_poll_reply_status_indicator, |
3143 | | NULL |
3144 | | }; |
3145 | | |
3146 | | static int * const artnet_poll_reply_good_input_fields[] = { |
3147 | | &hf_artnet_poll_reply_good_input_converts_to, |
3148 | | &hf_artnet_poll_reply_good_input_recv_error, |
3149 | | &hf_artnet_poll_reply_good_input_disabled, |
3150 | | &hf_artnet_poll_reply_good_input_dmx_text, |
3151 | | &hf_artnet_poll_reply_good_input_dmx_sip, |
3152 | | &hf_artnet_poll_reply_good_input_dmx_test, |
3153 | | &hf_artnet_poll_reply_good_input_data, |
3154 | | NULL |
3155 | | }; |
3156 | | |
3157 | | static int * const artnet_poll_reply_good_output_fields[] = { |
3158 | | &hf_artnet_poll_reply_good_output_tx_proto, |
3159 | | &hf_artnet_poll_reply_good_output_merge_ltp, |
3160 | | &hf_artnet_poll_reply_good_output_short, |
3161 | | &hf_artnet_poll_reply_good_output_merge_artnet, |
3162 | | &hf_artnet_poll_reply_good_output_dmx_text, |
3163 | | &hf_artnet_poll_reply_good_output_dmx_sip, |
3164 | | &hf_artnet_poll_reply_good_output_dmx_test, |
3165 | | &hf_artnet_poll_reply_good_output_data, |
3166 | | NULL |
3167 | | }; |
3168 | | |
3169 | | static int * const artnet_poll_reply_good_output_b_fields[] = { |
3170 | | &hf_artnet_poll_reply_good_output_bg_discovery, |
3171 | | &hf_artnet_poll_reply_good_output_discovery, |
3172 | | &hf_artnet_poll_reply_good_output_style, |
3173 | | &hf_artnet_poll_reply_good_output_rdm, |
3174 | | NULL |
3175 | | }; |
3176 | | |
3177 | | static int * const artnet_poll_reply_status2_fields[] = { |
3178 | | &hf_artnet_poll_reply_status2_web_supported, |
3179 | | &hf_artnet_poll_reply_status2_dhcp_used, |
3180 | | &hf_artnet_poll_reply_status2_dhcp_supported, |
3181 | | &hf_artnet_poll_reply_status2_bigaddr_supported, |
3182 | | &hf_artnet_poll_reply_status2_sacn_supported, |
3183 | | &hf_artnet_poll_reply_status2_squawking, |
3184 | | &hf_artnet_poll_reply_status2_output_switching_supported, |
3185 | | &hf_artnet_poll_reply_status2_control_rdm_supported, |
3186 | | NULL |
3187 | | }; |
3188 | | |
3189 | | static int * const artnet_poll_reply_status3_fields[] = { |
3190 | | &hf_artnet_poll_reply_status3_prog_bg_discovery_supported, |
3191 | | &hf_artnet_poll_reply_status3_bg_queue_supported, |
3192 | | &hf_artnet_poll_reply_status3_rdmnet_supported, |
3193 | | &hf_artnet_poll_reply_status3_switching_port_supported, |
3194 | | &hf_artnet_poll_reply_status3_llrp_supported, |
3195 | | &hf_artnet_poll_reply_status3_failover_supported, |
3196 | | &hf_artnet_poll_reply_status3_failsafe_state, |
3197 | | NULL |
3198 | | }; |
3199 | | |
3200 | | static int * const artnet_poll_reply_swmacro_fields[] = { |
3201 | | &hf_artnet_poll_reply_swmacro_1, |
3202 | | &hf_artnet_poll_reply_swmacro_2, |
3203 | | &hf_artnet_poll_reply_swmacro_3, |
3204 | | &hf_artnet_poll_reply_swmacro_4, |
3205 | | &hf_artnet_poll_reply_swmacro_5, |
3206 | | &hf_artnet_poll_reply_swmacro_6, |
3207 | | &hf_artnet_poll_reply_swmacro_7, |
3208 | | &hf_artnet_poll_reply_swmacro_8, |
3209 | | NULL |
3210 | | }; |
3211 | | |
3212 | | static int * const artnet_poll_reply_swremote_fields[] = { |
3213 | | &hf_artnet_poll_reply_swremote_1, |
3214 | | &hf_artnet_poll_reply_swremote_2, |
3215 | | &hf_artnet_poll_reply_swremote_3, |
3216 | | &hf_artnet_poll_reply_swremote_4, |
3217 | | &hf_artnet_poll_reply_swremote_5, |
3218 | | &hf_artnet_poll_reply_swremote_6, |
3219 | | &hf_artnet_poll_reply_swremote_7, |
3220 | | &hf_artnet_poll_reply_swremote_8, |
3221 | | NULL |
3222 | | }; |
3223 | | |
3224 | | static expert_field ei_artnet_poll_reply_bind_ip_without_index; |
3225 | | static expert_field ei_artnet_poll_reply_bind_index_without_ip; |
3226 | | static expert_field ei_artnet_poll_reply_node_report_invalid_format; |
3227 | | |
3228 | | /* ArtOutput */ |
3229 | | static int hf_artnet_output; |
3230 | | static int hf_artnet_output_sequence; |
3231 | | static int hf_artnet_output_physical; |
3232 | | static int hf_artnet_output_universe; |
3233 | | static int hf_artnet_output_length; |
3234 | | |
3235 | | /* ArtSync */ |
3236 | | static int hf_artnet_sync; |
3237 | | static int hf_artnet_sync_aux; |
3238 | | |
3239 | | /* ArtAddress */ |
3240 | | static int hf_artnet_address; |
3241 | | static int hf_artnet_address_netswitch_special; |
3242 | | static int hf_artnet_address_netswitch_net; |
3243 | | static int hf_artnet_address_netswitch_write; |
3244 | | static int hf_artnet_address_bind_index; |
3245 | | static int hf_artnet_address_short_name; |
3246 | | static int hf_artnet_address_long_name; |
3247 | | static int hf_artnet_address_swin; |
3248 | | static int hf_artnet_address_swin_1; |
3249 | | static int hf_artnet_address_swin_2; |
3250 | | static int hf_artnet_address_swin_3; |
3251 | | static int hf_artnet_address_swin_4; |
3252 | | static int hf_artnet_address_swout; |
3253 | | static int hf_artnet_address_swout_1; |
3254 | | static int hf_artnet_address_swout_2; |
3255 | | static int hf_artnet_address_swout_3; |
3256 | | static int hf_artnet_address_swout_4; |
3257 | | static int hf_artnet_address_subswitch_special; |
3258 | | static int hf_artnet_address_subswitch_sub; |
3259 | | static int hf_artnet_address_subswitch_write; |
3260 | | static int hf_artnet_address_sacnprio; |
3261 | | static int hf_artnet_address_command; |
3262 | | |
3263 | | static int ett_artnet_address_netswitch; |
3264 | | static int ett_artnet_address_swin; |
3265 | | static int ett_artnet_address_swout; |
3266 | | static int ett_artnet_address_subswitch; |
3267 | | |
3268 | | static int * const artnet_address_netswitch_fields[] = { |
3269 | | &hf_artnet_address_netswitch_net, |
3270 | | &hf_artnet_address_netswitch_write, |
3271 | | NULL |
3272 | | }; |
3273 | | |
3274 | | static int * const artnet_address_subswitch_fields[] = { |
3275 | | &hf_artnet_address_subswitch_sub, |
3276 | | &hf_artnet_address_subswitch_write, |
3277 | | NULL |
3278 | | }; |
3279 | | |
3280 | | static const value_string artnet_address_switch_vals[] = { |
3281 | | { 0x00, "Reset to Physical Switch" }, |
3282 | | { 0x7f, "No Change" }, |
3283 | | { 0x00, NULL } |
3284 | | }; |
3285 | | |
3286 | | /* ArtInput */ |
3287 | | static int hf_artnet_input; |
3288 | | static int hf_artnet_input_bind_index; |
3289 | | static int hf_artnet_input_num_ports; |
3290 | | static int hf_artnet_input_input; |
3291 | | static int hf_artnet_input_input_1; |
3292 | | static int hf_artnet_input_input_2; |
3293 | | static int hf_artnet_input_input_3; |
3294 | | static int hf_artnet_input_input_4; |
3295 | | static int hf_artnet_input_input_disabled; |
3296 | | |
3297 | | static int ett_artnet_input_input; |
3298 | | static int ett_artnet_input_input_1; |
3299 | | static int ett_artnet_input_input_2; |
3300 | | static int ett_artnet_input_input_3; |
3301 | | static int ett_artnet_input_input_4; |
3302 | | |
3303 | | static int * const artnet_input_input_fields[] = { |
3304 | | &hf_artnet_input_input_disabled, |
3305 | | NULL |
3306 | | }; |
3307 | | |
3308 | | /* ArtFirmwareMaster */ |
3309 | | static int hf_artnet_firmware_master; |
3310 | | static int hf_artnet_firmware_master_type; |
3311 | | static int hf_artnet_firmware_master_block_id; |
3312 | | static int hf_artnet_firmware_master_length; |
3313 | | static int hf_artnet_firmware_master_data; |
3314 | | |
3315 | | /* ArtFirmwareReply */ |
3316 | | static int hf_artnet_firmware_reply; |
3317 | | static int hf_artnet_firmware_reply_type; |
3318 | | |
3319 | | /* ArtVideoSetup */ |
3320 | | static int hf_artnet_video_setup_control; |
3321 | | static int hf_artnet_video_setup_font_height; |
3322 | | static int hf_artnet_video_setup_first_font; |
3323 | | static int hf_artnet_video_setup_last_font; |
3324 | | static int hf_artnet_video_setup_win_font_name; |
3325 | | static int hf_artnet_video_setup_font_data; |
3326 | | |
3327 | | /* ArtVideoPalette */ |
3328 | | static int hf_artnet_video_palette_colour_red; |
3329 | | static int hf_artnet_video_palette_colour_green; |
3330 | | static int hf_artnet_video_palette_colour_blue; |
3331 | | |
3332 | | /* ArtVideoData */ |
3333 | | static int hf_artnet_video_data_pos_x; |
3334 | | static int hf_artnet_video_data_pos_y; |
3335 | | static int hf_artnet_video_data_len_x; |
3336 | | static int hf_artnet_video_data_len_y; |
3337 | | static int hf_artnet_video_data_data; |
3338 | | |
3339 | | /* ArtPollFpReply */ |
3340 | | static int hf_artnet_poll_fp_reply; |
3341 | | |
3342 | | /* ArtTodRequest */ |
3343 | | static int hf_artnet_tod_request; |
3344 | | static int hf_artnet_tod_request_net; |
3345 | | static int hf_artnet_tod_request_command; |
3346 | | static int hf_artnet_tod_request_ad_count; |
3347 | | static int hf_artnet_tod_request_address; |
3348 | | |
3349 | | /* ArtTodData */ |
3350 | | static int hf_artnet_tod_data; |
3351 | | static int hf_artnet_tod_data_rdm_ver; |
3352 | | static int hf_artnet_tod_data_bind_index; |
3353 | | static int hf_artnet_tod_data_port; |
3354 | | static int hf_artnet_tod_data_net; |
3355 | | static int hf_artnet_tod_data_command_response; |
3356 | | static int hf_artnet_tod_data_address; |
3357 | | static int hf_artnet_tod_data_uid_total; |
3358 | | static int hf_artnet_tod_data_block_count; |
3359 | | static int hf_artnet_tod_data_uid_count; |
3360 | | static int hf_artnet_tod_data_tod; |
3361 | | static int hf_artnet_tod_data_tod_manf; |
3362 | | static int hf_artnet_tod_data_tod_dev; |
3363 | | |
3364 | | static int ett_artnet_tod_data_tod; |
3365 | | |
3366 | | /* ArtTodControl */ |
3367 | | static int hf_artnet_tod_control; |
3368 | | static int hf_artnet_tod_control_net; |
3369 | | static int hf_artnet_tod_control_command; |
3370 | | static int hf_artnet_tod_control_address; |
3371 | | static int hf_artnet_tod_control_universe; |
3372 | | |
3373 | | /* ArtRdm */ |
3374 | | static int hf_artnet_rdm; |
3375 | | static int hf_artnet_rdm_command; |
3376 | | static int hf_artnet_rdm_address; |
3377 | | static int hf_artnet_rdm_sc; |
3378 | | |
3379 | | static int hf_artnet_rdm_rdmver; |
3380 | | static int hf_artnet_rdm_fifo_avail; |
3381 | | static int hf_artnet_rdm_fifo_max; |
3382 | | static int hf_artnet_rdm_net; |
3383 | | |
3384 | | /* ArtRdmSub */ |
3385 | | static int hf_artnet_rdm_sub; |
3386 | | static int hf_artnet_rdm_sub_uid; |
3387 | | static int hf_artnet_rdm_sub_command_class; |
3388 | | static int hf_artnet_rdm_sub_pid; |
3389 | | static int hf_artnet_rdm_sub_sub_device; |
3390 | | static int hf_artnet_rdm_sub_sub_count; |
3391 | | static int hf_artnet_rdm_sub_data; |
3392 | | |
3393 | | /* ArtIpProg */ |
3394 | | static int hf_artnet_ip_prog; |
3395 | | static int hf_artnet_ip_prog_command; |
3396 | | static int hf_artnet_ip_prog_command_prog_port; |
3397 | | static int hf_artnet_ip_prog_command_prog_sm; |
3398 | | static int hf_artnet_ip_prog_command_prog_ip; |
3399 | | static int hf_artnet_ip_prog_command_reset; |
3400 | | static int hf_artnet_ip_prog_command_gw; |
3401 | | static int hf_artnet_ip_prog_command_unused; |
3402 | | static int hf_artnet_ip_prog_command_dhcp_enable; |
3403 | | static int hf_artnet_ip_prog_command_prog_enable; |
3404 | | static int hf_artnet_ip_prog_ip; |
3405 | | static int hf_artnet_ip_prog_sm; |
3406 | | static int hf_artnet_ip_prog_port; |
3407 | | static int hf_artnet_ip_prog_gw; |
3408 | | |
3409 | | static int ett_artnet_ip_prog_command; |
3410 | | |
3411 | | static int * const artnet_ip_prog_command_fields[] = { |
3412 | | &hf_artnet_ip_prog_command_prog_port, |
3413 | | &hf_artnet_ip_prog_command_prog_sm, |
3414 | | &hf_artnet_ip_prog_command_prog_ip, |
3415 | | &hf_artnet_ip_prog_command_reset, |
3416 | | &hf_artnet_ip_prog_command_gw, |
3417 | | &hf_artnet_ip_prog_command_unused, |
3418 | | &hf_artnet_ip_prog_command_dhcp_enable, |
3419 | | &hf_artnet_ip_prog_command_prog_enable, |
3420 | | NULL |
3421 | | }; |
3422 | | |
3423 | | /* ArtIpProgReply */ |
3424 | | static int hf_artnet_ip_prog_reply; |
3425 | | static int hf_artnet_ip_prog_reply_ip; |
3426 | | static int hf_artnet_ip_prog_reply_sm; |
3427 | | static int hf_artnet_ip_prog_reply_port; |
3428 | | static int hf_artnet_ip_prog_reply_status; |
3429 | | static int hf_artnet_ip_prog_reply_status_unused; |
3430 | | static int hf_artnet_ip_prog_reply_status_dhcp_enable; |
3431 | | static int hf_artnet_ip_prog_reply_gw; |
3432 | | |
3433 | | static int ett_artnet_ip_prog_reply_status; |
3434 | | |
3435 | | static int * const artnet_ip_prog_reply_status_fields[] = { |
3436 | | &hf_artnet_ip_prog_reply_status_unused, |
3437 | | &hf_artnet_ip_prog_reply_status_dhcp_enable, |
3438 | | NULL |
3439 | | }; |
3440 | | |
3441 | | /* ArtDiagData */ |
3442 | | static int hf_artnet_diag_data; |
3443 | | static int hf_artnet_diag_data_priority; |
3444 | | static int hf_artnet_diag_data_port; |
3445 | | static int hf_artnet_diag_data_length; |
3446 | | static int hf_artnet_diag_data_data; |
3447 | | |
3448 | | /* ArtCommand */ |
3449 | | static int hf_artnet_command; |
3450 | | static int hf_artnet_command_esta_man; |
3451 | | static int hf_artnet_command_length; |
3452 | | static int hf_artnet_command_data; |
3453 | | |
3454 | | /* ArtDataRequest */ |
3455 | | static int hf_artnet_data_request; |
3456 | | static int hf_artnet_data_request_esta_man; |
3457 | | static int hf_artnet_data_request_oem; |
3458 | | static int hf_artnet_data_request_request; |
3459 | | static int hf_artnet_data_request_spare; |
3460 | | |
3461 | | #define ARTNET_DR_POLL 0x0000 |
3462 | | #define ARTNET_DR_URL_PRODUCT 0x0001 |
3463 | | #define ARTNET_DR_URL_USERGUIDE 0x0002 |
3464 | | #define ARTNET_DR_URL_SUPPORT 0x0003 |
3465 | | #define ARTNET_DR_URL_PERS_UDR 0x0004 |
3466 | | #define ARTNET_DR_URL_PERS_GDTF 0x0005 |
3467 | | #define ARTNET_DR_MAN_SPEC_LOW 0x8000 |
3468 | | #define ARTNET_DR_MAN_SPEC_HIGH 0xFFFF |
3469 | | |
3470 | | static const range_string artnet_data_request_vals[] = { |
3471 | | { ARTNET_DR_POLL, ARTNET_DR_POLL, "DrPoll" }, |
3472 | | { ARTNET_DR_URL_PRODUCT, ARTNET_DR_URL_PRODUCT, "DrUrlProduct" }, |
3473 | | { ARTNET_DR_URL_USERGUIDE, ARTNET_DR_URL_USERGUIDE, "DrUrlUserGuide" }, |
3474 | | { ARTNET_DR_URL_SUPPORT, ARTNET_DR_URL_SUPPORT, "DrUrlSupport" }, |
3475 | | { ARTNET_DR_URL_PERS_UDR, ARTNET_DR_URL_PERS_UDR, "DrPersUdr" }, |
3476 | | { ARTNET_DR_URL_PERS_GDTF, ARTNET_DR_URL_PERS_GDTF, "DrPersGdtf" }, |
3477 | | { ARTNET_DR_MAN_SPEC_LOW, ARTNET_DR_MAN_SPEC_HIGH, "DrManSpec" }, |
3478 | | { 0, 0, NULL } |
3479 | | }; |
3480 | | |
3481 | | /* ArtDataReply */ |
3482 | | static int hf_artnet_data_reply; |
3483 | | static int hf_artnet_data_reply_esta_man; |
3484 | | static int hf_artnet_data_reply_oem; |
3485 | | static int hf_artnet_data_reply_request; |
3486 | | static int hf_artnet_data_reply_payload_length; |
3487 | | static int hf_artnet_data_reply_payload; |
3488 | | |
3489 | | /* ArtMedia */ |
3490 | | static int hf_artnet_media; |
3491 | | |
3492 | | /* ArtMediaPatch */ |
3493 | | static int hf_artnet_media_patch; |
3494 | | |
3495 | | /* ArtMediaControl */ |
3496 | | static int hf_artnet_media_control; |
3497 | | |
3498 | | /* ArtMediaControlReply */ |
3499 | | static int hf_artnet_media_control_reply; |
3500 | | |
3501 | | /* ArtTimeCode */ |
3502 | | static int hf_artnet_time_code; |
3503 | | static int hf_artnet_time_code_stream_id; |
3504 | | static int hf_artnet_time_code_frames; |
3505 | | static int hf_artnet_time_code_seconds; |
3506 | | static int hf_artnet_time_code_minutes; |
3507 | | static int hf_artnet_time_code_hours; |
3508 | | static int hf_artnet_time_code_type; |
3509 | | |
3510 | | static const value_string artnet_time_code_vals[] = { |
3511 | | { 0x00, "Film (24fps)" }, |
3512 | | { 0x01, "EBU (25fps)" }, |
3513 | | { 0x02, "DF (29.97fps)" }, |
3514 | | { 0x03, "SMPTE (30fps)" }, |
3515 | | { 0x00, NULL } |
3516 | | }; |
3517 | | |
3518 | | /* ArtTimeSync */ |
3519 | | static int hf_artnet_time_sync; |
3520 | | |
3521 | | /* ArtTrigger */ |
3522 | 0 | #define ARTNET_TRIGGER_NOT_OEM_SPECIFIC 0xFFFF |
3523 | | |
3524 | | static int hf_artnet_trigger; |
3525 | | static int hf_artnet_trigger_oem; |
3526 | | static int hf_artnet_trigger_key; |
3527 | | static int hf_artnet_trigger_key_unspecific; |
3528 | | static int hf_artnet_trigger_subkey; |
3529 | | static int hf_artnet_trigger_data; |
3530 | | |
3531 | | static const value_string artnet_trigger_key_vals[] = { |
3532 | | { 0x00, "KeyAscii" }, |
3533 | | { 0x01, "KeyMacro" }, |
3534 | | { 0x02, "KeySoft" }, |
3535 | | { 0x03, "KeyShow" }, |
3536 | | { 0x00, NULL } |
3537 | | }; |
3538 | | |
3539 | | /* ArtDirectory */ |
3540 | | static int hf_artnet_directory; |
3541 | | static int hf_artnet_directory_filler; |
3542 | | static int hf_artnet_directory_cmd; |
3543 | | static int hf_artnet_directory_file; |
3544 | | |
3545 | | /* ArtDirectoryReply */ |
3546 | | static int hf_artnet_directory_reply; |
3547 | | static int hf_artnet_directory_reply_filler; |
3548 | | static int hf_artnet_directory_reply_flags; |
3549 | | static int hf_artnet_directory_reply_file; |
3550 | | static int hf_artnet_directory_reply_name; |
3551 | | static int hf_artnet_directory_reply_desc; |
3552 | | static int hf_artnet_directory_reply_length; |
3553 | | static int hf_artnet_directory_reply_data; |
3554 | | |
3555 | | /* ArtMacMaster */ |
3556 | | static int hf_artnet_mac_master; |
3557 | | |
3558 | | /* ArtMacSlave */ |
3559 | | static int hf_artnet_mac_slave; |
3560 | | |
3561 | | /* ArtFileTnMaster */ |
3562 | | static int hf_artnet_file_tn_master; |
3563 | | static int hf_artnet_file_tn_master_filler; |
3564 | | static int hf_artnet_file_tn_master_type; |
3565 | | static int hf_artnet_file_tn_master_block_id; |
3566 | | static int hf_artnet_file_tn_master_length; |
3567 | | static int hf_artnet_file_tn_master_name; |
3568 | | static int hf_artnet_file_tn_master_checksum; |
3569 | | static int hf_artnet_file_tn_master_spare; |
3570 | | static int hf_artnet_file_tn_master_data; |
3571 | | |
3572 | | |
3573 | | /* ArtFileFnMaster */ |
3574 | | static int hf_artnet_file_fn_master; |
3575 | | |
3576 | | /* ArtFileFnReply */ |
3577 | | static int hf_artnet_file_fn_reply; |
3578 | | |
3579 | | /* ArtNzs */ |
3580 | | static int hf_artnet_nzs; |
3581 | | static int hf_artnet_nzs_sequence; |
3582 | | static int hf_artnet_nzs_start_code; |
3583 | | static int hf_artnet_nzs_subuni; |
3584 | | static int hf_artnet_nzs_net; |
3585 | | static int hf_artnet_nzs_length; |
3586 | | static int hf_artnet_nzs_vlc_man_id; |
3587 | | static int hf_artnet_nzs_vlc_sub_code; |
3588 | | static int hf_artnet_nzs_vlc_flags; |
3589 | | static int hf_artnet_nzs_vlc_flags_ieee; |
3590 | | static int hf_artnet_nzs_vlc_flags_reply; |
3591 | | static int hf_artnet_nzs_vlc_flags_beacon; |
3592 | | static int hf_artnet_nzs_vlc_transaction; |
3593 | | static int hf_artnet_nzs_vlc_slot_addr; |
3594 | | static int hf_artnet_nzs_vlc_payload_size; |
3595 | | static int hf_artnet_nzs_vlc_payload_checksum; |
3596 | | static int hf_artnet_nzs_vlc_mod_depth; |
3597 | | static int hf_artnet_nzs_vlc_mod_freq; |
3598 | | static int hf_artnet_nzs_vlc_mod_type; |
3599 | | static int hf_artnet_nzs_vlc_lang_code; |
3600 | | static int hf_artnet_nzs_vlc_beacon_repeat; |
3601 | | static int hf_artnet_nzs_vlc_payload; |
3602 | | static int hf_artnet_nzs_vlc_payload_beacon_url; |
3603 | | static int hf_artnet_nzs_vlc_payload_beacon_text; |
3604 | | static int hf_artnet_nzs_vlc_payload_beacon_location_id; |
3605 | | |
3606 | | static int ett_artnet_nzs_vlc_flags; |
3607 | | |
3608 | | static int * const artnet_nzs_vlc_flags_fields[] = { |
3609 | | &hf_artnet_nzs_vlc_flags_beacon, |
3610 | | &hf_artnet_nzs_vlc_flags_reply, |
3611 | | &hf_artnet_nzs_vlc_flags_ieee, |
3612 | | NULL |
3613 | | }; |
3614 | | |
3615 | 4 | #define ARTNET_NZS_VLC_START_CODE 0x91 |
3616 | 2 | #define ARTNET_NZS_VLC_MAGIC_MAN_ID 0x414C |
3617 | 0 | #define ARTNET_NZS_VLC_MAGIC_SUB_CODE 0x45 |
3618 | | |
3619 | | static const true_false_string tfs_artnet_nzs_vlc_ieee = { |
3620 | | "IEEE VLC data", |
3621 | | "Payload language" |
3622 | | }; |
3623 | | |
3624 | | static const true_false_string tfs_artnet_nzs_vlc_beacon = { |
3625 | | "continuously repeat", |
3626 | | "send once" |
3627 | | }; |
3628 | | |
3629 | 0 | #define ARTNET_NZS_VLC_LANG_CODE_BEACON_URL 0x0000 |
3630 | 0 | #define ARTNET_NZS_VLC_LANG_CODE_BEACON_TEXT 0x0001 |
3631 | 0 | #define ARTNET_NZS_VLC_LANG_CODE_BEACON_LOCID 0x0002 |
3632 | | |
3633 | | static const value_string vals_artnet_nzs_vlc_lang_code[] = { |
3634 | | { ARTNET_NZS_VLC_LANG_CODE_BEACON_URL, "BeaconURL" }, |
3635 | | { ARTNET_NZS_VLC_LANG_CODE_BEACON_TEXT, "BeaconText" }, |
3636 | | { ARTNET_NZS_VLC_LANG_CODE_BEACON_LOCID, "BeaconLocationID" }, |
3637 | | { 0x0000, NULL } |
3638 | | }; |
3639 | | |
3640 | | |
3641 | | /* Define the tree for artnet */ |
3642 | | static int ett_artnet; |
3643 | | static int ett_artnet_header; |
3644 | | static int ett_artnet_data; |
3645 | | |
3646 | | /* A static handle for the rdm dissector */ |
3647 | | static dissector_handle_t rdm_handle; |
3648 | | static dissector_handle_t dmx_chan_handle; |
3649 | | |
3650 | | static unsigned |
3651 | | dissect_artnet_poll(tvbuff_t *tvb, unsigned offset, proto_tree *tree, packet_info *pinfo) |
3652 | 0 | { |
3653 | |
|
3654 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_artnet_poll_talktome, |
3655 | 0 | ett_artnet_poll_talktome, |
3656 | 0 | artnet_poll_talktome_fields, |
3657 | 0 | ENC_BIG_ENDIAN); |
3658 | 0 | offset += 1; |
3659 | |
|
3660 | 0 | col_append_fstr(pinfo->cinfo, COL_INFO, " Prio=%s", |
3661 | 0 | val_to_str(pinfo->pool, tvb_get_uint8(tvb, offset), artnet_talktome_diag_priority_vals, "unknown(%u)")); |
3662 | 0 | proto_tree_add_item(tree, hf_artnet_poll_diag_priority, tvb, |
3663 | 0 | offset, 1, ENC_BIG_ENDIAN); |
3664 | 0 | offset += 1; |
3665 | | |
3666 | | /* TargetPort Top/Bottom not present (compatibility, >= Rev. DE) */ |
3667 | 0 | if(tvb_reported_length_remaining(tvb, offset) < 4) { |
3668 | 0 | return offset; |
3669 | 0 | } |
3670 | | |
3671 | 0 | proto_tree_add_item(tree, hf_artnet_poll_target_port_top, tvb, |
3672 | 0 | offset, 2, ENC_BIG_ENDIAN); |
3673 | 0 | offset += 2; |
3674 | |
|
3675 | 0 | proto_tree_add_item(tree, hf_artnet_poll_target_port_bottom, tvb, |
3676 | 0 | offset, 2, ENC_BIG_ENDIAN); |
3677 | 0 | offset += 2; |
3678 | |
|
3679 | 0 | col_append_fstr(pinfo->cinfo, COL_INFO, " (%d-%d)", |
3680 | 0 | tvb_get_uint16(tvb, offset-2, ENC_BIG_ENDIAN), |
3681 | 0 | tvb_get_uint16(tvb, offset-4, ENC_BIG_ENDIAN)); |
3682 | | |
3683 | | /* EstaMan/OEM not present (compatibility, >= Rev. DE) */ |
3684 | 0 | if(tvb_reported_length_remaining(tvb, offset) < 4) { |
3685 | 0 | return offset; |
3686 | 0 | } |
3687 | | |
3688 | 0 | proto_tree_add_item(tree, hf_artnet_poll_esta_man, tvb, |
3689 | 0 | offset, 2, ENC_BIG_ENDIAN); |
3690 | 0 | offset += 2; |
3691 | |
|
3692 | 0 | proto_tree_add_item(tree, hf_artnet_poll_oem, tvb, |
3693 | 0 | offset, 2, ENC_BIG_ENDIAN); |
3694 | 0 | offset += 2; |
3695 | |
|
3696 | 0 | return offset; |
3697 | 0 | } |
3698 | | |
3699 | | static unsigned |
3700 | | dissect_artnet_poll_reply(tvbuff_t *tvb, unsigned offset, proto_tree *tree, packet_info *pinfo) |
3701 | 3 | { |
3702 | 3 | proto_tree *hi, *si, *ti; |
3703 | 3 | proto_item *tf, *tp; |
3704 | 3 | uint16_t universe,uni_port; |
3705 | 3 | uint8_t bind_index; |
3706 | 3 | uint32_t bind_ip_address; |
3707 | 3 | GRegex *regex = NULL; |
3708 | 3 | GMatchInfo *match_info = NULL; |
3709 | 3 | bool bg_queue_supported; |
3710 | | |
3711 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_ip_address, tvb, |
3712 | 3 | offset, 4, ENC_BIG_ENDIAN); |
3713 | 3 | offset += 4; |
3714 | | |
3715 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_port_nr, tvb, |
3716 | 3 | offset, 2, ENC_LITTLE_ENDIAN); |
3717 | 3 | offset += 2; |
3718 | | |
3719 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_versinfo, tvb, |
3720 | 3 | offset, 2, ENC_BIG_ENDIAN); |
3721 | 3 | offset += 2; |
3722 | | |
3723 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_netswitch, tvb, |
3724 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3725 | 3 | universe = (tvb_get_uint8(tvb, offset) & 0x7F) << 8; |
3726 | 3 | offset += 1; |
3727 | | |
3728 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_subswitch, tvb, |
3729 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3730 | 3 | universe |= (tvb_get_uint8(tvb, offset) & 0x0F) << 4; |
3731 | 3 | offset += 1; |
3732 | | |
3733 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_oem, tvb, |
3734 | 3 | offset, 2, ENC_BIG_ENDIAN); |
3735 | 3 | offset += 2; |
3736 | | |
3737 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_ubea_version, tvb, |
3738 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3739 | 3 | offset += 1; |
3740 | | |
3741 | 3 | proto_tree_add_bitmask(tree, tvb, offset, hf_artnet_poll_reply_status, |
3742 | 3 | ett_artnet_poll_reply_status, |
3743 | 3 | artnet_poll_reply_status_fields, |
3744 | 3 | ENC_BIG_ENDIAN); |
3745 | 3 | offset += 1; |
3746 | | |
3747 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_esta_man, tvb, |
3748 | 3 | offset, 2, ENC_LITTLE_ENDIAN); |
3749 | 3 | offset += 2; |
3750 | | |
3751 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_short_name, |
3752 | 3 | tvb, offset, 18, ENC_ASCII); |
3753 | 3 | offset += 18; |
3754 | | |
3755 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_long_name, |
3756 | 3 | tvb, offset, 64, ENC_ASCII); |
3757 | 3 | offset += 64; |
3758 | | |
3759 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_node_report, |
3760 | 3 | tvb, offset, 64, ENC_ASCII); |
3761 | | |
3762 | | /* Try to extract node report regex data as generated fields (only if data contained) */ |
3763 | 3 | if(tvb_get_uint64(tvb, offset, ENC_BIG_ENDIAN) > 0) { |
3764 | 3 | regex = g_regex_new(artnet_poll_reply_node_report_regex, G_REGEX_DEFAULT, (GRegexMatchFlags) 0, NULL); |
3765 | 3 | DISSECTOR_ASSERT(regex != NULL); |
3766 | 3 | g_regex_match( |
3767 | 3 | regex, |
3768 | 3 | (const char*)tvb_get_string_enc(pinfo->pool, tvb, offset, 64, ENC_ASCII), |
3769 | 3 | (GRegexMatchFlags) 0, |
3770 | 3 | &match_info); |
3771 | | |
3772 | 3 | if(g_match_info_matches(match_info) && g_match_info_get_match_count(match_info) == 4) { |
3773 | 0 | char *status_code = g_match_info_fetch(match_info, 1); |
3774 | 0 | char *counter = g_match_info_fetch(match_info, 2); |
3775 | 0 | char *status_string = g_match_info_fetch(match_info, 3); |
3776 | |
|
3777 | 0 | tf = proto_tree_add_uint(tree, hf_artnet_poll_reply_node_report_status_code, tvb, 0, 0, (uint16_t)strtol(status_code, NULL, 16)); |
3778 | 0 | proto_item_set_generated(tf); |
3779 | |
|
3780 | 0 | tf = proto_tree_add_uint(tree, hf_artnet_poll_reply_node_report_response_counter, tvb, 0, 0, (uint32_t)strtoul(counter, NULL, 10)); |
3781 | 0 | proto_item_set_generated(tf); |
3782 | |
|
3783 | 0 | tf = proto_tree_add_string(tree, hf_artnet_poll_reply_node_report_status_string, tvb, 0, 0, status_string); |
3784 | 0 | proto_item_set_generated(tf); |
3785 | |
|
3786 | 0 | g_free(status_code); |
3787 | 0 | g_free(counter); |
3788 | 0 | g_free(status_string); |
3789 | 3 | } else { |
3790 | 3 | expert_add_info(pinfo, tree, &ei_artnet_poll_reply_node_report_invalid_format); |
3791 | 3 | } |
3792 | 3 | g_regex_unref(regex); |
3793 | 3 | g_match_info_free(match_info); |
3794 | 3 | } |
3795 | 3 | offset += 64; |
3796 | | |
3797 | | |
3798 | 3 | hi = proto_tree_add_item(tree, |
3799 | 3 | hf_artnet_poll_reply_port_info, |
3800 | 3 | tvb, |
3801 | 3 | offset, |
3802 | 3 | ARTNET_POLL_REPLY_PORT_INFO_LENGTH, |
3803 | 3 | ENC_NA); |
3804 | | |
3805 | 3 | si = proto_item_add_subtree(hi, ett_artnet_poll_reply_port_info); |
3806 | | |
3807 | 3 | col_append_fstr(pinfo->cinfo, COL_INFO, " Ports=%d", tvb_get_uint16(tvb, offset, ENC_BIG_ENDIAN)); |
3808 | 3 | proto_tree_add_item(si, hf_artnet_poll_reply_num_ports, tvb, |
3809 | 3 | offset, 2, ENC_BIG_ENDIAN); |
3810 | 3 | offset += 2; |
3811 | | |
3812 | 3 | hi = proto_tree_add_item(si, |
3813 | 3 | hf_artnet_poll_reply_port_types, |
3814 | 3 | tvb, |
3815 | 3 | offset, |
3816 | 3 | ARTNET_POLL_REPLY_PORT_TYPES_LENGTH, |
3817 | 3 | ENC_NA); |
3818 | | |
3819 | 3 | ti = proto_item_add_subtree(hi, ett_artnet_poll_reply_port_types); |
3820 | | |
3821 | 3 | proto_tree_add_item(ti, hf_artnet_poll_reply_port_types_1, tvb, |
3822 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3823 | 3 | offset += 1; |
3824 | | |
3825 | 3 | proto_tree_add_item(ti, hf_artnet_poll_reply_port_types_2, tvb, |
3826 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3827 | 3 | offset += 1; |
3828 | | |
3829 | 3 | proto_tree_add_item(ti, hf_artnet_poll_reply_port_types_3, tvb, |
3830 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3831 | 3 | offset += 1; |
3832 | | |
3833 | 3 | proto_tree_add_item(ti, hf_artnet_poll_reply_port_types_4, tvb, |
3834 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3835 | 3 | offset += 1; |
3836 | | |
3837 | 3 | hi = proto_tree_add_item(si, |
3838 | 3 | hf_artnet_poll_reply_good_input, |
3839 | 3 | tvb, |
3840 | 3 | offset, |
3841 | 3 | ARTNET_POLL_REPLY_GOOD_INPUT_LENGTH, |
3842 | 3 | ENC_NA); |
3843 | | |
3844 | 3 | ti = proto_item_add_subtree(hi, ett_artnet_poll_reply_good_input); |
3845 | | |
3846 | 3 | proto_tree_add_bitmask(ti, tvb, offset, hf_artnet_poll_reply_good_input_1, |
3847 | 3 | ett_artnet_poll_reply_good_input_1, |
3848 | 3 | artnet_poll_reply_good_input_fields, |
3849 | 3 | ENC_BIG_ENDIAN); |
3850 | 3 | offset += 1; |
3851 | 3 | proto_tree_add_bitmask(ti, tvb, offset, hf_artnet_poll_reply_good_input_2, |
3852 | 3 | ett_artnet_poll_reply_good_input_2, |
3853 | 3 | artnet_poll_reply_good_input_fields, |
3854 | 3 | ENC_BIG_ENDIAN); |
3855 | 3 | offset += 1; |
3856 | 3 | proto_tree_add_bitmask(ti, tvb, offset, hf_artnet_poll_reply_good_input_3, |
3857 | 3 | ett_artnet_poll_reply_good_input_3, |
3858 | 3 | artnet_poll_reply_good_input_fields, |
3859 | 3 | ENC_BIG_ENDIAN); |
3860 | 3 | offset += 1; |
3861 | 3 | proto_tree_add_bitmask(ti, tvb, offset, hf_artnet_poll_reply_good_input_4, |
3862 | 3 | ett_artnet_poll_reply_good_input_4, |
3863 | 3 | artnet_poll_reply_good_input_fields, |
3864 | 3 | ENC_BIG_ENDIAN); |
3865 | 3 | offset += 1; |
3866 | | |
3867 | 3 | hi = proto_tree_add_item(si, |
3868 | 3 | hf_artnet_poll_reply_good_output, |
3869 | 3 | tvb, |
3870 | 3 | offset, |
3871 | 3 | ARTNET_POLL_REPLY_GOOD_OUTPUT_LENGTH, |
3872 | 3 | ENC_NA); |
3873 | | |
3874 | 3 | ti = proto_item_add_subtree(hi, ett_artnet_poll_reply_good_output); |
3875 | | |
3876 | 3 | proto_tree_add_bitmask(ti, tvb, offset, hf_artnet_poll_reply_good_output_1, |
3877 | 3 | ett_artnet_poll_reply_good_output_1, |
3878 | 3 | artnet_poll_reply_good_output_fields, |
3879 | 3 | ENC_BIG_ENDIAN); |
3880 | 3 | offset += 1; |
3881 | 3 | proto_tree_add_bitmask(ti, tvb, offset, hf_artnet_poll_reply_good_output_2, |
3882 | 3 | ett_artnet_poll_reply_good_output_2, |
3883 | 3 | artnet_poll_reply_good_output_fields, |
3884 | 3 | ENC_BIG_ENDIAN); |
3885 | 3 | offset += 1; |
3886 | 3 | proto_tree_add_bitmask(ti, tvb, offset, hf_artnet_poll_reply_good_output_3, |
3887 | 3 | ett_artnet_poll_reply_good_output_3, |
3888 | 3 | artnet_poll_reply_good_output_fields, |
3889 | 3 | ENC_BIG_ENDIAN); |
3890 | 3 | offset += 1; |
3891 | 3 | proto_tree_add_bitmask(ti, tvb, offset, hf_artnet_poll_reply_good_output_4, |
3892 | 3 | ett_artnet_poll_reply_good_output_4, |
3893 | 3 | artnet_poll_reply_good_output_fields, |
3894 | 3 | ENC_BIG_ENDIAN); |
3895 | 3 | offset += 1; |
3896 | | |
3897 | 3 | hi = proto_tree_add_item(si, |
3898 | 3 | hf_artnet_poll_reply_swin, |
3899 | 3 | tvb, |
3900 | 3 | offset, |
3901 | 3 | ARTNET_POLL_REPLY_SWIN_LENGTH, |
3902 | 3 | ENC_NA); |
3903 | | |
3904 | 3 | ti = proto_item_add_subtree(hi, ett_artnet_poll_reply_swin); |
3905 | | |
3906 | 3 | proto_tree_add_item(ti, hf_artnet_poll_reply_swin_1, tvb, |
3907 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3908 | | |
3909 | 3 | uni_port = tvb_get_uint8(tvb, offset) & 0x0F; |
3910 | 3 | tf = proto_tree_add_uint(ti,hf_artnet_poll_reply_swin_1_universe,tvb, |
3911 | 3 | offset, 0, universe | uni_port); |
3912 | 3 | proto_item_set_generated(tf); |
3913 | 3 | offset += 1; |
3914 | | |
3915 | 3 | proto_tree_add_item(ti, hf_artnet_poll_reply_swin_2, tvb, |
3916 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3917 | 3 | uni_port = tvb_get_uint8(tvb, offset) & 0x0F; |
3918 | 3 | tf = proto_tree_add_uint(ti,hf_artnet_poll_reply_swin_2_universe,tvb, |
3919 | 3 | offset, 0, universe | uni_port); |
3920 | 3 | proto_item_set_generated(tf); |
3921 | 3 | offset += 1; |
3922 | | |
3923 | 3 | proto_tree_add_item(ti, hf_artnet_poll_reply_swin_3, tvb, |
3924 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3925 | 3 | uni_port = tvb_get_uint8(tvb, offset) & 0x0F; |
3926 | 3 | tf = proto_tree_add_uint(ti,hf_artnet_poll_reply_swin_3_universe,tvb, |
3927 | 3 | offset, 0, universe | uni_port); |
3928 | 3 | proto_item_set_generated(tf); |
3929 | 3 | offset += 1; |
3930 | | |
3931 | 3 | proto_tree_add_item(ti, hf_artnet_poll_reply_swin_4, tvb, |
3932 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3933 | 3 | uni_port = tvb_get_uint8(tvb, offset) & 0x0F; |
3934 | 3 | tf = proto_tree_add_uint(ti,hf_artnet_poll_reply_swin_4_universe,tvb, |
3935 | 3 | offset, 0, universe | uni_port); |
3936 | 3 | proto_item_set_generated(tf); |
3937 | 3 | offset += 1; |
3938 | | |
3939 | 3 | hi = proto_tree_add_item(si, |
3940 | 3 | hf_artnet_poll_reply_swout, |
3941 | 3 | tvb, |
3942 | 3 | offset, |
3943 | 3 | ARTNET_POLL_REPLY_SWOUT_LENGTH, |
3944 | 3 | ENC_NA); |
3945 | | |
3946 | 3 | ti = proto_item_add_subtree(hi, ett_artnet_poll_reply_swout); |
3947 | | |
3948 | 3 | proto_tree_add_item(ti, hf_artnet_poll_reply_swout_1, tvb, |
3949 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3950 | 3 | uni_port = tvb_get_uint8(tvb, offset) & 0x0F; |
3951 | 3 | tf = proto_tree_add_uint(ti,hf_artnet_poll_reply_swout_1_universe,tvb, |
3952 | 3 | offset, 0, universe | uni_port); |
3953 | 3 | proto_item_set_generated(tf); |
3954 | 3 | offset += 1; |
3955 | | |
3956 | 3 | proto_tree_add_item(ti, hf_artnet_poll_reply_swout_2, tvb, |
3957 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3958 | 3 | uni_port = tvb_get_uint8(tvb, offset) & 0x0F; |
3959 | 3 | tf = proto_tree_add_uint(ti,hf_artnet_poll_reply_swout_2_universe,tvb, |
3960 | 3 | offset, 0, universe | uni_port); |
3961 | 3 | proto_item_set_generated(tf); |
3962 | 3 | offset += 1; |
3963 | | |
3964 | 3 | proto_tree_add_item(ti, hf_artnet_poll_reply_swout_3, tvb, |
3965 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3966 | 3 | uni_port = tvb_get_uint8(tvb, offset) & 0x0F; |
3967 | 3 | tf = proto_tree_add_uint(ti,hf_artnet_poll_reply_swout_3_universe,tvb, |
3968 | 3 | offset, 0, universe | uni_port); |
3969 | 3 | proto_item_set_generated(tf); |
3970 | 3 | offset += 1; |
3971 | | |
3972 | 3 | proto_tree_add_item(ti, hf_artnet_poll_reply_swout_4, tvb, |
3973 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3974 | 3 | uni_port = tvb_get_uint8(tvb, offset) & 0x0F; |
3975 | 3 | tf = proto_tree_add_uint(ti,hf_artnet_poll_reply_swout_4_universe,tvb, |
3976 | 3 | offset, 0, universe | uni_port); |
3977 | 3 | proto_item_set_generated(tf); |
3978 | 3 | offset += 1; |
3979 | | |
3980 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_sacnprio, tvb, |
3981 | 3 | offset, 1, ENC_BIG_ENDIAN); |
3982 | 3 | offset += 1; |
3983 | | |
3984 | 3 | proto_tree_add_bitmask(tree, tvb, offset, hf_artnet_poll_reply_swmacro, |
3985 | 3 | ett_artnet_poll_reply_swmacro, |
3986 | 3 | artnet_poll_reply_swmacro_fields, |
3987 | 3 | ENC_BIG_ENDIAN); |
3988 | 3 | offset += 1; |
3989 | | |
3990 | 3 | proto_tree_add_bitmask(tree, tvb, offset, hf_artnet_poll_reply_swremote, |
3991 | 3 | ett_artnet_poll_reply_swremote, |
3992 | 3 | artnet_poll_reply_swremote_fields, |
3993 | 3 | ENC_BIG_ENDIAN); |
3994 | 3 | offset += 1; |
3995 | | |
3996 | 3 | proto_tree_add_item(tree, hf_artnet_spare, tvb, |
3997 | 3 | offset, 3, ENC_NA); |
3998 | 3 | offset += 3; |
3999 | | |
4000 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_style, tvb, |
4001 | 3 | offset, 1, ENC_BIG_ENDIAN); |
4002 | 3 | offset += 1; |
4003 | | |
4004 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_mac, |
4005 | 3 | tvb, offset, 6, ENC_NA); |
4006 | 3 | offset += 6; |
4007 | | |
4008 | 3 | bind_ip_address = tvb_get_uint32(tvb, offset, ENC_BIG_ENDIAN); |
4009 | 3 | tp = proto_tree_add_item(tree, hf_artnet_poll_reply_bind_ip_address, tvb, |
4010 | 3 | offset, 4, ENC_BIG_ENDIAN); |
4011 | 3 | if(bind_ip_address == 0) { |
4012 | 0 | proto_item_append_text(tp, " (unused)"); |
4013 | 0 | } |
4014 | 3 | offset += 4; |
4015 | | |
4016 | 3 | bind_index = tvb_get_uint8(tvb, offset); |
4017 | 3 | col_append_fstr(pinfo->cinfo, COL_INFO, " BindIdx=0x%02x", bind_index); |
4018 | 3 | tp = proto_tree_add_item(tree, hf_artnet_poll_reply_bind_index, tvb, |
4019 | 3 | offset, 1, ENC_BIG_ENDIAN); |
4020 | 3 | if(bind_index == 0) { |
4021 | 0 | proto_item_append_text(tp, " (unused)"); |
4022 | 3 | } else if(bind_index == 1) { |
4023 | 0 | proto_item_append_text(tp, " (root device)"); |
4024 | 0 | } |
4025 | 3 | offset += 1; |
4026 | | |
4027 | | /* If bind IP is non-zero, bind index must also be non-zero */ |
4028 | 3 | if(bind_ip_address != 0 && bind_index == 0) { |
4029 | 0 | expert_add_info(pinfo, tree, &ei_artnet_poll_reply_bind_ip_without_index); |
4030 | 0 | } |
4031 | | |
4032 | | /* If bind index is non-zero, bind IP must also be non-zero */ |
4033 | 3 | if(bind_index != 0 && bind_ip_address == 0) { |
4034 | 0 | expert_add_info(pinfo, tree, &ei_artnet_poll_reply_bind_index_without_ip); |
4035 | 0 | } |
4036 | | |
4037 | 3 | proto_tree_add_bitmask(tree, tvb, offset, hf_artnet_poll_reply_status2, |
4038 | 3 | ett_artnet_poll_reply_status2, |
4039 | 3 | artnet_poll_reply_status2_fields, |
4040 | 3 | ENC_BIG_ENDIAN); |
4041 | 3 | offset += 1; |
4042 | | |
4043 | | |
4044 | 3 | hi = proto_tree_add_item(tree, |
4045 | 3 | hf_artnet_poll_reply_good_output_b, |
4046 | 3 | tvb, |
4047 | 3 | offset, |
4048 | 3 | ARTNET_POLL_REPLY_GOOD_OUTPUT_B_LENGTH, |
4049 | 3 | ENC_NA); |
4050 | | |
4051 | 3 | ti = proto_item_add_subtree(hi, ett_artnet_poll_reply_good_output_b); |
4052 | | |
4053 | 3 | proto_tree_add_bitmask(ti, tvb, offset, hf_artnet_poll_reply_good_output_b_1, |
4054 | 3 | ett_artnet_poll_reply_good_output_b_1, |
4055 | 3 | artnet_poll_reply_good_output_b_fields, |
4056 | 3 | ENC_BIG_ENDIAN); |
4057 | 3 | offset += 1; |
4058 | 3 | proto_tree_add_bitmask(ti, tvb, offset, hf_artnet_poll_reply_good_output_b_2, |
4059 | 3 | ett_artnet_poll_reply_good_output_b_2, |
4060 | 3 | artnet_poll_reply_good_output_b_fields, |
4061 | 3 | ENC_BIG_ENDIAN); |
4062 | 3 | offset += 1; |
4063 | 3 | proto_tree_add_bitmask(ti, tvb, offset, hf_artnet_poll_reply_good_output_b_3, |
4064 | 3 | ett_artnet_poll_reply_good_output_b_3, |
4065 | 3 | artnet_poll_reply_good_output_b_fields, |
4066 | 3 | ENC_BIG_ENDIAN); |
4067 | 3 | offset += 1; |
4068 | 3 | proto_tree_add_bitmask(ti, tvb, offset, hf_artnet_poll_reply_good_output_b_4, |
4069 | 3 | ett_artnet_poll_reply_good_output_b_4, |
4070 | 3 | artnet_poll_reply_good_output_b_fields, |
4071 | 3 | ENC_BIG_ENDIAN); |
4072 | 3 | offset += 1; |
4073 | | |
4074 | 3 | bg_queue_supported = (bool)tvb_get_bits8(tvb, offset*8+6, 1); |
4075 | 3 | proto_tree_add_bitmask(tree, tvb, offset, hf_artnet_poll_reply_status3, |
4076 | 3 | ett_artnet_poll_reply_status3, |
4077 | 3 | artnet_poll_reply_status3_fields, |
4078 | 3 | ENC_BIG_ENDIAN); |
4079 | 3 | offset += 1; |
4080 | | |
4081 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_default_responder_uid, tvb, offset, 6, ENC_NA); |
4082 | 3 | offset += 6; |
4083 | | |
4084 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_user, tvb, offset, 2, ENC_BIG_ENDIAN); |
4085 | 3 | offset += 2; |
4086 | | |
4087 | 3 | proto_tree_add_item(tree, hf_artnet_poll_reply_refreshrate, tvb, offset, 2, ENC_BIG_ENDIAN); |
4088 | 3 | offset += 2; |
4089 | | |
4090 | 3 | if(bg_queue_supported) { |
4091 | 0 | proto_tree_add_item(tree, hf_artnet_poll_reply_bg_queue_policy, tvb, offset, 1, ENC_BIG_ENDIAN); |
4092 | 0 | offset += 1; |
4093 | 0 | } |
4094 | | |
4095 | | /* There are additional filler bytes reserved for future use */ |
4096 | 3 | if (offset < tvb_reported_length(tvb)) |
4097 | 0 | { |
4098 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, offset, -1, ENC_NA); |
4099 | 0 | offset = tvb_reported_length(tvb); |
4100 | 0 | } |
4101 | | |
4102 | 3 | return offset; |
4103 | 3 | } |
4104 | | |
4105 | | static unsigned |
4106 | | dissect_artnet_output(tvbuff_t *tvb, unsigned offset, proto_tree *tree, packet_info *pinfo, proto_tree* base_tree) |
4107 | 0 | { |
4108 | 0 | tvbuff_t *next_tvb; |
4109 | 0 | uint16_t length; |
4110 | 0 | unsigned size; |
4111 | 0 | bool save_info; |
4112 | |
|
4113 | 0 | proto_tree_add_item(tree, hf_artnet_output_sequence, tvb, |
4114 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4115 | 0 | offset += 1; |
4116 | |
|
4117 | 0 | proto_tree_add_item(tree, hf_artnet_output_physical, tvb, |
4118 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4119 | 0 | offset += 1; |
4120 | |
|
4121 | 0 | proto_tree_add_item(tree, hf_artnet_output_universe, tvb, |
4122 | 0 | offset, 2, ENC_LITTLE_ENDIAN); |
4123 | 0 | offset += 2; |
4124 | |
|
4125 | 0 | col_append_fstr(pinfo->cinfo, COL_INFO, " Seq=%d Port=%d Univ=%d", |
4126 | 0 | tvb_get_uint8(tvb, offset-4), tvb_get_uint8(tvb, offset-3), tvb_get_uint16(tvb, offset-2, ENC_LITTLE_ENDIAN)); |
4127 | |
|
4128 | 0 | length = tvb_get_ntohs(tvb, offset); |
4129 | 0 | proto_tree_add_uint(tree, hf_artnet_output_length, tvb, |
4130 | 0 | offset, 2, length); |
4131 | 0 | offset += 2; |
4132 | |
|
4133 | 0 | size = tvb_reported_length_remaining(tvb, offset); |
4134 | |
|
4135 | 0 | save_info = col_get_writable(pinfo->cinfo, COL_INFO); |
4136 | 0 | col_set_writable(pinfo->cinfo, COL_INFO, false); |
4137 | |
|
4138 | 0 | next_tvb = tvb_new_subset_length(tvb, offset, length); |
4139 | |
|
4140 | 0 | call_dissector(dmx_chan_handle, next_tvb, pinfo, base_tree); |
4141 | |
|
4142 | 0 | col_set_writable(pinfo->cinfo, COL_INFO, save_info); |
4143 | |
|
4144 | 0 | return offset + size; |
4145 | 0 | } |
4146 | | |
4147 | | static unsigned |
4148 | | dissect_artnet_sync(tvbuff_t *tvb, unsigned offset, proto_tree *tree) |
4149 | 0 | { |
4150 | 0 | proto_tree_add_item(tree, hf_artnet_sync_aux, tvb, |
4151 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4152 | 0 | offset += 2; |
4153 | |
|
4154 | 0 | return offset; |
4155 | 0 | } |
4156 | | |
4157 | | static unsigned |
4158 | | dissect_artnet_nzs(tvbuff_t *tvb, unsigned offset, proto_tree *tree, packet_info *pinfo, proto_tree* base_tree) |
4159 | 2 | { |
4160 | 2 | uint16_t length, payload_length, lang_code; |
4161 | 2 | uint8_t start_code; |
4162 | 2 | bool save_info; |
4163 | 2 | tvbuff_t *next_tvb; |
4164 | 2 | proto_item *pi; |
4165 | | |
4166 | 2 | proto_tree_add_item(tree, hf_artnet_nzs_sequence, tvb, |
4167 | 2 | offset, 1, ENC_BIG_ENDIAN); |
4168 | 2 | offset += 1; |
4169 | | |
4170 | 2 | start_code = tvb_get_uint8(tvb, offset); |
4171 | 2 | proto_tree_add_item(tree, hf_artnet_nzs_start_code, tvb, |
4172 | 2 | offset, 1, ENC_BIG_ENDIAN); |
4173 | 2 | offset += 1; |
4174 | | |
4175 | 2 | proto_tree_add_item(tree, hf_artnet_nzs_subuni, tvb, |
4176 | 2 | offset, 1, ENC_BIG_ENDIAN); |
4177 | 2 | offset += 1; |
4178 | | |
4179 | 2 | proto_tree_add_item(tree, hf_artnet_nzs_net, tvb, |
4180 | 2 | offset, 1, ENC_BIG_ENDIAN); |
4181 | 2 | offset += 1; |
4182 | | |
4183 | 2 | length = tvb_get_uint16(tvb, offset, ENC_BIG_ENDIAN); |
4184 | 2 | proto_tree_add_item(tree, hf_artnet_nzs_length, tvb, |
4185 | 2 | offset, 2, ENC_BIG_ENDIAN); |
4186 | 2 | offset += 2; |
4187 | | |
4188 | | |
4189 | | /* check if packet is normal ArtNzs or ArtVlc */ |
4190 | | |
4191 | 2 | if(tvb_reported_length_remaining(tvb, offset) < 3) { |
4192 | 0 | return offset; |
4193 | 0 | } |
4194 | | |
4195 | 2 | if( |
4196 | 2 | start_code == ARTNET_NZS_VLC_START_CODE && |
4197 | 0 | tvb_get_uint16(tvb, offset, ENC_BIG_ENDIAN) == ARTNET_NZS_VLC_MAGIC_MAN_ID && |
4198 | 0 | tvb_get_uint8(tvb, offset + 2) == ARTNET_NZS_VLC_MAGIC_SUB_CODE |
4199 | 2 | ) { |
4200 | | |
4201 | | /* VLC */ |
4202 | |
|
4203 | 0 | proto_tree_add_item(tree, hf_artnet_nzs_vlc_man_id, tvb, |
4204 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4205 | 0 | offset += 2; |
4206 | |
|
4207 | 0 | proto_tree_add_item(tree, hf_artnet_nzs_vlc_sub_code, tvb, |
4208 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4209 | 0 | offset += 1; |
4210 | |
|
4211 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_artnet_nzs_vlc_flags, |
4212 | 0 | ett_artnet_nzs_vlc_flags, |
4213 | 0 | artnet_nzs_vlc_flags_fields, |
4214 | 0 | ENC_BIG_ENDIAN); |
4215 | 0 | offset += 1; |
4216 | |
|
4217 | 0 | proto_tree_add_item(tree, hf_artnet_nzs_vlc_transaction, tvb, |
4218 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4219 | 0 | offset += 2; |
4220 | |
|
4221 | 0 | proto_tree_add_item(tree, hf_artnet_nzs_vlc_slot_addr, tvb, |
4222 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4223 | 0 | offset += 2; |
4224 | |
|
4225 | 0 | payload_length = tvb_get_uint16(tvb, offset, ENC_BIG_ENDIAN); |
4226 | 0 | proto_tree_add_item(tree, hf_artnet_nzs_vlc_payload_size, tvb, |
4227 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4228 | 0 | offset += 2; |
4229 | |
|
4230 | 0 | proto_tree_add_checksum(tree, tvb, offset, hf_artnet_nzs_vlc_payload_checksum, -1, NULL, NULL, 0, ENC_BIG_ENDIAN, PROTO_CHECKSUM_NO_FLAGS); |
4231 | 0 | offset += 2; |
4232 | |
|
4233 | 0 | proto_tree_add_item(tree, hf_artnet_spare, tvb, |
4234 | 0 | offset, 1, ENC_NA); |
4235 | 0 | offset += 1; |
4236 | |
|
4237 | 0 | proto_tree_add_item(tree, hf_artnet_nzs_vlc_mod_depth, tvb, |
4238 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4239 | 0 | offset += 1; |
4240 | |
|
4241 | 0 | proto_tree_add_item(tree, hf_artnet_nzs_vlc_mod_freq, tvb, |
4242 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4243 | 0 | offset += 2; |
4244 | |
|
4245 | 0 | proto_tree_add_item(tree, hf_artnet_nzs_vlc_mod_type, tvb, |
4246 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4247 | 0 | offset += 2; |
4248 | |
|
4249 | 0 | lang_code = tvb_get_uint16(tvb, offset, ENC_BIG_ENDIAN); |
4250 | 0 | proto_tree_add_item(tree, hf_artnet_nzs_vlc_lang_code, tvb, |
4251 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4252 | 0 | offset += 2; |
4253 | |
|
4254 | 0 | proto_tree_add_item(tree, hf_artnet_nzs_vlc_beacon_repeat, tvb, |
4255 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4256 | 0 | offset += 2; |
4257 | |
|
4258 | 0 | proto_tree_add_item(tree, hf_artnet_nzs_vlc_payload, tvb, |
4259 | 0 | offset, payload_length, ENC_NA); |
4260 | |
|
4261 | 0 | if(lang_code == ARTNET_NZS_VLC_LANG_CODE_BEACON_URL) { |
4262 | 0 | pi = proto_tree_add_item(tree, hf_artnet_nzs_vlc_payload_beacon_url, tvb, offset, payload_length, ENC_ASCII); |
4263 | 0 | proto_item_set_generated(pi); |
4264 | 0 | } else if(lang_code == ARTNET_NZS_VLC_LANG_CODE_BEACON_TEXT) { |
4265 | 0 | pi = proto_tree_add_item(tree, hf_artnet_nzs_vlc_payload_beacon_text, tvb, offset, payload_length, ENC_ASCII); |
4266 | 0 | proto_item_set_generated(pi); |
4267 | 0 | } else if(lang_code == ARTNET_NZS_VLC_LANG_CODE_BEACON_LOCID && tvb_reported_length_remaining(tvb, offset) >= 2) { |
4268 | 0 | pi = proto_tree_add_item(tree, hf_artnet_nzs_vlc_payload_beacon_location_id, tvb, offset, 2, ENC_BIG_ENDIAN); |
4269 | 0 | proto_item_set_generated(pi); |
4270 | 0 | } |
4271 | 0 | offset += payload_length; |
4272 | |
|
4273 | 0 | return offset; |
4274 | |
|
4275 | 2 | } else { |
4276 | | |
4277 | | /* Nzs -> DMX data */ |
4278 | | |
4279 | 2 | save_info = col_get_writable(pinfo->cinfo, COL_INFO); |
4280 | 2 | col_set_writable(pinfo->cinfo, COL_INFO, false); |
4281 | | |
4282 | 2 | next_tvb = tvb_new_subset_length(tvb, offset, length); |
4283 | | |
4284 | 2 | call_dissector(dmx_chan_handle, next_tvb, pinfo, base_tree); |
4285 | | |
4286 | 2 | col_set_writable(pinfo->cinfo, COL_INFO, save_info); |
4287 | | |
4288 | 2 | return offset + length; |
4289 | | |
4290 | 2 | } |
4291 | 2 | } |
4292 | | |
4293 | | static unsigned |
4294 | 0 | dissect_artnet_address(tvbuff_t *tvb, unsigned offset, proto_tree *tree, packet_info *pinfo) { |
4295 | 0 | proto_tree *hi, *si, *ti; |
4296 | 0 | uint8_t net, sub; |
4297 | |
|
4298 | 0 | net = tvb_get_uint8(tvb, offset); |
4299 | | |
4300 | | /* Treat the "special" values differently */ |
4301 | 0 | if (net == 0x00 || net == 0x7F) { |
4302 | 0 | proto_tree_add_uint(tree,hf_artnet_address_netswitch_special, tvb, |
4303 | 0 | offset, 0, net); |
4304 | 0 | } else { |
4305 | 0 | proto_tree_add_bitmask_text(tree, tvb, offset, 1, "NetSwitch: ", |
4306 | 0 | "NetSwitch Error: ", ett_artnet_address_netswitch, |
4307 | 0 | artnet_address_netswitch_fields, ENC_BIG_ENDIAN, 0); |
4308 | 0 | } |
4309 | |
|
4310 | 0 | offset += 1; |
4311 | |
|
4312 | 0 | col_append_fstr(pinfo->cinfo, COL_INFO, " BindIdx=0x%02x", tvb_get_uint8(tvb, offset)); |
4313 | 0 | proto_tree_add_item(tree, hf_artnet_address_bind_index, tvb, |
4314 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4315 | 0 | offset += 1; |
4316 | |
|
4317 | 0 | proto_tree_add_item(tree, hf_artnet_address_short_name, |
4318 | 0 | tvb, offset, 18, ENC_ASCII); |
4319 | 0 | offset += 18; |
4320 | |
|
4321 | 0 | proto_tree_add_item(tree, hf_artnet_address_long_name, |
4322 | 0 | tvb, offset, 64, ENC_ASCII); |
4323 | 0 | offset += 64; |
4324 | |
|
4325 | 0 | hi = proto_tree_add_item(tree, |
4326 | 0 | hf_artnet_address_swin, |
4327 | 0 | tvb, |
4328 | 0 | offset, |
4329 | 0 | ARTNET_ADDRESS_SWIN_LENGTH, |
4330 | 0 | ENC_NA); |
4331 | |
|
4332 | 0 | ti = proto_item_add_subtree(hi, ett_artnet_address_swin); |
4333 | |
|
4334 | 0 | proto_tree_add_item(ti, hf_artnet_address_swin_1, tvb, |
4335 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4336 | 0 | offset += 1; |
4337 | |
|
4338 | 0 | proto_tree_add_item(ti, hf_artnet_address_swin_2, tvb, |
4339 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4340 | 0 | offset += 1; |
4341 | |
|
4342 | 0 | proto_tree_add_item(ti, hf_artnet_address_swin_3, tvb, |
4343 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4344 | 0 | offset += 1; |
4345 | |
|
4346 | 0 | proto_tree_add_item(ti, hf_artnet_address_swin_4, tvb, |
4347 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4348 | 0 | offset += 1; |
4349 | |
|
4350 | 0 | hi = proto_tree_add_item(tree, |
4351 | 0 | hf_artnet_address_swout, |
4352 | 0 | tvb, |
4353 | 0 | offset, |
4354 | 0 | ARTNET_ADDRESS_SWOUT_LENGTH, |
4355 | 0 | ENC_NA); |
4356 | |
|
4357 | 0 | si = proto_item_add_subtree(hi, ett_artnet_address_swout); |
4358 | |
|
4359 | 0 | proto_tree_add_item(si, hf_artnet_address_swout_1, tvb, |
4360 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4361 | 0 | offset += 1; |
4362 | |
|
4363 | 0 | proto_tree_add_item(si, hf_artnet_address_swout_2, tvb, |
4364 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4365 | 0 | offset += 1; |
4366 | |
|
4367 | 0 | proto_tree_add_item(si, hf_artnet_address_swout_3, tvb, |
4368 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4369 | 0 | offset += 1; |
4370 | |
|
4371 | 0 | proto_tree_add_item(si, hf_artnet_address_swout_4, tvb, |
4372 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4373 | 0 | offset += 1; |
4374 | |
|
4375 | 0 | sub = tvb_get_uint8(tvb, offset); |
4376 | | |
4377 | | /* Treat the "special" values differently */ |
4378 | 0 | if (sub == 0x00 || sub == 0x7F) { |
4379 | 0 | proto_tree_add_uint(tree,hf_artnet_address_subswitch_special, tvb, |
4380 | 0 | offset, 0, sub); |
4381 | 0 | } else { |
4382 | 0 | proto_tree_add_bitmask_text(tree, tvb, offset, 1, "SubSwitch: ", |
4383 | 0 | "SubSwitch Error: ", ett_artnet_address_subswitch, |
4384 | 0 | artnet_address_subswitch_fields, ENC_BIG_ENDIAN, 0); |
4385 | 0 | } |
4386 | 0 | offset += 1; |
4387 | |
|
4388 | 0 | proto_tree_add_item(tree, hf_artnet_address_sacnprio, tvb, |
4389 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4390 | 0 | offset += 1; |
4391 | |
|
4392 | 0 | proto_tree_add_item(tree, hf_artnet_address_command, tvb, |
4393 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4394 | |
|
4395 | 0 | offset += 1; |
4396 | |
|
4397 | 0 | return offset; |
4398 | 0 | } |
4399 | | |
4400 | | static unsigned |
4401 | 0 | dissect_artnet_input(tvbuff_t *tvb, unsigned offset, proto_tree *tree, packet_info *pinfo) { |
4402 | 0 | proto_tree *hi, *si; |
4403 | |
|
4404 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4405 | 0 | offset, 1, ENC_NA); |
4406 | 0 | offset += 1; |
4407 | |
|
4408 | 0 | col_append_fstr(pinfo->cinfo, COL_INFO, " BindIdx=0x%02x", tvb_get_uint8(tvb, offset)); |
4409 | 0 | proto_tree_add_item(tree, hf_artnet_input_bind_index, tvb, |
4410 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4411 | 0 | offset += 1; |
4412 | |
|
4413 | 0 | col_append_fstr(pinfo->cinfo, COL_INFO, " Ports=%d", tvb_get_uint16(tvb, offset, ENC_BIG_ENDIAN)); |
4414 | 0 | proto_tree_add_item(tree, hf_artnet_input_num_ports, tvb, |
4415 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4416 | 0 | offset += 2; |
4417 | |
|
4418 | 0 | hi = proto_tree_add_item(tree, |
4419 | 0 | hf_artnet_input_input, |
4420 | 0 | tvb, |
4421 | 0 | offset, |
4422 | 0 | ARTNET_INPUT_INPUT_LENGTH, |
4423 | 0 | ENC_NA); |
4424 | |
|
4425 | 0 | si = proto_item_add_subtree(hi, ett_artnet_input_input); |
4426 | |
|
4427 | 0 | proto_tree_add_bitmask(si, tvb, offset, hf_artnet_input_input_1, |
4428 | 0 | ett_artnet_input_input_1, |
4429 | 0 | artnet_input_input_fields, |
4430 | 0 | ENC_BIG_ENDIAN); |
4431 | 0 | offset += 1; |
4432 | |
|
4433 | 0 | proto_tree_add_bitmask(si, tvb, offset, hf_artnet_input_input_2, |
4434 | 0 | ett_artnet_input_input_2, |
4435 | 0 | artnet_input_input_fields, |
4436 | 0 | ENC_BIG_ENDIAN); |
4437 | 0 | offset += 1; |
4438 | |
|
4439 | 0 | proto_tree_add_bitmask(si, tvb, offset, hf_artnet_input_input_3, |
4440 | 0 | ett_artnet_input_input_3, |
4441 | 0 | artnet_input_input_fields, |
4442 | 0 | ENC_BIG_ENDIAN); |
4443 | 0 | offset += 1; |
4444 | |
|
4445 | 0 | proto_tree_add_bitmask(si, tvb, offset, hf_artnet_input_input_4, |
4446 | 0 | ett_artnet_input_input_4, |
4447 | 0 | artnet_input_input_fields, |
4448 | 0 | ENC_BIG_ENDIAN); |
4449 | 0 | offset += 1; |
4450 | |
|
4451 | 0 | return offset; |
4452 | 0 | } |
4453 | | |
4454 | | static unsigned |
4455 | 0 | dissect_artnet_video_setup(tvbuff_t *tvb, unsigned offset, proto_tree *tree ) { |
4456 | 0 | uint32_t size; |
4457 | 0 | uint8_t font_height, last_font; |
4458 | |
|
4459 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4460 | 0 | offset, 4, ENC_NA); |
4461 | 0 | offset += 4; |
4462 | |
|
4463 | 0 | proto_tree_add_item(tree, hf_artnet_video_setup_control, tvb, |
4464 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4465 | 0 | offset += 1; |
4466 | |
|
4467 | 0 | font_height = tvb_get_uint8(tvb, offset); |
4468 | 0 | proto_tree_add_uint(tree, hf_artnet_video_setup_font_height, tvb, |
4469 | 0 | offset, 1, font_height); |
4470 | 0 | offset += 1; |
4471 | |
|
4472 | 0 | proto_tree_add_item(tree, hf_artnet_video_setup_first_font, tvb, |
4473 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4474 | 0 | offset += 1; |
4475 | |
|
4476 | 0 | last_font = tvb_get_uint8(tvb, offset); |
4477 | 0 | proto_tree_add_uint(tree, hf_artnet_video_setup_last_font, tvb, |
4478 | 0 | offset, 1, last_font); |
4479 | 0 | offset += 1; |
4480 | |
|
4481 | 0 | proto_tree_add_item(tree, hf_artnet_video_setup_win_font_name, |
4482 | 0 | tvb, offset, 64, ENC_ASCII); |
4483 | 0 | offset += 64; |
4484 | |
|
4485 | 0 | size = last_font * font_height; |
4486 | |
|
4487 | 0 | proto_tree_add_item(tree, hf_artnet_video_setup_font_data, tvb, |
4488 | 0 | offset, size, ENC_NA ); |
4489 | |
|
4490 | 0 | offset += size; |
4491 | |
|
4492 | 0 | return offset; |
4493 | 0 | } |
4494 | | |
4495 | | static unsigned |
4496 | | dissect_artnet_video_palette(tvbuff_t *tvb, unsigned offset, proto_tree *tree) |
4497 | 0 | { |
4498 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4499 | 0 | offset, 2, ENC_NA); |
4500 | 0 | offset += 2; |
4501 | |
|
4502 | 0 | proto_tree_add_item(tree, hf_artnet_video_palette_colour_red, tvb, |
4503 | 0 | offset, 17, ENC_NA ); |
4504 | 0 | offset += 17; |
4505 | |
|
4506 | 0 | proto_tree_add_item(tree, hf_artnet_video_palette_colour_green, tvb, |
4507 | 0 | offset, 17, ENC_NA ); |
4508 | 0 | offset += 17; |
4509 | |
|
4510 | 0 | proto_tree_add_item(tree, hf_artnet_video_palette_colour_blue, tvb, |
4511 | 0 | offset, 17, ENC_NA ); |
4512 | 0 | offset += 17; |
4513 | |
|
4514 | 0 | return offset; |
4515 | 0 | } |
4516 | | |
4517 | | static unsigned |
4518 | 0 | dissect_artnet_video_data(tvbuff_t *tvb, unsigned offset, proto_tree *tree) { |
4519 | 0 | uint8_t len_x, len_y; |
4520 | 0 | uint32_t size; |
4521 | |
|
4522 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4523 | 0 | offset, 2, ENC_NA); |
4524 | 0 | offset += 2; |
4525 | |
|
4526 | 0 | proto_tree_add_item(tree, hf_artnet_video_data_pos_x, tvb, |
4527 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4528 | 0 | offset += 1; |
4529 | |
|
4530 | 0 | proto_tree_add_item(tree, hf_artnet_video_data_pos_y, tvb, |
4531 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4532 | 0 | offset += 1; |
4533 | |
|
4534 | 0 | len_x = tvb_get_uint8(tvb, offset); |
4535 | 0 | proto_tree_add_uint(tree, hf_artnet_video_data_len_x, tvb, |
4536 | 0 | offset, 1, len_x); |
4537 | 0 | offset += 1; |
4538 | |
|
4539 | 0 | len_y = tvb_get_uint8(tvb, offset); |
4540 | 0 | proto_tree_add_uint(tree, hf_artnet_video_data_len_y, tvb, |
4541 | 0 | offset, 1, len_y); |
4542 | 0 | offset += 1; |
4543 | |
|
4544 | 0 | size = len_x * len_y * 2; |
4545 | |
|
4546 | 0 | proto_tree_add_item(tree, hf_artnet_video_data_data, tvb, |
4547 | 0 | offset, size, ENC_NA ); |
4548 | |
|
4549 | 0 | offset += size; |
4550 | |
|
4551 | 0 | return offset; |
4552 | 0 | } |
4553 | | |
4554 | | static unsigned |
4555 | 0 | dissect_artnet_firmware_master(tvbuff_t *tvb, unsigned offset, proto_tree *tree ) { |
4556 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4557 | 0 | offset, 2, ENC_NA); |
4558 | 0 | offset += 2; |
4559 | |
|
4560 | 0 | proto_tree_add_item(tree, hf_artnet_firmware_master_type, tvb, |
4561 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4562 | 0 | offset += 1; |
4563 | |
|
4564 | 0 | proto_tree_add_item(tree, hf_artnet_firmware_master_block_id, tvb, |
4565 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4566 | 0 | offset += 1; |
4567 | |
|
4568 | 0 | proto_tree_add_item(tree, hf_artnet_firmware_master_length, tvb, |
4569 | 0 | offset, 4, ENC_BIG_ENDIAN); |
4570 | 0 | offset += 4; |
4571 | |
|
4572 | 0 | proto_tree_add_item(tree, hf_artnet_spare, tvb, |
4573 | 0 | offset, 20, ENC_NA ); |
4574 | 0 | offset += 20; |
4575 | |
|
4576 | 0 | proto_tree_add_item(tree, hf_artnet_firmware_master_data, tvb, |
4577 | 0 | offset, 1024, ENC_NA ); |
4578 | 0 | offset += 1024; |
4579 | |
|
4580 | 0 | return offset; |
4581 | 0 | } |
4582 | | |
4583 | | static unsigned |
4584 | 0 | dissect_artnet_firmware_reply(tvbuff_t *tvb, unsigned offset, proto_tree *tree) { |
4585 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4586 | 0 | offset, 2, ENC_NA); |
4587 | 0 | offset += 2; |
4588 | |
|
4589 | 0 | proto_tree_add_item(tree, hf_artnet_firmware_reply_type, tvb, |
4590 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4591 | 0 | offset += 1; |
4592 | |
|
4593 | 0 | proto_tree_add_item(tree, hf_artnet_spare, tvb, |
4594 | 0 | offset, 21, ENC_NA ); |
4595 | 0 | offset += 21; |
4596 | |
|
4597 | 0 | return offset; |
4598 | 0 | } |
4599 | | |
4600 | | static unsigned |
4601 | | dissect_artnet_tod_request(tvbuff_t *tvb, unsigned offset, proto_tree *tree, packet_info *pinfo) |
4602 | 0 | { |
4603 | 0 | uint8_t ad_count; |
4604 | |
|
4605 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4606 | 0 | offset, 2, ENC_NA); |
4607 | 0 | offset += 2; |
4608 | |
|
4609 | 0 | proto_tree_add_item(tree, hf_artnet_spare, tvb, |
4610 | 0 | offset, 7, ENC_NA); |
4611 | 0 | offset += 7; |
4612 | |
|
4613 | 0 | proto_tree_add_item(tree, hf_artnet_tod_request_net, tvb, |
4614 | 0 | offset, 1, ENC_NA); |
4615 | 0 | offset += 1; |
4616 | |
|
4617 | 0 | col_append_fstr(pinfo->cinfo, COL_INFO, " Cmd=%s", val_to_str(pinfo->pool, tvb_get_uint8(tvb, offset), artnet_tod_request_command_vals, "unknown(%u)")); |
4618 | 0 | proto_tree_add_item(tree, hf_artnet_tod_request_command, tvb, |
4619 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4620 | 0 | offset += 1; |
4621 | |
|
4622 | 0 | ad_count = tvb_get_uint8(tvb, offset); |
4623 | 0 | proto_tree_add_uint(tree, hf_artnet_tod_request_ad_count, tvb, |
4624 | 0 | offset, 1, ad_count); |
4625 | 0 | offset += 1; |
4626 | |
|
4627 | 0 | proto_tree_add_item(tree, hf_artnet_tod_request_address, tvb, |
4628 | 0 | offset, ad_count, ENC_NA); |
4629 | 0 | offset += ad_count; |
4630 | |
|
4631 | 0 | return offset; |
4632 | 0 | } |
4633 | | |
4634 | | static unsigned |
4635 | | dissect_artnet_tod_data(tvbuff_t *tvb, unsigned offset, proto_tree *tree, packet_info *pinfo) |
4636 | 0 | { |
4637 | 0 | uint16_t universe; |
4638 | 0 | proto_item *tf, *tod_item; |
4639 | 0 | proto_tree * tod_tree; |
4640 | 0 | uint8_t i, uid_count; |
4641 | |
|
4642 | 0 | proto_tree_add_item(tree, hf_artnet_tod_data_rdm_ver, tvb, |
4643 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4644 | 0 | offset += 1; |
4645 | |
|
4646 | 0 | proto_tree_add_item(tree, hf_artnet_tod_data_port, tvb, |
4647 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4648 | 0 | offset += 1; |
4649 | |
|
4650 | 0 | proto_tree_add_item(tree, hf_artnet_spare, tvb, |
4651 | 0 | offset, 6, ENC_NA); |
4652 | 0 | offset += 6; |
4653 | |
|
4654 | 0 | col_append_fstr(pinfo->cinfo, COL_INFO, " BindIdx=0x%02x", tvb_get_uint8(tvb, offset)); |
4655 | 0 | proto_tree_add_item(tree, hf_artnet_tod_data_bind_index, tvb, |
4656 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4657 | 0 | offset += 1; |
4658 | |
|
4659 | 0 | proto_tree_add_item(tree, hf_artnet_tod_data_net, tvb, |
4660 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4661 | 0 | universe = (tvb_get_uint8(tvb, offset) & 0x7F) << 8; |
4662 | 0 | offset += 1; |
4663 | |
|
4664 | 0 | proto_tree_add_item(tree, hf_artnet_tod_data_command_response, tvb, |
4665 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4666 | 0 | offset += 1; |
4667 | |
|
4668 | 0 | proto_tree_add_item(tree, hf_artnet_tod_data_address, tvb, |
4669 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4670 | 0 | universe |= tvb_get_uint8(tvb, offset); |
4671 | 0 | tf = proto_tree_add_uint(tree,hf_artnet_tod_control_universe,tvb, |
4672 | 0 | offset, 0, universe); |
4673 | 0 | proto_item_set_generated(tf); |
4674 | 0 | offset += 1; |
4675 | |
|
4676 | 0 | proto_tree_add_item(tree, hf_artnet_tod_data_uid_total, tvb, |
4677 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4678 | 0 | offset += 2; |
4679 | |
|
4680 | 0 | proto_tree_add_item(tree, hf_artnet_tod_data_block_count, tvb, |
4681 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4682 | 0 | offset += 1; |
4683 | |
|
4684 | 0 | uid_count = tvb_get_uint8(tvb, offset); |
4685 | 0 | proto_tree_add_uint(tree, hf_artnet_tod_data_uid_count, tvb, |
4686 | 0 | offset, 1, uid_count); |
4687 | 0 | offset += 1; |
4688 | |
|
4689 | 0 | for( i = 0; i < uid_count; i++) |
4690 | 0 | { |
4691 | 0 | tod_item = proto_tree_add_item(tree, hf_artnet_tod_data_tod, tvb, |
4692 | 0 | offset, 6, ENC_NA); |
4693 | 0 | tod_tree = proto_item_add_subtree(tod_item, ett_artnet_tod_data_tod); |
4694 | 0 | proto_tree_add_item(tod_tree, hf_artnet_tod_data_tod_manf, tvb, |
4695 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4696 | 0 | proto_tree_add_item(tod_tree, hf_artnet_tod_data_tod_dev, tvb, |
4697 | 0 | offset+2, 4, ENC_BIG_ENDIAN); |
4698 | 0 | offset += 6; |
4699 | 0 | } |
4700 | |
|
4701 | 0 | return offset; |
4702 | 0 | } |
4703 | | |
4704 | | static unsigned |
4705 | | dissect_artnet_tod_control(tvbuff_t *tvb, unsigned offset, proto_tree *tree, packet_info *pinfo) |
4706 | 1 | { |
4707 | 1 | uint16_t universe; |
4708 | 1 | proto_item *tf; |
4709 | | |
4710 | 1 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4711 | 1 | offset, 2, ENC_NA); |
4712 | 1 | offset += 2; |
4713 | | |
4714 | 1 | proto_tree_add_item(tree, hf_artnet_spare, tvb, |
4715 | 1 | offset, 7, ENC_NA); |
4716 | 1 | offset += 7; |
4717 | | |
4718 | 1 | proto_tree_add_item(tree, hf_artnet_tod_control_net, tvb, |
4719 | 1 | offset, 1, ENC_BIG_ENDIAN); |
4720 | 1 | universe = (tvb_get_uint8(tvb, offset) & 0x7F) << 8; |
4721 | 1 | offset += 1; |
4722 | | |
4723 | 1 | col_append_fstr(pinfo->cinfo, COL_INFO, " Cmd=%s", val_to_str(pinfo->pool, tvb_get_uint8(tvb, offset), artnet_tod_control_command_vals, "unknown(%u)")); |
4724 | 1 | proto_tree_add_item(tree, hf_artnet_tod_control_command, tvb, |
4725 | 1 | offset, 1, ENC_BIG_ENDIAN); |
4726 | 1 | offset += 1; |
4727 | | |
4728 | 1 | proto_tree_add_item(tree, hf_artnet_tod_control_address, tvb, |
4729 | 1 | offset, 1, ENC_BIG_ENDIAN); |
4730 | 1 | universe |= tvb_get_uint8(tvb, offset); |
4731 | 1 | tf = proto_tree_add_uint(tree,hf_artnet_tod_control_universe,tvb, |
4732 | 1 | offset, 0, universe); |
4733 | 1 | proto_item_set_generated(tf); |
4734 | 1 | offset += 1; |
4735 | | |
4736 | 1 | return offset; |
4737 | 1 | } |
4738 | | |
4739 | | static unsigned |
4740 | | dissect_artnet_rdm(tvbuff_t *tvb, unsigned offset, proto_tree *tree, packet_info *pinfo, proto_tree *base_tree) |
4741 | 0 | { |
4742 | 0 | uint16_t universe; |
4743 | 0 | proto_item *tf; |
4744 | 0 | uint8_t rdmver; |
4745 | 0 | uint8_t sc; |
4746 | 0 | unsigned size; |
4747 | 0 | bool save_info; |
4748 | 0 | tvbuff_t *next_tvb; |
4749 | |
|
4750 | 0 | rdmver = tvb_get_uint8(tvb, offset); |
4751 | 0 | if (rdmver == 0x00) { |
4752 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4753 | 0 | offset, 2, ENC_NA); |
4754 | 0 | offset += 2; |
4755 | |
|
4756 | 0 | proto_tree_add_item(tree, hf_artnet_spare, tvb, |
4757 | 0 | offset, 8, ENC_NA); |
4758 | 0 | offset += 8; |
4759 | 0 | universe = 0; |
4760 | 0 | } else { |
4761 | 0 | proto_tree_add_item(tree, hf_artnet_rdm_rdmver, tvb, |
4762 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4763 | 0 | offset += 1; |
4764 | |
|
4765 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4766 | 0 | offset, 1, ENC_NA); |
4767 | 0 | offset += 1; |
4768 | |
|
4769 | 0 | proto_tree_add_item(tree, hf_artnet_spare, tvb, |
4770 | 0 | offset, 5, ENC_NA); |
4771 | 0 | offset += 5; |
4772 | |
|
4773 | 0 | proto_tree_add_item(tree, hf_artnet_rdm_fifo_avail, tvb, |
4774 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4775 | 0 | offset += 1; |
4776 | |
|
4777 | 0 | proto_tree_add_item(tree, hf_artnet_rdm_fifo_max, tvb, |
4778 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4779 | 0 | offset += 1; |
4780 | |
|
4781 | 0 | proto_tree_add_item(tree, hf_artnet_rdm_net, tvb, |
4782 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4783 | 0 | universe = (tvb_get_uint8(tvb, offset) & 0x7F) << 8; |
4784 | 0 | offset += 1; |
4785 | 0 | } |
4786 | |
|
4787 | 0 | proto_tree_add_item(tree, hf_artnet_rdm_command, tvb, |
4788 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4789 | 0 | offset += 1; |
4790 | |
|
4791 | 0 | proto_tree_add_item(tree, hf_artnet_rdm_address, tvb, |
4792 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4793 | 0 | universe |= tvb_get_uint8(tvb, offset); |
4794 | 0 | tf = proto_tree_add_uint(tree,hf_artnet_tod_control_universe,tvb, |
4795 | 0 | offset, 0, universe); |
4796 | 0 | proto_item_set_generated(tf); |
4797 | 0 | offset += 1; |
4798 | | |
4799 | | /* check for old version that included the 0xCC startcode |
4800 | | * The 0xCC will never be the first byte of the RDM packet |
4801 | | */ |
4802 | 0 | sc = tvb_get_uint8(tvb, offset); |
4803 | |
|
4804 | 0 | if (sc == 0xCC) { |
4805 | 0 | proto_tree_add_item(tree, hf_artnet_rdm_sc, tvb, |
4806 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4807 | 0 | offset += 1; |
4808 | 0 | } |
4809 | |
|
4810 | 0 | size = tvb_reported_length_remaining(tvb, offset); |
4811 | |
|
4812 | 0 | save_info = col_get_writable(pinfo->cinfo, COL_INFO); |
4813 | 0 | col_set_writable(pinfo->cinfo, COL_INFO, false); |
4814 | |
|
4815 | 0 | next_tvb = tvb_new_subset_remaining(tvb, offset); |
4816 | |
|
4817 | 0 | call_dissector(rdm_handle, next_tvb, pinfo, base_tree); |
4818 | |
|
4819 | 0 | col_set_writable(pinfo->cinfo, COL_INFO, save_info); |
4820 | |
|
4821 | 0 | return offset + size; |
4822 | 0 | } |
4823 | | |
4824 | | |
4825 | | static unsigned |
4826 | | dissect_artnet_rdm_sub(tvbuff_t *tvb, unsigned offset, proto_tree *tree, packet_info *pinfo _U_) |
4827 | 0 | { |
4828 | 0 | uint8_t cc; |
4829 | 0 | int size; |
4830 | |
|
4831 | 0 | proto_tree_add_item(tree, hf_artnet_rdm_rdmver, tvb, |
4832 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4833 | 0 | offset += 1; |
4834 | |
|
4835 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4836 | 0 | offset, 1, ENC_NA); |
4837 | 0 | offset += 1; |
4838 | |
|
4839 | 0 | proto_tree_add_item(tree, hf_artnet_rdm_sub_uid, tvb, |
4840 | 0 | offset, 6, ENC_NA); |
4841 | 0 | offset += 6; |
4842 | |
|
4843 | 0 | proto_tree_add_item(tree, hf_artnet_spare, tvb, |
4844 | 0 | offset, 1, ENC_NA); |
4845 | 0 | offset += 1; |
4846 | |
|
4847 | 0 | cc = tvb_get_uint8(tvb, offset); |
4848 | 0 | proto_tree_add_item(tree, hf_artnet_rdm_sub_command_class, tvb, |
4849 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4850 | 0 | offset += 1; |
4851 | |
|
4852 | 0 | proto_tree_add_item(tree, hf_artnet_rdm_sub_pid, tvb, |
4853 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4854 | 0 | offset += 2; |
4855 | |
|
4856 | 0 | proto_tree_add_item(tree, hf_artnet_rdm_sub_sub_device, tvb, |
4857 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4858 | 0 | offset += 2; |
4859 | |
|
4860 | 0 | proto_tree_add_item(tree, hf_artnet_rdm_sub_sub_count, tvb, |
4861 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4862 | 0 | offset += 2; |
4863 | |
|
4864 | 0 | proto_tree_add_item(tree, hf_artnet_spare, tvb, |
4865 | 0 | offset, 4, ENC_NA); |
4866 | 0 | offset += 4; |
4867 | |
|
4868 | 0 | switch (cc) { |
4869 | 0 | case ARTNET_CC_SET_COMMAND: |
4870 | 0 | case ARTNET_CC_GET_COMMAND_RESPONSE: |
4871 | 0 | size = tvb_reported_length_remaining(tvb, offset); |
4872 | 0 | proto_tree_add_item(tree, hf_artnet_rdm_sub_data, tvb, |
4873 | 0 | offset, size, ENC_NA); |
4874 | 0 | offset += size; |
4875 | 0 | break; |
4876 | | |
4877 | 0 | case ARTNET_CC_DISCOVERY_COMMAND: |
4878 | 0 | case ARTNET_CC_DISCOVERY_COMMAND_RESPONSE: |
4879 | 0 | case ARTNET_CC_GET_COMMAND: |
4880 | 0 | case ARTNET_CC_SET_COMMAND_RESPONSE: |
4881 | 0 | default: |
4882 | 0 | break; |
4883 | 0 | } |
4884 | | |
4885 | 0 | return offset; |
4886 | 0 | } |
4887 | | |
4888 | | static unsigned |
4889 | | dissect_artnet_ip_prog(tvbuff_t *tvb, unsigned offset, proto_tree *tree) |
4890 | 0 | { |
4891 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4892 | 0 | offset, 2, ENC_NA); |
4893 | 0 | offset += 2; |
4894 | |
|
4895 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_artnet_ip_prog_command, |
4896 | 0 | ett_artnet_ip_prog_command, |
4897 | 0 | artnet_ip_prog_command_fields, |
4898 | 0 | ENC_BIG_ENDIAN); |
4899 | 0 | offset += 1; |
4900 | |
|
4901 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4902 | 0 | offset, 1, ENC_NA); |
4903 | 0 | offset += 1; |
4904 | |
|
4905 | 0 | proto_tree_add_item(tree, hf_artnet_ip_prog_ip, tvb, |
4906 | 0 | offset, 4, ENC_BIG_ENDIAN); |
4907 | 0 | offset += 4; |
4908 | |
|
4909 | 0 | proto_tree_add_item(tree, hf_artnet_ip_prog_sm, tvb, |
4910 | 0 | offset, 4, ENC_BIG_ENDIAN); |
4911 | 0 | offset += 4; |
4912 | |
|
4913 | 0 | proto_tree_add_item(tree, hf_artnet_ip_prog_port, tvb, |
4914 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4915 | 0 | offset += 2; |
4916 | |
|
4917 | 0 | proto_tree_add_item(tree, hf_artnet_ip_prog_gw, tvb, |
4918 | 0 | offset, 4, ENC_BIG_ENDIAN); |
4919 | 0 | offset += 4; |
4920 | |
|
4921 | 0 | proto_tree_add_item(tree, hf_artnet_spare, tvb, |
4922 | 0 | offset, 4, ENC_NA); |
4923 | 0 | offset += 4; |
4924 | |
|
4925 | 0 | return offset; |
4926 | 0 | } |
4927 | | |
4928 | | static unsigned |
4929 | | dissect_artnet_ip_prog_reply(tvbuff_t *tvb, unsigned offset, proto_tree *tree) |
4930 | 0 | { |
4931 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4932 | 0 | offset, 4, ENC_NA); |
4933 | 0 | offset += 4; |
4934 | |
|
4935 | 0 | proto_tree_add_item(tree, hf_artnet_ip_prog_reply_ip, tvb, |
4936 | 0 | offset, 4, ENC_BIG_ENDIAN); |
4937 | 0 | offset += 4; |
4938 | |
|
4939 | 0 | proto_tree_add_item(tree, hf_artnet_ip_prog_reply_sm, tvb, |
4940 | 0 | offset, 4, ENC_BIG_ENDIAN); |
4941 | 0 | offset += 4; |
4942 | |
|
4943 | 0 | proto_tree_add_item(tree, hf_artnet_ip_prog_reply_port, tvb, |
4944 | 0 | offset, 2, ENC_BIG_ENDIAN); |
4945 | 0 | offset += 2; |
4946 | |
|
4947 | 0 | proto_tree_add_bitmask(tree, tvb, offset, hf_artnet_ip_prog_reply_status, |
4948 | 0 | ett_artnet_ip_prog_reply_status, |
4949 | 0 | artnet_ip_prog_reply_status_fields, |
4950 | 0 | ENC_BIG_ENDIAN); |
4951 | 0 | offset += 1; |
4952 | |
|
4953 | 0 | proto_tree_add_item(tree, hf_artnet_spare, tvb, |
4954 | 0 | offset, 1, ENC_NA); |
4955 | 0 | offset += 1; |
4956 | |
|
4957 | 0 | proto_tree_add_item(tree, hf_artnet_ip_prog_reply_gw, tvb, |
4958 | 0 | offset, 4, ENC_BIG_ENDIAN); |
4959 | 0 | offset += 4; |
4960 | |
|
4961 | 0 | proto_tree_add_item(tree, hf_artnet_spare, tvb, |
4962 | 0 | offset, 2, ENC_NA); |
4963 | 0 | offset += 2; |
4964 | |
|
4965 | 0 | return offset; |
4966 | 0 | } |
4967 | | |
4968 | | static unsigned |
4969 | | dissect_artnet_poll_fp_reply(tvbuff_t *tvb _U_, unsigned offset, proto_tree *tree _U_) |
4970 | 0 | { |
4971 | 0 | return offset; |
4972 | 0 | } |
4973 | | |
4974 | | |
4975 | | /* ArtDiagData */ |
4976 | | static unsigned |
4977 | | dissect_artnet_diag_data(tvbuff_t *tvb, unsigned offset, proto_tree *tree) |
4978 | 0 | { |
4979 | 0 | uint16_t length; |
4980 | |
|
4981 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4982 | 0 | offset, 1, ENC_NA); |
4983 | 0 | offset += 1; |
4984 | |
|
4985 | 0 | proto_tree_add_item(tree, hf_artnet_diag_data_priority, tvb, |
4986 | 0 | offset, 1, ENC_NA); |
4987 | 0 | offset += 1; |
4988 | |
|
4989 | 0 | proto_tree_add_item(tree, hf_artnet_diag_data_port, tvb, |
4990 | 0 | offset, 1, ENC_BIG_ENDIAN); |
4991 | 0 | offset += 1; |
4992 | |
|
4993 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
4994 | 0 | offset, 1, ENC_NA); |
4995 | 0 | offset += 1; |
4996 | |
|
4997 | 0 | proto_tree_add_item_ret_uint16(tree, hf_artnet_diag_data_length, tvb, |
4998 | 0 | offset, 2, ENC_BIG_ENDIAN, &length); |
4999 | 0 | offset+=2; |
5000 | |
|
5001 | 0 | proto_tree_add_item(tree, hf_artnet_diag_data_data, tvb, |
5002 | 0 | offset, length, ENC_ASCII); |
5003 | 0 | offset += length; |
5004 | |
|
5005 | 0 | return offset; |
5006 | 0 | } |
5007 | | |
5008 | | /* ArtCommand */ |
5009 | | static unsigned |
5010 | | dissect_artnet_command(tvbuff_t *tvb, unsigned offset, proto_tree *tree) |
5011 | 0 | { |
5012 | 0 | uint16_t length; |
5013 | |
|
5014 | 0 | proto_tree_add_item(tree, hf_artnet_command_esta_man, tvb, |
5015 | 0 | offset, 2, ENC_BIG_ENDIAN); |
5016 | 0 | offset += 2; |
5017 | |
|
5018 | 0 | length = tvb_get_ntohs(tvb, offset); |
5019 | 0 | proto_tree_add_item(tree, hf_artnet_command_length, tvb, |
5020 | 0 | offset, 2, ENC_BIG_ENDIAN); |
5021 | 0 | offset+=2; |
5022 | |
|
5023 | 0 | proto_tree_add_item(tree, hf_artnet_command_data, tvb, |
5024 | 0 | offset, length, ENC_ASCII); |
5025 | 0 | offset += length; |
5026 | |
|
5027 | 0 | return offset; |
5028 | 0 | } |
5029 | | |
5030 | | /* ArtDataRequest */ |
5031 | | static unsigned |
5032 | | dissect_artnet_data_request(tvbuff_t *tvb, unsigned offset, proto_tree *tree) |
5033 | 0 | { |
5034 | 0 | proto_tree_add_item(tree, hf_artnet_data_request_esta_man, tvb, |
5035 | 0 | offset, 2, ENC_BIG_ENDIAN); |
5036 | 0 | offset += 2; |
5037 | |
|
5038 | 0 | proto_tree_add_item(tree, hf_artnet_data_request_oem, tvb, |
5039 | 0 | offset, 2, ENC_BIG_ENDIAN); |
5040 | 0 | offset += 2; |
5041 | |
|
5042 | 0 | proto_tree_add_item(tree, hf_artnet_data_request_request, tvb, |
5043 | 0 | offset, 2, ENC_BIG_ENDIAN); |
5044 | 0 | offset += 2; |
5045 | |
|
5046 | 0 | proto_tree_add_item(tree, hf_artnet_data_request_spare, tvb, |
5047 | 0 | offset, 22, ENC_NA); |
5048 | 0 | offset += 22; |
5049 | |
|
5050 | 0 | return offset; |
5051 | 0 | } |
5052 | | |
5053 | | /* ArtDataReply */ |
5054 | | static unsigned |
5055 | | dissect_artnet_data_reply(tvbuff_t *tvb, unsigned offset, proto_tree *tree) |
5056 | 0 | { |
5057 | 0 | uint16_t payload_length; |
5058 | |
|
5059 | 0 | proto_tree_add_item(tree, hf_artnet_data_reply_esta_man, tvb, |
5060 | 0 | offset, 2, ENC_BIG_ENDIAN); |
5061 | 0 | offset += 2; |
5062 | |
|
5063 | 0 | proto_tree_add_item(tree, hf_artnet_data_reply_oem, tvb, |
5064 | 0 | offset, 2, ENC_BIG_ENDIAN); |
5065 | 0 | offset += 2; |
5066 | |
|
5067 | 0 | proto_tree_add_item(tree, hf_artnet_data_reply_request, tvb, |
5068 | 0 | offset, 2, ENC_BIG_ENDIAN); |
5069 | 0 | offset += 2; |
5070 | |
|
5071 | 0 | payload_length = tvb_get_uint16(tvb, offset, ENC_BIG_ENDIAN); |
5072 | 0 | proto_tree_add_item(tree, hf_artnet_data_reply_payload_length, tvb, |
5073 | 0 | offset, 2, ENC_BIG_ENDIAN); |
5074 | 0 | offset += 2; |
5075 | |
|
5076 | 0 | if(payload_length == 0) { |
5077 | 0 | return offset; |
5078 | 0 | } |
5079 | | |
5080 | 0 | proto_tree_add_item(tree, hf_artnet_data_reply_payload, tvb, |
5081 | 0 | offset, payload_length, ENC_ASCII); |
5082 | |
|
5083 | 0 | offset += payload_length; |
5084 | |
|
5085 | 0 | return offset; |
5086 | 0 | } |
5087 | | |
5088 | | /* ArtMedia */ |
5089 | | static unsigned |
5090 | | dissect_artnet_media(tvbuff_t *tvb _U_, unsigned offset, proto_tree *tree _U_) |
5091 | 0 | { |
5092 | 0 | return offset; |
5093 | 0 | } |
5094 | | |
5095 | | /* ArtMediaPatch */ |
5096 | | static unsigned |
5097 | | dissect_artnet_media_patch(tvbuff_t *tvb _U_, unsigned offset, proto_tree *tree _U_) |
5098 | 0 | { |
5099 | 0 | return offset; |
5100 | 0 | } |
5101 | | |
5102 | | /* ArtMediaControl */ |
5103 | | static unsigned |
5104 | | dissect_artnet_media_control(tvbuff_t *tvb _U_, unsigned offset, proto_tree *tree _U_) |
5105 | 0 | { |
5106 | 0 | return offset; |
5107 | 0 | } |
5108 | | |
5109 | | /* ArtMediaControlReply */ |
5110 | | static unsigned |
5111 | | dissect_artnet_media_control_reply(tvbuff_t *tvb _U_, unsigned offset, proto_tree *tree _U_) |
5112 | 0 | { |
5113 | 0 | return offset; |
5114 | 0 | } |
5115 | | |
5116 | | /* ArtTimeCode */ |
5117 | | static unsigned |
5118 | | dissect_artnet_time_code(tvbuff_t *tvb, unsigned offset, proto_tree *tree) |
5119 | 0 | { |
5120 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
5121 | 0 | offset, 1, ENC_NA); |
5122 | 0 | offset += 1; |
5123 | |
|
5124 | 0 | proto_tree_add_item(tree, hf_artnet_time_code_stream_id, tvb, |
5125 | 0 | offset, 1, ENC_BIG_ENDIAN); |
5126 | 0 | offset += 1; |
5127 | |
|
5128 | 0 | proto_tree_add_item(tree, hf_artnet_time_code_frames, tvb, |
5129 | 0 | offset, 1, ENC_BIG_ENDIAN); |
5130 | 0 | offset += 1; |
5131 | |
|
5132 | 0 | proto_tree_add_item(tree, hf_artnet_time_code_seconds, tvb, |
5133 | 0 | offset, 1, ENC_BIG_ENDIAN); |
5134 | 0 | offset += 1; |
5135 | |
|
5136 | 0 | proto_tree_add_item(tree, hf_artnet_time_code_minutes, tvb, |
5137 | 0 | offset, 1, ENC_BIG_ENDIAN); |
5138 | 0 | offset += 1; |
5139 | |
|
5140 | 0 | proto_tree_add_item(tree, hf_artnet_time_code_hours, tvb, |
5141 | 0 | offset, 1, ENC_BIG_ENDIAN); |
5142 | 0 | offset += 1; |
5143 | |
|
5144 | 0 | proto_tree_add_item(tree, hf_artnet_time_code_type, tvb, |
5145 | 0 | offset, 1, ENC_BIG_ENDIAN); |
5146 | 0 | offset += 1; |
5147 | |
|
5148 | 0 | return offset; |
5149 | 0 | } |
5150 | | |
5151 | | /* ArtTimeSync */ |
5152 | | static unsigned |
5153 | | dissect_artnet_time_sync(tvbuff_t *tvb _U_, unsigned offset, proto_tree *tree _U_) |
5154 | 0 | { |
5155 | 0 | return offset; |
5156 | 0 | } |
5157 | | |
5158 | | /* ArtTrigger */ |
5159 | | static unsigned |
5160 | | dissect_artnet_trigger(tvbuff_t *tvb, unsigned offset, proto_tree *tree) |
5161 | 0 | { |
5162 | 0 | uint16_t oem; |
5163 | 0 | proto_item *pi; |
5164 | |
|
5165 | 0 | proto_tree_add_item(tree, hf_artnet_filler, tvb, |
5166 | 0 | offset, 2, ENC_NA); |
5167 | 0 | offset += 2; |
5168 | |
|
5169 | 0 | oem = tvb_get_uint16(tvb, offset, ENC_BIG_ENDIAN); |
5170 | 0 | proto_tree_add_item(tree, hf_artnet_trigger_oem, tvb, |
5171 | 0 | offset, 2, ENC_BIG_ENDIAN); |
5172 | 0 | offset += 2; |
5173 | |
|
5174 | 0 | proto_tree_add_item(tree, hf_artnet_trigger_key, tvb, |
5175 | 0 | offset, 1, ENC_BIG_ENDIAN); |
5176 | |
|
5177 | 0 | if(oem == ARTNET_TRIGGER_NOT_OEM_SPECIFIC) { |
5178 | 0 | pi = proto_tree_add_item(tree, hf_artnet_trigger_key_unspecific, tvb, |
5179 | 0 | offset, 1, ENC_BIG_ENDIAN); |
5180 | 0 | proto_item_set_generated(pi); |
5181 | 0 | } |
5182 | 0 | offset += 1; |
5183 | |
|
5184 | 0 | proto_tree_add_item(tree, hf_artnet_trigger_subkey, tvb, |
5185 | 0 | offset, 1, ENC_BIG_ENDIAN); |
5186 | 0 | offset += 1; |
5187 | |
|
5188 | 0 | proto_tree_add_item(tree, hf_artnet_trigger_data, tvb, |
5189 | 0 | offset, 512, ENC_NA); |
5190 | 0 | offset += 512; |
5191 | |
|
5192 | 0 | return offset; |
5193 | 0 | } |
5194 | | |
5195 | | /* ArtDirectory */ |
5196 | | static unsigned |
5197 | | dissect_artnet_directory(tvbuff_t *tvb, unsigned offset, proto_tree *tree) |
5198 | 0 | { |
5199 | 0 | proto_tree_add_item(tree, hf_artnet_directory_filler, tvb, |
5200 | 0 | offset, 2, ENC_NA); |
5201 | 0 | offset += 2; |
5202 | |
|
5203 | 0 | proto_tree_add_item(tree, hf_artnet_directory_cmd, tvb, |
5204 | 0 | offset, 1, ENC_NA); |
5205 | 0 | offset += 1; |
5206 | |
|
5207 | 0 | proto_tree_add_item(tree, hf_artnet_directory_file, tvb, |
5208 | 0 | offset, 2, ENC_BIG_ENDIAN); |
5209 | 0 | offset += 2; |
5210 | |
|
5211 | 0 | return offset; |
5212 | 0 | } |
5213 | | |
5214 | | /* ArtDirectoryReply */ |
5215 | | static unsigned |
5216 | | dissect_artnet_directory_reply(tvbuff_t *tvb, unsigned offset, proto_tree *tree) |
5217 | 0 | { |
5218 | 0 | proto_tree_add_item(tree, hf_artnet_directory_reply_filler, tvb, |
5219 | 0 | offset, 2, ENC_NA); |
5220 | 0 | offset += 2; |
5221 | |
|
5222 | 0 | proto_tree_add_item(tree, hf_artnet_directory_reply_flags, tvb, |
5223 | 0 | offset, 1, ENC_NA); |
5224 | 0 | offset += 1; |
5225 | |
|
5226 | 0 | proto_tree_add_item(tree, hf_artnet_directory_reply_file, tvb, |
5227 | 0 | offset, 2, ENC_BIG_ENDIAN); |
5228 | 0 | offset += 2; |
5229 | |
|
5230 | 0 | proto_tree_add_item(tree, hf_artnet_directory_reply_name, tvb, |
5231 | 0 | offset, 16, ENC_ASCII); |
5232 | 0 | offset += 16; |
5233 | |
|
5234 | 0 | proto_tree_add_item(tree, hf_artnet_directory_reply_desc, tvb, |
5235 | 0 | offset, 64, ENC_ASCII); |
5236 | 0 | offset += 64; |
5237 | |
|
5238 | 0 | proto_tree_add_item(tree, hf_artnet_directory_reply_length, tvb, |
5239 | 0 | offset, 8, ENC_BIG_ENDIAN); |
5240 | 0 | offset += 8; |
5241 | |
|
5242 | 0 | proto_tree_add_item(tree, hf_artnet_directory_reply_data, tvb, |
5243 | 0 | offset, 64, ENC_NA); |
5244 | 0 | offset += 64; |
5245 | |
|
5246 | 0 | return offset; |
5247 | 0 | } |
5248 | | |
5249 | | /* ArtMacMaster */ |
5250 | | static unsigned |
5251 | | dissect_artnet_mac_master(tvbuff_t *tvb _U_, unsigned offset, proto_tree *tree _U_) |
5252 | 0 | { |
5253 | 0 | return offset; |
5254 | 0 | } |
5255 | | |
5256 | | /* ArtMacSlave */ |
5257 | | static unsigned |
5258 | | dissect_artnet_mac_slave(tvbuff_t *tvb _U_, unsigned offset, proto_tree *tree _U_) |
5259 | 0 | { |
5260 | 0 | return offset; |
5261 | 0 | } |
5262 | | |
5263 | | /* ArtFileTnMaster */ |
5264 | | static unsigned |
5265 | | dissect_artnet_file_tn_master(tvbuff_t *tvb, unsigned offset, proto_tree *tree) |
5266 | 0 | { |
5267 | 0 | proto_tree_add_item(tree, hf_artnet_file_tn_master_filler, tvb, |
5268 | 0 | offset, 2, ENC_NA); |
5269 | 0 | offset += 2; |
5270 | |
|
5271 | 0 | proto_tree_add_item(tree, hf_artnet_file_tn_master_type, tvb, |
5272 | 0 | offset, 1, ENC_NA); |
5273 | 0 | offset += 1; |
5274 | |
|
5275 | 0 | proto_tree_add_item(tree, hf_artnet_file_tn_master_block_id, tvb, |
5276 | 0 | offset, 1, ENC_NA); |
5277 | 0 | offset += 1; |
5278 | |
|
5279 | 0 | proto_tree_add_item(tree, hf_artnet_file_tn_master_length, tvb, |
5280 | 0 | offset, 4, ENC_BIG_ENDIAN); |
5281 | 0 | offset += 4; |
5282 | |
|
5283 | 0 | proto_tree_add_item(tree, hf_artnet_file_tn_master_name, tvb, |
5284 | 0 | offset, 14, ENC_ASCII); |
5285 | 0 | offset += 14; |
5286 | |
|
5287 | 0 | proto_tree_add_checksum(tree, tvb, offset, hf_artnet_file_tn_master_checksum, -1, NULL, NULL, 0, ENC_BIG_ENDIAN, PROTO_CHECKSUM_NO_FLAGS); |
5288 | 0 | offset += 2; |
5289 | |
|
5290 | 0 | proto_tree_add_item(tree, hf_artnet_file_tn_master_spare, tvb, |
5291 | 0 | offset, 4, ENC_NA); |
5292 | 0 | offset += 4; |
5293 | |
|
5294 | 0 | proto_tree_add_item(tree, hf_artnet_file_tn_master_data, tvb, |
5295 | 0 | offset, 512, ENC_NA); |
5296 | 0 | offset += 512; |
5297 | |
|
5298 | 0 | return offset; |
5299 | 0 | } |
5300 | | |
5301 | | /* ArtFileFnMaster */ |
5302 | | static unsigned |
5303 | | dissect_artnet_file_fn_master(tvbuff_t *tvb _U_, unsigned offset, proto_tree *tree _U_) |
5304 | 0 | { |
5305 | 0 | return offset; |
5306 | 0 | } |
5307 | | |
5308 | | /* ArtFileFnReply */ |
5309 | | static unsigned |
5310 | | dissect_artnet_file_fn_reply(tvbuff_t *tvb _U_, unsigned offset, proto_tree *tree _U_) |
5311 | 0 | { |
5312 | 0 | return offset; |
5313 | 0 | } |
5314 | | |
5315 | | static int |
5316 | 9 | dissect_artnet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) { |
5317 | 9 | int offset = 0; |
5318 | 9 | unsigned size; |
5319 | 9 | uint16_t opcode; |
5320 | 9 | const uint8_t *header; |
5321 | 9 | proto_tree *ti, *hi, *si = NULL, *artnet_tree, *artnet_header_tree; |
5322 | | |
5323 | 9 | col_set_str(pinfo->cinfo, COL_PROTOCOL, "ARTNET"); |
5324 | 9 | col_clear(pinfo->cinfo, COL_INFO); |
5325 | | |
5326 | 9 | ti = proto_tree_add_item(tree, proto_artnet, tvb, offset, -1, ENC_NA); |
5327 | 9 | artnet_tree = proto_item_add_subtree(ti, ett_artnet); |
5328 | | |
5329 | 9 | hi = proto_tree_add_item(artnet_tree, hf_artnet_header, tvb, |
5330 | 9 | offset, ARTNET_HEADER_LENGTH, ENC_NA); |
5331 | 9 | artnet_header_tree = proto_item_add_subtree(hi, ett_artnet_header); |
5332 | | |
5333 | 9 | proto_tree_add_item_ret_string(artnet_header_tree, hf_artnet_header_id, |
5334 | 9 | tvb, offset, 8, ENC_ASCII|ENC_NA, pinfo->pool, &header); |
5335 | 9 | offset += 8; |
5336 | | |
5337 | 9 | opcode = tvb_get_letohs(tvb, offset); |
5338 | | |
5339 | 9 | col_set_str(pinfo->cinfo, COL_INFO, |
5340 | 9 | val_to_str_ext_const(opcode, &artnet_opcode_vals_ext, "Unknown")); |
5341 | | |
5342 | | |
5343 | 9 | proto_tree_add_uint(artnet_header_tree, hf_artnet_header_opcode, tvb, |
5344 | 9 | offset, 2, opcode); |
5345 | | |
5346 | 9 | proto_item_append_text(ti, ", Opcode: %s (0x%04x)", val_to_str_ext_const(opcode, &artnet_opcode_vals_ext, "Unknown"), opcode); |
5347 | | |
5348 | 9 | offset += 2; |
5349 | | |
5350 | 9 | if (opcode != ARTNET_OP_POLL_REPLY && opcode != ARTNET_OP_POLL_FP_REPLY) { |
5351 | | |
5352 | 5 | proto_tree_add_item(artnet_header_tree, hf_artnet_header_protver, tvb, |
5353 | 5 | offset, 2, ENC_BIG_ENDIAN); |
5354 | | |
5355 | 5 | proto_item_set_len(artnet_header_tree, ARTNET_HEADER_LENGTH+2 ); |
5356 | | |
5357 | 5 | offset += 2; |
5358 | 5 | } |
5359 | | |
5360 | 9 | switch (opcode) { |
5361 | | |
5362 | 0 | case ARTNET_OP_POLL: |
5363 | |
|
5364 | 0 | hi = proto_tree_add_item(artnet_tree, |
5365 | 0 | hf_artnet_poll, |
5366 | 0 | tvb, |
5367 | 0 | offset, |
5368 | 0 | 0, |
5369 | 0 | ENC_NA); |
5370 | |
|
5371 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5372 | |
|
5373 | 0 | size = dissect_artnet_poll( tvb, offset, si, pinfo ); |
5374 | 0 | size -= offset; |
5375 | |
|
5376 | 0 | proto_item_set_len(si, size); |
5377 | 0 | offset += size; |
5378 | |
|
5379 | 0 | break; |
5380 | | |
5381 | 3 | case ARTNET_OP_POLL_REPLY: |
5382 | | |
5383 | 3 | hi = proto_tree_add_item(artnet_tree, |
5384 | 3 | hf_artnet_poll_reply, |
5385 | 3 | tvb, |
5386 | 3 | offset, |
5387 | 3 | 0, |
5388 | 3 | ENC_NA); |
5389 | | |
5390 | 3 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5391 | | |
5392 | 3 | size = dissect_artnet_poll_reply( tvb, offset, si, pinfo); |
5393 | 3 | size -= offset; |
5394 | | |
5395 | 3 | proto_item_set_len(si, size); |
5396 | 3 | offset += size; |
5397 | | |
5398 | 3 | break; |
5399 | | |
5400 | 0 | case ARTNET_OP_POLL_FP_REPLY: |
5401 | |
|
5402 | 0 | hi = proto_tree_add_item(artnet_tree, |
5403 | 0 | hf_artnet_poll_fp_reply, |
5404 | 0 | tvb, |
5405 | 0 | offset, |
5406 | 0 | 0, |
5407 | 0 | ENC_NA ); |
5408 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5409 | |
|
5410 | 0 | size = dissect_artnet_poll_fp_reply( tvb, offset, si ); |
5411 | 0 | size -= offset; |
5412 | |
|
5413 | 0 | proto_item_set_len(si, size ); |
5414 | 0 | offset += size; |
5415 | |
|
5416 | 0 | break; |
5417 | | |
5418 | 0 | case ARTNET_OP_DIAG_DATA: |
5419 | |
|
5420 | 0 | hi = proto_tree_add_item(artnet_tree, |
5421 | 0 | hf_artnet_diag_data, |
5422 | 0 | tvb, |
5423 | 0 | offset, |
5424 | 0 | 0, |
5425 | 0 | ENC_NA ); |
5426 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5427 | |
|
5428 | 0 | size = dissect_artnet_diag_data( tvb, offset, si ); |
5429 | 0 | size -= offset; |
5430 | |
|
5431 | 0 | proto_item_set_len(si, size ); |
5432 | 0 | offset += size; |
5433 | |
|
5434 | 0 | break; |
5435 | | |
5436 | 0 | case ARTNET_OP_COMMAND: |
5437 | |
|
5438 | 0 | hi = proto_tree_add_item(artnet_tree, |
5439 | 0 | hf_artnet_command, |
5440 | 0 | tvb, |
5441 | 0 | offset, |
5442 | 0 | 0, |
5443 | 0 | ENC_NA ); |
5444 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5445 | |
|
5446 | 0 | size = dissect_artnet_command( tvb, offset, si ); |
5447 | 0 | size -= offset; |
5448 | |
|
5449 | 0 | proto_item_set_len(si, size ); |
5450 | 0 | offset += size; |
5451 | |
|
5452 | 0 | break; |
5453 | | |
5454 | 0 | case ARTNET_OP_DATA_REQUEST: |
5455 | |
|
5456 | 0 | hi = proto_tree_add_item(artnet_tree, |
5457 | 0 | hf_artnet_data_request, |
5458 | 0 | tvb, |
5459 | 0 | offset, |
5460 | 0 | 0, |
5461 | 0 | ENC_NA ); |
5462 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5463 | |
|
5464 | 0 | size = dissect_artnet_data_request( tvb, offset, si ); |
5465 | 0 | size -= offset; |
5466 | |
|
5467 | 0 | proto_item_set_len(si, size ); |
5468 | 0 | offset += size; |
5469 | |
|
5470 | 0 | break; |
5471 | | |
5472 | 0 | case ARTNET_OP_DATA_REPLY: |
5473 | |
|
5474 | 0 | hi = proto_tree_add_item(artnet_tree, |
5475 | 0 | hf_artnet_data_reply, |
5476 | 0 | tvb, |
5477 | 0 | offset, |
5478 | 0 | 0, |
5479 | 0 | ENC_NA ); |
5480 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5481 | |
|
5482 | 0 | size = dissect_artnet_data_reply( tvb, offset, si ); |
5483 | 0 | size -= offset; |
5484 | |
|
5485 | 0 | proto_item_set_len(si, size ); |
5486 | 0 | offset += size; |
5487 | |
|
5488 | 0 | break; |
5489 | | |
5490 | 0 | case ARTNET_OP_OUTPUT: |
5491 | 0 | hi = proto_tree_add_item(artnet_tree, |
5492 | 0 | hf_artnet_output, |
5493 | 0 | tvb, |
5494 | 0 | offset, |
5495 | 0 | 0, |
5496 | 0 | ENC_NA); |
5497 | |
|
5498 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5499 | |
|
5500 | 0 | size = dissect_artnet_output( tvb, offset, si, pinfo, tree); |
5501 | 0 | size -= offset; |
5502 | 0 | proto_item_set_len(si, size ); |
5503 | 0 | offset += size; |
5504 | 0 | break; |
5505 | | |
5506 | | |
5507 | 0 | case ARTNET_OP_SYNC: |
5508 | |
|
5509 | 0 | hi = proto_tree_add_item(artnet_tree, |
5510 | 0 | hf_artnet_sync, |
5511 | 0 | tvb, |
5512 | 0 | offset, |
5513 | 0 | 0, |
5514 | 0 | ENC_NA); |
5515 | |
|
5516 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5517 | |
|
5518 | 0 | size = dissect_artnet_sync( tvb, offset, si ); |
5519 | 0 | size -= offset; |
5520 | |
|
5521 | 0 | proto_item_set_len(si, size); |
5522 | 0 | offset += size; |
5523 | |
|
5524 | 0 | break; |
5525 | | |
5526 | | |
5527 | 0 | case ARTNET_OP_ADDRESS: |
5528 | |
|
5529 | 0 | hi = proto_tree_add_item(artnet_tree, |
5530 | 0 | hf_artnet_address, |
5531 | 0 | tvb, |
5532 | 0 | offset, |
5533 | 0 | 0, |
5534 | 0 | ENC_NA); |
5535 | |
|
5536 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5537 | |
|
5538 | 0 | size = dissect_artnet_address( tvb, offset, si, pinfo ); |
5539 | 0 | size -= offset; |
5540 | |
|
5541 | 0 | proto_item_set_len(si, size); |
5542 | 0 | offset += size; |
5543 | |
|
5544 | 0 | break; |
5545 | | |
5546 | 0 | case ARTNET_OP_INPUT: |
5547 | |
|
5548 | 0 | hi = proto_tree_add_item(artnet_tree, |
5549 | 0 | hf_artnet_input, |
5550 | 0 | tvb, |
5551 | 0 | offset, |
5552 | 0 | 0, |
5553 | 0 | ENC_NA); |
5554 | |
|
5555 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5556 | |
|
5557 | 0 | size = dissect_artnet_input( tvb, offset, si, pinfo ); |
5558 | 0 | size -= offset; |
5559 | |
|
5560 | 0 | proto_item_set_len(si, size); |
5561 | 0 | offset += size; |
5562 | |
|
5563 | 0 | break; |
5564 | | |
5565 | 0 | case ARTNET_OP_TOD_REQUEST: |
5566 | |
|
5567 | 0 | hi = proto_tree_add_item(artnet_tree, |
5568 | 0 | hf_artnet_tod_request, |
5569 | 0 | tvb, |
5570 | 0 | offset, |
5571 | 0 | 0, |
5572 | 0 | ENC_NA); |
5573 | |
|
5574 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5575 | |
|
5576 | 0 | size = dissect_artnet_tod_request( tvb, offset, si, pinfo ); |
5577 | 0 | size -= offset; |
5578 | |
|
5579 | 0 | proto_item_set_len(si, size); |
5580 | 0 | offset += size; |
5581 | |
|
5582 | 0 | break; |
5583 | | |
5584 | 0 | case ARTNET_OP_TOD_DATA: |
5585 | |
|
5586 | 0 | hi = proto_tree_add_item(artnet_tree, |
5587 | 0 | hf_artnet_tod_data, |
5588 | 0 | tvb, |
5589 | 0 | offset, |
5590 | 0 | 0, |
5591 | 0 | ENC_NA); |
5592 | |
|
5593 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5594 | |
|
5595 | 0 | size = dissect_artnet_tod_data( tvb, offset, si, pinfo ); |
5596 | 0 | size -= offset; |
5597 | |
|
5598 | 0 | proto_item_set_len(si, size ); |
5599 | 0 | offset += size; |
5600 | |
|
5601 | 0 | break; |
5602 | | |
5603 | 1 | case ARTNET_OP_TOD_CONTROL: |
5604 | | |
5605 | 1 | hi = proto_tree_add_item(artnet_tree, |
5606 | 1 | hf_artnet_tod_control, |
5607 | 1 | tvb, |
5608 | 1 | offset, |
5609 | 1 | 0, |
5610 | 1 | ENC_NA ); |
5611 | 1 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5612 | | |
5613 | 1 | size = dissect_artnet_tod_control( tvb, offset, si, pinfo ); |
5614 | 1 | size -= offset; |
5615 | | |
5616 | 1 | proto_item_set_len(si, size ); |
5617 | 1 | offset += size; |
5618 | | |
5619 | 1 | break; |
5620 | | |
5621 | 0 | case ARTNET_OP_RDM: |
5622 | 0 | hi = proto_tree_add_item(artnet_tree, |
5623 | 0 | hf_artnet_rdm, |
5624 | 0 | tvb, |
5625 | 0 | offset, |
5626 | 0 | 0, |
5627 | 0 | ENC_NA); |
5628 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5629 | 0 | size = dissect_artnet_rdm(tvb, offset, si, pinfo, tree); |
5630 | 0 | size -= offset; |
5631 | |
|
5632 | 0 | proto_item_set_len( si, size ); |
5633 | 0 | offset += size; |
5634 | 0 | break; |
5635 | | |
5636 | 0 | case ARTNET_OP_RDM_SUB: |
5637 | |
|
5638 | 0 | hi = proto_tree_add_item(artnet_tree, |
5639 | 0 | hf_artnet_rdm_sub, |
5640 | 0 | tvb, |
5641 | 0 | offset, |
5642 | 0 | 0, |
5643 | 0 | ENC_NA); |
5644 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5645 | |
|
5646 | 0 | size = dissect_artnet_rdm_sub( tvb, offset, si, pinfo ); |
5647 | 0 | size -= offset; |
5648 | |
|
5649 | 0 | proto_item_set_len( si, size ); |
5650 | 0 | offset += size; |
5651 | |
|
5652 | 0 | break; |
5653 | | |
5654 | 0 | case ARTNET_OP_MEDIA: |
5655 | |
|
5656 | 0 | hi = proto_tree_add_item(artnet_tree, |
5657 | 0 | hf_artnet_media, |
5658 | 0 | tvb, |
5659 | 0 | offset, |
5660 | 0 | 0, |
5661 | 0 | ENC_NA); |
5662 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5663 | |
|
5664 | 0 | size = dissect_artnet_media( tvb, offset, si); |
5665 | 0 | size -= offset; |
5666 | |
|
5667 | 0 | proto_item_set_len( si, size ); |
5668 | 0 | offset += size; |
5669 | |
|
5670 | 0 | break; |
5671 | | |
5672 | 0 | case ARTNET_OP_MEDIA_PATCH: |
5673 | |
|
5674 | 0 | hi = proto_tree_add_item(artnet_tree, |
5675 | 0 | hf_artnet_media_patch, |
5676 | 0 | tvb, |
5677 | 0 | offset, |
5678 | 0 | 0, |
5679 | 0 | ENC_NA); |
5680 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5681 | |
|
5682 | 0 | size = dissect_artnet_media_patch( tvb, offset, si); |
5683 | 0 | size -= offset; |
5684 | |
|
5685 | 0 | proto_item_set_len( si, size ); |
5686 | 0 | offset += size; |
5687 | |
|
5688 | 0 | break; |
5689 | | |
5690 | 0 | case ARTNET_OP_MEDIA_CONTROL: |
5691 | |
|
5692 | 0 | hi = proto_tree_add_item(artnet_tree, |
5693 | 0 | hf_artnet_media_control, |
5694 | 0 | tvb, |
5695 | 0 | offset, |
5696 | 0 | 0, |
5697 | 0 | ENC_NA); |
5698 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5699 | |
|
5700 | 0 | size = dissect_artnet_media_control( tvb, offset, si); |
5701 | 0 | size -= offset; |
5702 | |
|
5703 | 0 | proto_item_set_len( si, size ); |
5704 | 0 | offset += size; |
5705 | |
|
5706 | 0 | break; |
5707 | | |
5708 | 0 | case ARTNET_OP_MEDIA_CONTRL_REPLY: |
5709 | |
|
5710 | 0 | hi = proto_tree_add_item(artnet_tree, |
5711 | 0 | hf_artnet_media_control_reply, |
5712 | 0 | tvb, |
5713 | 0 | offset, |
5714 | 0 | 0, |
5715 | 0 | ENC_NA); |
5716 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5717 | |
|
5718 | 0 | size = dissect_artnet_media_control_reply( tvb, offset, si); |
5719 | 0 | size -= offset; |
5720 | |
|
5721 | 0 | proto_item_set_len( si, size ); |
5722 | 0 | offset += size; |
5723 | |
|
5724 | 0 | break; |
5725 | | |
5726 | 0 | case ARTNET_OP_TIME_CODE: |
5727 | |
|
5728 | 0 | hi = proto_tree_add_item(artnet_tree, |
5729 | 0 | hf_artnet_time_code, |
5730 | 0 | tvb, |
5731 | 0 | offset, |
5732 | 0 | 0, |
5733 | 0 | ENC_NA); |
5734 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5735 | |
|
5736 | 0 | size = dissect_artnet_time_code( tvb, offset, si); |
5737 | 0 | size -= offset; |
5738 | |
|
5739 | 0 | proto_item_set_len( si, size ); |
5740 | 0 | offset += size; |
5741 | |
|
5742 | 0 | break; |
5743 | | |
5744 | 0 | case ARTNET_OP_TIME_SYNC: |
5745 | |
|
5746 | 0 | hi = proto_tree_add_item(artnet_tree, |
5747 | 0 | hf_artnet_time_sync, |
5748 | 0 | tvb, |
5749 | 0 | offset, |
5750 | 0 | 0, |
5751 | 0 | ENC_NA); |
5752 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5753 | |
|
5754 | 0 | size = dissect_artnet_time_sync( tvb, offset, si); |
5755 | 0 | size -= offset; |
5756 | |
|
5757 | 0 | proto_item_set_len( si, size ); |
5758 | 0 | offset += size; |
5759 | |
|
5760 | 0 | break; |
5761 | | |
5762 | 2 | case ARTNET_OP_NZS: |
5763 | | |
5764 | 2 | hi = proto_tree_add_item(artnet_tree, |
5765 | 2 | hf_artnet_nzs, |
5766 | 2 | tvb, |
5767 | 2 | offset, |
5768 | 2 | 0, |
5769 | 2 | ENC_NA); |
5770 | 2 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5771 | | |
5772 | 2 | size = dissect_artnet_nzs( tvb, offset, si, pinfo, tree); |
5773 | 2 | size -= offset; |
5774 | | |
5775 | 2 | proto_item_set_len( si, size ); |
5776 | 2 | offset += size; |
5777 | | |
5778 | 2 | break; |
5779 | | |
5780 | 0 | case ARTNET_OP_TRIGGER: |
5781 | |
|
5782 | 0 | hi = proto_tree_add_item(artnet_tree, |
5783 | 0 | hf_artnet_trigger, |
5784 | 0 | tvb, |
5785 | 0 | offset, |
5786 | 0 | 0, |
5787 | 0 | ENC_NA); |
5788 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5789 | |
|
5790 | 0 | size = dissect_artnet_trigger( tvb, offset, si); |
5791 | 0 | size -= offset; |
5792 | |
|
5793 | 0 | proto_item_set_len( si, size ); |
5794 | 0 | offset += size; |
5795 | |
|
5796 | 0 | break; |
5797 | | |
5798 | 0 | case ARTNET_OP_DIRECTORY: |
5799 | |
|
5800 | 0 | hi = proto_tree_add_item(artnet_tree, |
5801 | 0 | hf_artnet_directory, |
5802 | 0 | tvb, |
5803 | 0 | offset, |
5804 | 0 | 0, |
5805 | 0 | ENC_NA); |
5806 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5807 | |
|
5808 | 0 | size = dissect_artnet_directory( tvb, offset, si); |
5809 | 0 | size -= offset; |
5810 | |
|
5811 | 0 | proto_item_set_len( si, size ); |
5812 | 0 | offset += size; |
5813 | |
|
5814 | 0 | break; |
5815 | | |
5816 | 0 | case ARTNET_OP_DIRECTORY_REPLY: |
5817 | |
|
5818 | 0 | hi = proto_tree_add_item(artnet_tree, |
5819 | 0 | hf_artnet_directory_reply, |
5820 | 0 | tvb, |
5821 | 0 | offset, |
5822 | 0 | 0, |
5823 | 0 | ENC_NA); |
5824 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5825 | |
|
5826 | 0 | size = dissect_artnet_directory_reply( tvb, offset, si); |
5827 | 0 | size -= offset; |
5828 | |
|
5829 | 0 | proto_item_set_len( si, size ); |
5830 | 0 | offset += size; |
5831 | |
|
5832 | 0 | break; |
5833 | | |
5834 | | |
5835 | 0 | case ARTNET_OP_VIDEO_SETUP: |
5836 | |
|
5837 | 0 | hi = proto_tree_add_item(artnet_tree, |
5838 | 0 | hf_artnet_input, |
5839 | 0 | tvb, |
5840 | 0 | offset, |
5841 | 0 | 0, |
5842 | 0 | ENC_NA); |
5843 | |
|
5844 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5845 | |
|
5846 | 0 | size = dissect_artnet_video_setup( tvb, offset, si ); |
5847 | 0 | size -= offset; |
5848 | |
|
5849 | 0 | proto_item_set_len(si, size); |
5850 | 0 | offset += size; |
5851 | |
|
5852 | 0 | break; |
5853 | | |
5854 | 0 | case ARTNET_OP_VIDEO_PALETTE: |
5855 | |
|
5856 | 0 | hi = proto_tree_add_item(artnet_tree, |
5857 | 0 | hf_artnet_input, |
5858 | 0 | tvb, |
5859 | 0 | offset, |
5860 | 0 | 0, |
5861 | 0 | ENC_NA); |
5862 | |
|
5863 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5864 | |
|
5865 | 0 | size = dissect_artnet_video_palette( tvb, offset, si ); |
5866 | 0 | size -= offset; |
5867 | |
|
5868 | 0 | proto_item_set_len(si, size); |
5869 | 0 | offset += size; |
5870 | |
|
5871 | 0 | break; |
5872 | | |
5873 | 0 | case ARTNET_OP_VIDEO_DATA: |
5874 | |
|
5875 | 0 | hi = proto_tree_add_item(artnet_tree, |
5876 | 0 | hf_artnet_input, |
5877 | 0 | tvb, |
5878 | 0 | offset, |
5879 | 0 | 0, |
5880 | 0 | ENC_NA); |
5881 | |
|
5882 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5883 | |
|
5884 | 0 | size = dissect_artnet_video_data( tvb, offset, si ); |
5885 | 0 | size -= offset; |
5886 | |
|
5887 | 0 | proto_item_set_len(si, size); |
5888 | 0 | offset += size; |
5889 | |
|
5890 | 0 | break; |
5891 | | |
5892 | 0 | case ARTNET_OP_MAC_MASTER: |
5893 | |
|
5894 | 0 | hi = proto_tree_add_item(artnet_tree, |
5895 | 0 | hf_artnet_mac_master, |
5896 | 0 | tvb, |
5897 | 0 | offset, |
5898 | 0 | 0, |
5899 | 0 | ENC_NA); |
5900 | |
|
5901 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5902 | |
|
5903 | 0 | size = dissect_artnet_mac_master( tvb, offset, si ); |
5904 | 0 | size -= offset; |
5905 | |
|
5906 | 0 | proto_item_set_len(si, size); |
5907 | 0 | offset += size; |
5908 | |
|
5909 | 0 | break; |
5910 | | |
5911 | 0 | case ARTNET_OP_MAC_SLAVE: |
5912 | |
|
5913 | 0 | hi = proto_tree_add_item(artnet_tree, |
5914 | 0 | hf_artnet_mac_slave, |
5915 | 0 | tvb, |
5916 | 0 | offset, |
5917 | 0 | 0, |
5918 | 0 | ENC_NA); |
5919 | |
|
5920 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5921 | |
|
5922 | 0 | size = dissect_artnet_mac_slave( tvb, offset, si ); |
5923 | 0 | size -= offset; |
5924 | |
|
5925 | 0 | proto_item_set_len(si, size); |
5926 | 0 | offset += size; |
5927 | |
|
5928 | 0 | break; |
5929 | | |
5930 | 0 | case ARTNET_OP_FIRMWARE_MASTER: |
5931 | |
|
5932 | 0 | hi = proto_tree_add_item(artnet_tree, |
5933 | 0 | hf_artnet_firmware_master, |
5934 | 0 | tvb, |
5935 | 0 | offset, |
5936 | 0 | 0, |
5937 | 0 | ENC_NA); |
5938 | |
|
5939 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5940 | |
|
5941 | 0 | size = dissect_artnet_firmware_master( tvb, offset, si ); |
5942 | 0 | size -= offset; |
5943 | |
|
5944 | 0 | proto_item_set_len(si, size); |
5945 | 0 | offset += size; |
5946 | |
|
5947 | 0 | break; |
5948 | | |
5949 | 0 | case ARTNET_OP_FIRMWARE_REPLY: |
5950 | |
|
5951 | 0 | hi = proto_tree_add_item(artnet_tree, |
5952 | 0 | hf_artnet_firmware_reply, |
5953 | 0 | tvb, |
5954 | 0 | offset, |
5955 | 0 | 0, |
5956 | 0 | ENC_NA); |
5957 | |
|
5958 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5959 | |
|
5960 | 0 | size = dissect_artnet_firmware_reply( tvb, offset, si ); |
5961 | 0 | size -= offset; |
5962 | |
|
5963 | 0 | proto_item_set_len(si, size); |
5964 | 0 | offset += size; |
5965 | |
|
5966 | 0 | break; |
5967 | | |
5968 | 0 | case ARTNET_OP_FILE_TN_MASTER: |
5969 | |
|
5970 | 0 | hi = proto_tree_add_item(artnet_tree, |
5971 | 0 | hf_artnet_file_tn_master, |
5972 | 0 | tvb, |
5973 | 0 | offset, |
5974 | 0 | 0, |
5975 | 0 | ENC_NA); |
5976 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5977 | |
|
5978 | 0 | size = dissect_artnet_file_tn_master( tvb, offset, si); |
5979 | 0 | size -= offset; |
5980 | |
|
5981 | 0 | proto_item_set_len(si, size ); |
5982 | 0 | offset += size; |
5983 | |
|
5984 | 0 | break; |
5985 | | |
5986 | 0 | case ARTNET_OP_FILE_FN_MASTER: |
5987 | |
|
5988 | 0 | hi = proto_tree_add_item(artnet_tree, |
5989 | 0 | hf_artnet_file_fn_master, |
5990 | 0 | tvb, |
5991 | 0 | offset, |
5992 | 0 | 0, |
5993 | 0 | ENC_NA); |
5994 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
5995 | |
|
5996 | 0 | size = dissect_artnet_file_fn_master( tvb, offset, si); |
5997 | 0 | size -= offset; |
5998 | |
|
5999 | 0 | proto_item_set_len(si, size ); |
6000 | 0 | offset += size; |
6001 | |
|
6002 | 0 | break; |
6003 | | |
6004 | 0 | case ARTNET_OP_FILE_FN_REPLY: |
6005 | |
|
6006 | 0 | hi = proto_tree_add_item(artnet_tree, |
6007 | 0 | hf_artnet_file_fn_reply, |
6008 | 0 | tvb, |
6009 | 0 | offset, |
6010 | 0 | 0, |
6011 | 0 | ENC_NA); |
6012 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
6013 | |
|
6014 | 0 | size = dissect_artnet_file_fn_reply( tvb, offset, si); |
6015 | 0 | size -= offset; |
6016 | |
|
6017 | 0 | proto_item_set_len(si, size ); |
6018 | 0 | offset += size; |
6019 | |
|
6020 | 0 | break; |
6021 | | |
6022 | 0 | case ARTNET_OP_IP_PROG: |
6023 | |
|
6024 | 0 | hi = proto_tree_add_item(artnet_tree, |
6025 | 0 | hf_artnet_ip_prog, |
6026 | 0 | tvb, |
6027 | 0 | offset, |
6028 | 0 | 0, |
6029 | 0 | ENC_NA); |
6030 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
6031 | |
|
6032 | 0 | size = dissect_artnet_ip_prog( tvb,offset, si); |
6033 | 0 | size -= offset; |
6034 | |
|
6035 | 0 | proto_item_set_len(si, size ); |
6036 | 0 | offset += size; |
6037 | |
|
6038 | 0 | break; |
6039 | | |
6040 | 0 | case ARTNET_OP_IP_PROG_REPLY: |
6041 | |
|
6042 | 0 | hi = proto_tree_add_item(artnet_tree, |
6043 | 0 | hf_artnet_ip_prog_reply, |
6044 | 0 | tvb, |
6045 | 0 | offset, |
6046 | 0 | 0, |
6047 | 0 | ENC_NA); |
6048 | 0 | si = proto_item_add_subtree(hi, ett_artnet_data); |
6049 | |
|
6050 | 0 | size = dissect_artnet_ip_prog_reply( tvb, offset, si ); |
6051 | 0 | size -= offset; |
6052 | |
|
6053 | 0 | proto_item_set_len(si, size ); |
6054 | 0 | offset += size; |
6055 | |
|
6056 | 0 | break; |
6057 | | |
6058 | | |
6059 | 1 | default: |
6060 | 1 | if (tvb_reported_length_remaining(tvb, offset) > 0) { |
6061 | 1 | proto_tree_add_item(artnet_tree, hf_artnet_data, tvb, offset, -1, ENC_NA); |
6062 | 1 | } |
6063 | 1 | return tvb_captured_length(tvb); |
6064 | 9 | } |
6065 | | |
6066 | 1 | if (tvb_reported_length_remaining(tvb, offset) > 0) { |
6067 | 0 | proto_tree_add_item(artnet_tree, hf_artnet_excess_bytes, tvb, |
6068 | 0 | offset, -1, ENC_NA); |
6069 | 0 | } |
6070 | 1 | return tvb_captured_length(tvb); |
6071 | 9 | } |
6072 | | |
6073 | | /* Heuristic dissector */ |
6074 | | static bool |
6075 | | dissect_artnet_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data) |
6076 | 1.18k | { |
6077 | 1.18k | uint64_t qword; |
6078 | | |
6079 | | /* check if we at least have the 8 byte header */ |
6080 | 1.18k | if (tvb_captured_length(tvb) < 8) |
6081 | 284 | return false; |
6082 | | |
6083 | | /* Check the 8 byte header "Art-Net\0" = 0x4172742d4e657400*/ |
6084 | 896 | qword = tvb_get_ntoh64(tvb,0); |
6085 | 896 | if(qword != UINT64_C (0x4172742d4e657400)) |
6086 | 887 | return false; |
6087 | | |
6088 | | /* if the header matches, dissect it */ |
6089 | 9 | dissect_artnet(tvb, pinfo, tree, data); |
6090 | | |
6091 | 9 | return true; |
6092 | 896 | } |
6093 | | |
6094 | | void |
6095 | 14 | proto_register_artnet(void) { |
6096 | | |
6097 | 14 | expert_module_t* expert_artnet; |
6098 | | |
6099 | 14 | static hf_register_info hf[] = { |
6100 | | |
6101 | | /* General */ |
6102 | | |
6103 | 14 | { &hf_artnet_excess_bytes, |
6104 | 14 | { "Excess Bytes", |
6105 | 14 | "artnet.excess_bytes", |
6106 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
6107 | 14 | NULL, HFILL }}, |
6108 | | |
6109 | 14 | { &hf_artnet_data, |
6110 | 14 | { "Data", |
6111 | 14 | "artnet.data", |
6112 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
6113 | 14 | NULL, HFILL }}, |
6114 | | |
6115 | 14 | { &hf_artnet_filler, |
6116 | 14 | { "filler", |
6117 | 14 | "artnet.filler", |
6118 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
6119 | 14 | NULL, HFILL }}, |
6120 | | |
6121 | 14 | { &hf_artnet_spare, |
6122 | 14 | { "spare", |
6123 | 14 | "artnet.spare", |
6124 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
6125 | 14 | NULL, HFILL }}, |
6126 | | |
6127 | | /* Header */ |
6128 | | |
6129 | 14 | { &hf_artnet_header, |
6130 | 14 | { "Descriptor Header", |
6131 | 14 | "artnet.header", |
6132 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
6133 | 14 | "Art-Net Descriptor Header", HFILL }}, |
6134 | | |
6135 | 14 | { &hf_artnet_header_id, |
6136 | 14 | { "ID", |
6137 | 14 | "artnet.header.id", |
6138 | 14 | FT_STRINGZ, BASE_NONE, NULL, 0x0, |
6139 | 14 | "ArtNET ID", HFILL }}, |
6140 | | |
6141 | 14 | { &hf_artnet_header_opcode, |
6142 | 14 | { "OpCode", |
6143 | 14 | "artnet.header.opcode", |
6144 | 14 | FT_UINT16, BASE_HEX | BASE_EXT_STRING, &artnet_opcode_vals_ext, 0x0, |
6145 | 14 | "Art-Net message type", HFILL }}, |
6146 | | |
6147 | 14 | { &hf_artnet_header_protver, |
6148 | 14 | { "ProtVer", |
6149 | 14 | "artnet.header.protver", |
6150 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
6151 | 14 | "Protocol revision number", HFILL }}, |
6152 | | |
6153 | | /* ArtPoll */ |
6154 | | |
6155 | 14 | { &hf_artnet_poll, |
6156 | 14 | { "ArtPoll packet", |
6157 | 14 | "artnet.poll", |
6158 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
6159 | 14 | "Art-Net ArtPoll packet", HFILL }}, |
6160 | | |
6161 | 14 | { &hf_artnet_poll_talktome, |
6162 | 14 | { "TalkToMe", |
6163 | 14 | "artnet.poll.talktome", |
6164 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6165 | 14 | NULL, HFILL }}, |
6166 | | |
6167 | 14 | { &hf_artnet_poll_talktome_reply_change, |
6168 | 14 | { "Send me ArtPollReply on change", |
6169 | 14 | "artnet.poll.talktome_reply_change", |
6170 | 14 | FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x02, |
6171 | 14 | NULL, HFILL }}, |
6172 | | |
6173 | 14 | { &hf_artnet_poll_talktome_diag, |
6174 | 14 | { "Send diagnostics messages", |
6175 | 14 | "artnet.poll.talktome_diag", |
6176 | 14 | FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x04, |
6177 | 14 | NULL, HFILL }}, |
6178 | | |
6179 | 14 | { &hf_artnet_poll_talktome_diag_unicast, |
6180 | 14 | { "Send diagnostics unicast", |
6181 | 14 | "artnet.poll.talktome_diag_unicast", |
6182 | 14 | FT_BOOLEAN, 8, TFS(&tfs_artnet_talktome_diag_unicast), 0x08, |
6183 | 14 | NULL, HFILL }}, |
6184 | | |
6185 | 14 | { &hf_artnet_poll_talktome_vlc, |
6186 | 14 | { "VLC transmission", |
6187 | 14 | "artnet.poll.talktome_vlc", |
6188 | 14 | FT_BOOLEAN, 8, TFS(&tfs_disabled_enabled), 0x10, |
6189 | 14 | NULL, HFILL }}, |
6190 | | |
6191 | 14 | { &hf_artnet_poll_talktome_targeted, |
6192 | 14 | { "Targeted mode", |
6193 | 14 | "artnet.poll.talktome_targeted", |
6194 | 14 | FT_BOOLEAN, 8, TFS(&tfs_enabled_disabled), 0x20, |
6195 | 14 | NULL, HFILL }}, |
6196 | | |
6197 | 14 | { &hf_artnet_poll_diag_priority, |
6198 | 14 | { "Priority", |
6199 | 14 | "artnet.poll.diag_priority", |
6200 | 14 | FT_UINT8, BASE_DEC, VALS(artnet_talktome_diag_priority_vals), 0x0, |
6201 | 14 | "Minimum diagnostics message priority", HFILL }}, |
6202 | | |
6203 | 14 | { &hf_artnet_poll_target_port_top, |
6204 | 14 | { "Target Port Top", |
6205 | 14 | "artnet.poll.target_port_top", |
6206 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
6207 | 14 | "Top of the port range", HFILL }}, |
6208 | | |
6209 | 14 | { &hf_artnet_poll_target_port_bottom, |
6210 | 14 | { "Target Port Bottom", |
6211 | 14 | "artnet.poll.target_port_bottom", |
6212 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
6213 | 14 | "Bottom of the port range", HFILL }}, |
6214 | | |
6215 | 14 | { &hf_artnet_poll_esta_man, |
6216 | 14 | { "ESTA Code", |
6217 | 14 | "artnet.poll.esta_man", |
6218 | 14 | FT_UINT16, BASE_HEX|BASE_EXT_STRING, &dmx_esta_manfid_vals_ext, 0x0, |
6219 | 14 | NULL, HFILL }}, |
6220 | | |
6221 | 14 | { &hf_artnet_poll_oem, |
6222 | 14 | { "OEM", |
6223 | 14 | "artnet.poll.oem", |
6224 | 14 | FT_UINT16, BASE_HEX|BASE_EXT_STRING, &artnet_oem_code_vals_ext, 0x0, |
6225 | 14 | NULL, HFILL }}, |
6226 | | |
6227 | | |
6228 | | /* ArtPollReply */ |
6229 | | |
6230 | 14 | { &hf_artnet_poll_reply, |
6231 | 14 | { "ArtPollReply packet", |
6232 | 14 | "artnet.poll_reply", |
6233 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
6234 | 14 | "Art-Net ArtPollReply packet", HFILL }}, |
6235 | | |
6236 | 14 | { &hf_artnet_poll_reply_ip_address, |
6237 | 14 | { "IP Address", |
6238 | 14 | "artnet.poll_reply.ip_address", |
6239 | 14 | FT_IPv4, BASE_NONE, NULL, 0x0, |
6240 | 14 | NULL, HFILL }}, |
6241 | | |
6242 | 14 | { &hf_artnet_poll_reply_port_nr, |
6243 | 14 | { "Port number", |
6244 | 14 | "artnet.poll_reply.port_nr", |
6245 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
6246 | 14 | NULL, HFILL }}, |
6247 | | |
6248 | 14 | { &hf_artnet_poll_reply_versinfo, |
6249 | 14 | { "Version Info", |
6250 | 14 | "artnet.poll_reply.versinfo", |
6251 | 14 | FT_UINT16, BASE_HEX, NULL, 0x0, |
6252 | 14 | NULL, HFILL }}, |
6253 | | |
6254 | 14 | { &hf_artnet_poll_reply_netswitch, |
6255 | 14 | { "NetSwitch", |
6256 | 14 | "artnet.poll_reply.netswitch", |
6257 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6258 | 14 | "Bits 14-8 of port address", HFILL }}, |
6259 | | |
6260 | 14 | { &hf_artnet_poll_reply_subswitch, |
6261 | 14 | { "SubSwitch", |
6262 | 14 | "artnet.poll_reply.subswitch", |
6263 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6264 | 14 | "Bits 7-4 of port address", HFILL }}, |
6265 | | |
6266 | 14 | { &hf_artnet_poll_reply_oem, |
6267 | 14 | { "OEM", |
6268 | 14 | "artnet.poll_reply.oem", |
6269 | 14 | FT_UINT16, BASE_HEX|BASE_EXT_STRING, &artnet_oem_code_vals_ext, 0x0, |
6270 | 14 | NULL, HFILL }}, |
6271 | | |
6272 | 14 | { &hf_artnet_poll_reply_ubea_version, |
6273 | 14 | { "UBEA Version", |
6274 | 14 | "artnet.poll_reply.ubea_version", |
6275 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
6276 | 14 | "UBEA version number", HFILL }}, |
6277 | | |
6278 | 14 | { &hf_artnet_poll_reply_status, |
6279 | 14 | { "Status", |
6280 | 14 | "artnet.poll_reply.status", |
6281 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6282 | 14 | NULL, HFILL }}, |
6283 | | |
6284 | 14 | { &hf_artnet_poll_reply_status_ubea_present, |
6285 | 14 | { "UBEA Present", |
6286 | 14 | "artnet.poll_reply.ubea_present", |
6287 | 14 | FT_BOOLEAN, 8, TFS(&tfs_present_absent), 0x01, |
6288 | 14 | NULL, HFILL }}, |
6289 | | |
6290 | 14 | { &hf_artnet_poll_reply_status_rdm_supported, |
6291 | 14 | { "RDM Supported", |
6292 | 14 | "artnet.poll_reply.rdm_supported", |
6293 | 14 | FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x02, |
6294 | 14 | NULL, HFILL }}, |
6295 | | |
6296 | 14 | { &hf_artnet_poll_reply_status_rom_booted, |
6297 | 14 | { "ROM Booted", |
6298 | 14 | "artnet.poll_reply.rom_booted", |
6299 | 14 | FT_BOOLEAN, 8, TFS(&tfs_artnet_rom_booted), 0x04, |
6300 | 14 | NULL, HFILL }}, |
6301 | | |
6302 | 14 | { &hf_artnet_poll_reply_status_port_prog, |
6303 | 14 | { "Port Address Programming Authority", |
6304 | 14 | "artnet.poll_reply.port_prog", |
6305 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_port_prog_auth_vals), 0x30, |
6306 | 14 | NULL, HFILL }}, |
6307 | | |
6308 | 14 | { &hf_artnet_poll_reply_status_indicator, |
6309 | 14 | { "Indicator State", |
6310 | 14 | "artnet.poll_reply.indicator", |
6311 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_indicator_state_vals), 0xC0, |
6312 | 14 | NULL, HFILL }}, |
6313 | | |
6314 | 14 | { &hf_artnet_poll_reply_esta_man, |
6315 | 14 | { "ESTA Code", |
6316 | 14 | "artnet.poll_reply.esta_man", |
6317 | 14 | FT_UINT16, BASE_HEX|BASE_EXT_STRING, &dmx_esta_manfid_vals_ext, 0x0, |
6318 | 14 | NULL, HFILL }}, |
6319 | | |
6320 | 14 | { &hf_artnet_poll_reply_short_name, |
6321 | 14 | { "Short Name", |
6322 | 14 | "artnet.poll_reply.short_name", |
6323 | 14 | FT_STRINGZ, BASE_NONE, NULL, 0x0, |
6324 | 14 | NULL, HFILL }}, |
6325 | | |
6326 | 14 | { &hf_artnet_poll_reply_long_name, |
6327 | 14 | { "Long Name", |
6328 | 14 | "artnet.poll_reply.long_name", |
6329 | 14 | FT_STRINGZ, BASE_NONE, NULL, 0x0, |
6330 | 14 | NULL, HFILL }}, |
6331 | | |
6332 | 14 | { &hf_artnet_poll_reply_node_report, |
6333 | 14 | { "Node Report", |
6334 | 14 | "artnet.poll_reply.node_report", |
6335 | 14 | FT_STRINGZ, BASE_NONE, NULL, 0x0, |
6336 | 14 | NULL, HFILL }}, |
6337 | | |
6338 | 14 | { &hf_artnet_poll_reply_port_info, |
6339 | 14 | { "Port Info", |
6340 | 14 | "artnet.poll_reply.port_info", |
6341 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
6342 | 14 | NULL, HFILL }}, |
6343 | | |
6344 | 14 | { &hf_artnet_poll_reply_num_ports, |
6345 | 14 | { "Number of Ports", |
6346 | 14 | "artnet.poll_reply.num_ports", |
6347 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
6348 | 14 | NULL, HFILL }}, |
6349 | | |
6350 | 14 | { &hf_artnet_poll_reply_port_types, |
6351 | 14 | { "Port Types", |
6352 | 14 | "artnet.poll_reply.port_types", |
6353 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
6354 | 14 | NULL, HFILL }}, |
6355 | | |
6356 | 14 | { &hf_artnet_poll_reply_port_types_1, |
6357 | 14 | { "Type of Port 1", |
6358 | 14 | "artnet.poll_reply.port_types_1", |
6359 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_port_type_vals), 0x0, |
6360 | 14 | NULL, HFILL }}, |
6361 | | |
6362 | 14 | { &hf_artnet_poll_reply_port_types_2, |
6363 | 14 | { "Type of Port 2", |
6364 | 14 | "artnet.poll_reply.port_types_2", |
6365 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_port_type_vals), 0x0, |
6366 | 14 | NULL, HFILL }}, |
6367 | | |
6368 | 14 | { &hf_artnet_poll_reply_port_types_3, |
6369 | 14 | { "Type of Port 3", |
6370 | 14 | "artnet.poll_reply.port_types_3", |
6371 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_port_type_vals), 0x0, |
6372 | 14 | NULL, HFILL }}, |
6373 | | |
6374 | 14 | { &hf_artnet_poll_reply_port_types_4, |
6375 | 14 | { "Type of Port 4", |
6376 | 14 | "artnet.poll_reply.port_types_4", |
6377 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_port_type_vals), 0x0, |
6378 | 14 | NULL, HFILL }}, |
6379 | | |
6380 | 14 | { &hf_artnet_poll_reply_good_input, |
6381 | 14 | { "Input Status", |
6382 | 14 | "artnet.poll_reply.good_input", |
6383 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
6384 | 14 | NULL, HFILL }}, |
6385 | | |
6386 | 14 | { &hf_artnet_poll_reply_good_input_1, |
6387 | 14 | { "Input status of Port 1", |
6388 | 14 | "artnet.poll_reply.good_input_1", |
6389 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6390 | 14 | NULL, HFILL }}, |
6391 | | |
6392 | 14 | { &hf_artnet_poll_reply_good_input_converts_to, |
6393 | 14 | { "Input converts to", |
6394 | 14 | "artnet.poll_reply.good_input_converts_to", |
6395 | 14 | FT_BOOLEAN, 8, TFS(&tfs_artnet_poll_reply_tx_and_conversion_proto), 0x01, |
6396 | 14 | NULL, HFILL }}, |
6397 | | |
6398 | 14 | { &hf_artnet_poll_reply_good_input_recv_error, |
6399 | 14 | { "Receive errors detected", |
6400 | 14 | "artnet.poll_reply.good_input_recv_error", |
6401 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x04, |
6402 | 14 | NULL, HFILL }}, |
6403 | | |
6404 | 14 | { &hf_artnet_poll_reply_good_input_disabled, |
6405 | 14 | { "Input is disabled", |
6406 | 14 | "artnet.poll_reply.good_input_disabled", |
6407 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x08, |
6408 | 14 | NULL, HFILL }}, |
6409 | | |
6410 | 14 | { &hf_artnet_poll_reply_good_input_dmx_text, |
6411 | 14 | { "DMX text packets supported", |
6412 | 14 | "artnet.poll_reply.good_input_dmx_text", |
6413 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x10, |
6414 | 14 | NULL, HFILL }}, |
6415 | | |
6416 | 14 | { &hf_artnet_poll_reply_good_input_dmx_sip, |
6417 | 14 | { "DMX SIPs supported", |
6418 | 14 | "artnet.poll_reply.good_input_dmx_sip", |
6419 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x20, |
6420 | 14 | NULL, HFILL }}, |
6421 | | |
6422 | 14 | { &hf_artnet_poll_reply_good_input_dmx_test, |
6423 | 14 | { "DMX test packets supported", |
6424 | 14 | "artnet.poll_reply.good_input_dmx_test", |
6425 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x40, |
6426 | 14 | NULL, HFILL }}, |
6427 | | |
6428 | 14 | { &hf_artnet_poll_reply_good_input_data, |
6429 | 14 | { "Data received", |
6430 | 14 | "artnet.poll_reply.good_input_data", |
6431 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x80, |
6432 | 14 | NULL, HFILL }}, |
6433 | | |
6434 | 14 | { &hf_artnet_poll_reply_good_input_2, |
6435 | 14 | { "Input status of Port 2", |
6436 | 14 | "artnet.poll_reply.good_input_2", |
6437 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6438 | 14 | NULL, HFILL }}, |
6439 | | |
6440 | 14 | { &hf_artnet_poll_reply_good_input_3, |
6441 | 14 | { "Input status of Port 3", |
6442 | 14 | "artnet.poll_reply.good_input_3", |
6443 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6444 | 14 | NULL, HFILL }}, |
6445 | | |
6446 | 14 | { &hf_artnet_poll_reply_good_input_4, |
6447 | 14 | { "Input status of Port 4", |
6448 | 14 | "artnet.poll_reply.good_input_4", |
6449 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6450 | 14 | NULL, HFILL }}, |
6451 | | |
6452 | 14 | { &hf_artnet_poll_reply_good_output, |
6453 | 14 | { "Output Status", |
6454 | 14 | "artnet.poll_reply.good_output", |
6455 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
6456 | 14 | "Port output status", HFILL }}, |
6457 | | |
6458 | 14 | { &hf_artnet_poll_reply_good_output_b, |
6459 | 14 | { "Output Status (B)", |
6460 | 14 | "artnet.poll_reply.good_output_b", |
6461 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
6462 | 14 | "Port output status (B)", HFILL }}, |
6463 | | |
6464 | 14 | { &hf_artnet_poll_reply_good_output_1, |
6465 | 14 | { "Output status of Port 1", |
6466 | 14 | "artnet.poll_reply.good_output_1", |
6467 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6468 | 14 | NULL, HFILL }}, |
6469 | | |
6470 | 14 | { &hf_artnet_poll_reply_good_output_2, |
6471 | 14 | { "Output status of Port 2", |
6472 | 14 | "artnet.poll_reply.good_output_2", |
6473 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6474 | 14 | NULL, HFILL }}, |
6475 | | |
6476 | 14 | { &hf_artnet_poll_reply_good_output_3, |
6477 | 14 | { "Output status of Port 3", |
6478 | 14 | "artnet.poll_reply.good_output_3", |
6479 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6480 | 14 | NULL, HFILL }}, |
6481 | | |
6482 | 14 | { &hf_artnet_poll_reply_good_output_4, |
6483 | 14 | { "Output status of Port 4", |
6484 | 14 | "artnet.poll_reply.good_output_4", |
6485 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6486 | 14 | NULL, HFILL }}, |
6487 | | |
6488 | 14 | { &hf_artnet_poll_reply_good_output_b_1, |
6489 | 14 | { "Output status (B) of Port 1", |
6490 | 14 | "artnet.poll_reply.good_output_b_1", |
6491 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6492 | 14 | NULL, HFILL }}, |
6493 | | |
6494 | 14 | { &hf_artnet_poll_reply_good_output_b_2, |
6495 | 14 | { "Output status (B) of Port 2", |
6496 | 14 | "artnet.poll_reply.good_output_b_2", |
6497 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6498 | 14 | NULL, HFILL }}, |
6499 | | |
6500 | 14 | { &hf_artnet_poll_reply_good_output_b_3, |
6501 | 14 | { "Output status (B) of Port 3", |
6502 | 14 | "artnet.poll_reply.good_output_b_3", |
6503 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6504 | 14 | NULL, HFILL }}, |
6505 | | |
6506 | 14 | { &hf_artnet_poll_reply_good_output_b_4, |
6507 | 14 | { "Output status (B) of Port 4", |
6508 | 14 | "artnet.poll_reply.good_output_b_4", |
6509 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6510 | 14 | NULL, HFILL }}, |
6511 | | |
6512 | 14 | { &hf_artnet_poll_reply_good_output_tx_proto, |
6513 | 14 | { "Transmit protocol", |
6514 | 14 | "artnet.poll_reply.good_output_tx_proto", |
6515 | 14 | FT_BOOLEAN, 8, TFS(&tfs_artnet_poll_reply_tx_and_conversion_proto), 0x01, |
6516 | 14 | NULL, HFILL }}, |
6517 | | |
6518 | 14 | { &hf_artnet_poll_reply_good_output_merge_ltp, |
6519 | 14 | { "Merge mode is LTP", |
6520 | 14 | "artnet.poll_reply.good_output_merge_ltp", |
6521 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x02, |
6522 | 14 | NULL, HFILL }}, |
6523 | | |
6524 | 14 | { &hf_artnet_poll_reply_good_output_short, |
6525 | 14 | { "DMX output short circuit", |
6526 | 14 | "artnet.poll_reply.good_output_short", |
6527 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x04, |
6528 | 14 | NULL, HFILL }}, |
6529 | | |
6530 | 14 | { &hf_artnet_poll_reply_good_output_merge_artnet, |
6531 | 14 | { "Merging Art-Net data", |
6532 | 14 | "artnet.poll_reply.good_output_merge_artnet", |
6533 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x08, |
6534 | 14 | NULL, HFILL }}, |
6535 | | |
6536 | 14 | { &hf_artnet_poll_reply_good_output_dmx_text, |
6537 | 14 | { "DMX text packets supported", |
6538 | 14 | "artnet.poll_reply.good_output_dmx_text", |
6539 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x10, |
6540 | 14 | NULL, HFILL }}, |
6541 | | |
6542 | 14 | { &hf_artnet_poll_reply_good_output_dmx_sip, |
6543 | 14 | { "DMX SIPs supported", |
6544 | 14 | "artnet.poll_reply.good_output_dmx_sip", |
6545 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x20, |
6546 | 14 | NULL, HFILL }}, |
6547 | | |
6548 | 14 | { &hf_artnet_poll_reply_good_output_dmx_test, |
6549 | 14 | { "DMX test packets supported", |
6550 | 14 | "artnet.poll_reply.good_output_dmx_test", |
6551 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x40, |
6552 | 14 | NULL, HFILL }}, |
6553 | | |
6554 | 14 | { &hf_artnet_poll_reply_good_output_data, |
6555 | 14 | { "Data transmitted", |
6556 | 14 | "artnet.poll_reply.good_output_data", |
6557 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x80, |
6558 | 14 | NULL, HFILL }}, |
6559 | | |
6560 | 14 | { &hf_artnet_poll_reply_good_output_bg_discovery, |
6561 | 14 | { "Background Discovery", |
6562 | 14 | "artnet.poll_reply.good_output_bg_discovery", |
6563 | 14 | FT_BOOLEAN, 8, TFS(&tfs_disabled_enabled), 0x10, |
6564 | 14 | NULL, HFILL }}, |
6565 | | |
6566 | 14 | { &hf_artnet_poll_reply_good_output_discovery, |
6567 | 14 | { "Discovery", |
6568 | 14 | "artnet.poll_reply.good_output_discovery", |
6569 | 14 | FT_BOOLEAN, 8, TFS(&tfs_artnet_poll_reply_output_discovery), 0x20, |
6570 | 14 | NULL, HFILL }}, |
6571 | | |
6572 | 14 | { &hf_artnet_poll_reply_good_output_style, |
6573 | 14 | { "Output Style", |
6574 | 14 | "artnet.poll_reply.good_output_style", |
6575 | 14 | FT_BOOLEAN, 8, TFS(&tfs_artnet_poll_reply_output_style), 0x40, |
6576 | 14 | NULL, HFILL }}, |
6577 | | |
6578 | 14 | { &hf_artnet_poll_reply_good_output_rdm, |
6579 | 14 | { "RDM", |
6580 | 14 | "artnet.poll_reply.good_output_rdm", |
6581 | 14 | FT_BOOLEAN, 8, TFS(&tfs_disabled_enabled), 0x80, |
6582 | 14 | NULL, HFILL }}, |
6583 | | |
6584 | 14 | { &hf_artnet_poll_reply_swin, |
6585 | 14 | { "Input Subswitch", |
6586 | 14 | "artnet.poll_reply.swin", |
6587 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
6588 | 14 | NULL, HFILL }}, |
6589 | | |
6590 | 14 | { &hf_artnet_poll_reply_swin_1, |
6591 | 14 | { "Input Subswitch of Port 1", |
6592 | 14 | "artnet.poll_reply.swin_1", |
6593 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6594 | 14 | NULL, HFILL }}, |
6595 | | |
6596 | 14 | { &hf_artnet_poll_reply_swin_2, |
6597 | 14 | { "Input Subswitch of Port 2", |
6598 | 14 | "artnet.poll_reply.swin_2", |
6599 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6600 | 14 | NULL, HFILL }}, |
6601 | | |
6602 | 14 | { &hf_artnet_poll_reply_swin_3, |
6603 | 14 | { "Input Subswitch of Port 3", |
6604 | 14 | "artnet.poll_reply.swin_3", |
6605 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6606 | 14 | NULL, HFILL }}, |
6607 | | |
6608 | 14 | { &hf_artnet_poll_reply_swin_4, |
6609 | 14 | { "Input Subswitch of Port 4", |
6610 | 14 | "artnet.poll_reply.swin_4", |
6611 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6612 | 14 | NULL, HFILL }}, |
6613 | | |
6614 | 14 | { &hf_artnet_poll_reply_swin_1_universe, |
6615 | 14 | { "Universe of input port 1", |
6616 | 14 | "artnet.poll_reply.swin_1_universe", |
6617 | 14 | FT_UINT16, BASE_DEC,NULL, 0x0, |
6618 | 14 | NULL,HFILL }}, |
6619 | 14 | { &hf_artnet_poll_reply_swin_2_universe, |
6620 | 14 | { "Universe of input port 2", |
6621 | 14 | "artnet.poll_reply.swin_2_universe", |
6622 | 14 | FT_UINT16, BASE_DEC,NULL, 0x0, |
6623 | 14 | NULL,HFILL }}, |
6624 | 14 | { &hf_artnet_poll_reply_swin_3_universe, |
6625 | 14 | { "Universe of input port 3", |
6626 | 14 | "artnet.poll_reply.swin_3_universe", |
6627 | 14 | FT_UINT16, BASE_DEC,NULL, 0x0, |
6628 | 14 | NULL,HFILL }}, |
6629 | 14 | { &hf_artnet_poll_reply_swin_4_universe, |
6630 | 14 | { "Universe of input port 4", |
6631 | 14 | "artnet.poll_reply.swin_4_universe", |
6632 | 14 | FT_UINT16, BASE_DEC,NULL, 0x0, |
6633 | 14 | NULL,HFILL }}, |
6634 | | |
6635 | 14 | { &hf_artnet_poll_reply_swout, |
6636 | 14 | { "Output Subswitch", |
6637 | 14 | "artnet.poll_reply.swout", |
6638 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
6639 | 14 | NULL, HFILL }}, |
6640 | | |
6641 | 14 | { &hf_artnet_poll_reply_swout_1, |
6642 | 14 | { "Output Subswitch of Port 1", |
6643 | 14 | "artnet.poll_reply.swout_1", |
6644 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6645 | 14 | NULL, HFILL }}, |
6646 | | |
6647 | 14 | { &hf_artnet_poll_reply_swout_2, |
6648 | 14 | { "Output Subswitch of Port 2", |
6649 | 14 | "artnet.poll_reply.swout_2", |
6650 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6651 | 14 | NULL, HFILL }}, |
6652 | | |
6653 | 14 | { &hf_artnet_poll_reply_swout_3, |
6654 | 14 | { "Output Subswitch of Port 3", |
6655 | 14 | "artnet.poll_reply.swout_3", |
6656 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6657 | 14 | NULL, HFILL }}, |
6658 | | |
6659 | 14 | { &hf_artnet_poll_reply_swout_4, |
6660 | 14 | { "Output Subswitch of Port 4", |
6661 | 14 | "artnet.poll_reply.swout_4", |
6662 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6663 | 14 | NULL, HFILL }}, |
6664 | | |
6665 | 14 | { &hf_artnet_poll_reply_swout_1_universe, |
6666 | 14 | { "Universe of output port 1", |
6667 | 14 | "artnet.poll_reply.swout_1_universe", |
6668 | 14 | FT_UINT16, BASE_DEC,NULL, 0x0, |
6669 | 14 | NULL,HFILL }}, |
6670 | 14 | { &hf_artnet_poll_reply_swout_2_universe, |
6671 | 14 | { "Universe of output port 2", |
6672 | 14 | "artnet.poll_reply.swout_2_universe", |
6673 | 14 | FT_UINT16, BASE_DEC,NULL, 0x0, |
6674 | 14 | NULL,HFILL }}, |
6675 | 14 | { &hf_artnet_poll_reply_swout_3_universe, |
6676 | 14 | { "Universe of output port 3", |
6677 | 14 | "artnet.poll_reply.swout_3_universe", |
6678 | 14 | FT_UINT16, BASE_DEC,NULL, 0x0, |
6679 | 14 | NULL,HFILL }}, |
6680 | 14 | { &hf_artnet_poll_reply_swout_4_universe, |
6681 | 14 | { "Universe of output port 4", |
6682 | 14 | "artnet.poll_reply.swout_4_universe", |
6683 | 14 | FT_UINT16, BASE_DEC,NULL, 0x0, |
6684 | 14 | NULL,HFILL }}, |
6685 | | |
6686 | 14 | { &hf_artnet_poll_reply_sacnprio, |
6687 | 14 | { "sACN Priority", |
6688 | 14 | "artnet.poll_reply.sacnprio", |
6689 | 14 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
6690 | 14 | NULL, HFILL }}, |
6691 | | |
6692 | 14 | { &hf_artnet_poll_reply_swmacro, |
6693 | 14 | { "SwMacro", |
6694 | 14 | "artnet.poll_reply.swmacro", |
6695 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6696 | 14 | "Macro key inputs", HFILL }}, |
6697 | | |
6698 | 14 | { &hf_artnet_poll_reply_swmacro_1, |
6699 | 14 | { "Macro 1", |
6700 | 14 | "artnet.poll_reply.swmacro_1", |
6701 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x01, |
6702 | 14 | NULL, HFILL }}, |
6703 | | |
6704 | 14 | { &hf_artnet_poll_reply_swmacro_2, |
6705 | 14 | { "Macro 2", |
6706 | 14 | "artnet.poll_reply.swmacro_2", |
6707 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x02, |
6708 | 14 | NULL, HFILL }}, |
6709 | | |
6710 | 14 | { &hf_artnet_poll_reply_swmacro_3, |
6711 | 14 | { "Macro 3", |
6712 | 14 | "artnet.poll_reply.swmacro_3", |
6713 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x04, |
6714 | 14 | NULL, HFILL }}, |
6715 | | |
6716 | 14 | { &hf_artnet_poll_reply_swmacro_4, |
6717 | 14 | { "Macro 4", |
6718 | 14 | "artnet.poll_reply.swmacro_4", |
6719 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x08, |
6720 | 14 | NULL, HFILL }}, |
6721 | | |
6722 | 14 | { &hf_artnet_poll_reply_swmacro_5, |
6723 | 14 | { "Macro 5", |
6724 | 14 | "artnet.poll_reply.swmacro_5", |
6725 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x10, |
6726 | 14 | NULL, HFILL }}, |
6727 | | |
6728 | 14 | { &hf_artnet_poll_reply_swmacro_6, |
6729 | 14 | { "Macro 6", |
6730 | 14 | "artnet.poll_reply.swmacro_6", |
6731 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x20, |
6732 | 14 | NULL, HFILL }}, |
6733 | | |
6734 | 14 | { &hf_artnet_poll_reply_swmacro_7, |
6735 | 14 | { "Macro 7", |
6736 | 14 | "artnet.poll_reply.swmacro_7", |
6737 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x40, |
6738 | 14 | NULL, HFILL }}, |
6739 | | |
6740 | 14 | { &hf_artnet_poll_reply_swmacro_8, |
6741 | 14 | { "Macro 8", |
6742 | 14 | "artnet.poll_reply.swmacro_8", |
6743 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x80, |
6744 | 14 | NULL, HFILL }}, |
6745 | | |
6746 | 14 | { &hf_artnet_poll_reply_swremote, |
6747 | 14 | { "SwRemote", |
6748 | 14 | "artnet.poll_reply.swremote", |
6749 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6750 | 14 | "Remote trigger", HFILL }}, |
6751 | | |
6752 | 14 | { &hf_artnet_poll_reply_swremote_1, |
6753 | 14 | { "Remote 1", |
6754 | 14 | "artnet.poll_reply.swremote_1", |
6755 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x01, |
6756 | 14 | NULL, HFILL }}, |
6757 | | |
6758 | 14 | { &hf_artnet_poll_reply_swremote_2, |
6759 | 14 | { "Remote 2", |
6760 | 14 | "artnet.poll_reply.swremote_2", |
6761 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x02, |
6762 | 14 | NULL, HFILL }}, |
6763 | | |
6764 | 14 | { &hf_artnet_poll_reply_swremote_3, |
6765 | 14 | { "Remote 3", |
6766 | 14 | "artnet.poll_reply.swremote_3", |
6767 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x04, |
6768 | 14 | NULL, HFILL }}, |
6769 | | |
6770 | 14 | { &hf_artnet_poll_reply_swremote_4, |
6771 | 14 | { "Remote 4", |
6772 | 14 | "artnet.poll_reply.swremote_4", |
6773 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x08, |
6774 | 14 | NULL, HFILL }}, |
6775 | | |
6776 | 14 | { &hf_artnet_poll_reply_swremote_5, |
6777 | 14 | { "Remote 5", |
6778 | 14 | "artnet.poll_reply.swremote_5", |
6779 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x10, |
6780 | 14 | NULL, HFILL }}, |
6781 | | |
6782 | 14 | { &hf_artnet_poll_reply_swremote_6, |
6783 | 14 | { "Remote 6", |
6784 | 14 | "artnet.poll_reply.swremote_6", |
6785 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x20, |
6786 | 14 | NULL, HFILL }}, |
6787 | | |
6788 | 14 | { &hf_artnet_poll_reply_swremote_7, |
6789 | 14 | { "Remote 7", |
6790 | 14 | "artnet.poll_reply.swremote_7", |
6791 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x40, |
6792 | 14 | NULL, HFILL }}, |
6793 | | |
6794 | 14 | { &hf_artnet_poll_reply_swremote_8, |
6795 | 14 | { "Remote 8", |
6796 | 14 | "artnet.poll_reply.swremote_8", |
6797 | 14 | FT_BOOLEAN, 8, TFS(&tfs_active_inactive), 0x80, |
6798 | 14 | NULL, HFILL }}, |
6799 | | |
6800 | 14 | { &hf_artnet_poll_reply_style, |
6801 | 14 | { "Style", |
6802 | 14 | "artnet.poll_reply.style", |
6803 | 14 | FT_UINT8, BASE_HEX, VALS(vals_artnet_poll_reply_style), 0x0, |
6804 | 14 | "Equipment style", HFILL }}, |
6805 | | |
6806 | 14 | { &hf_artnet_poll_reply_mac, |
6807 | 14 | { "MAC", |
6808 | 14 | "artnet.poll_reply.mac", |
6809 | 14 | FT_ETHER, BASE_NONE, NULL, 0x0, |
6810 | 14 | NULL, HFILL }}, |
6811 | | |
6812 | 14 | { &hf_artnet_poll_reply_bind_ip_address, |
6813 | 14 | { "Bind IP Address", |
6814 | 14 | "artnet.poll_reply.bind_ip_address", |
6815 | 14 | FT_IPv4, BASE_NONE, NULL, 0x0, |
6816 | 14 | "IP address of root device", HFILL }}, |
6817 | | |
6818 | 14 | { &hf_artnet_poll_reply_bind_index, |
6819 | 14 | { "Bind Index", |
6820 | 14 | "artnet.poll_reply.bind_index", |
6821 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6822 | 14 | NULL, HFILL }}, |
6823 | | |
6824 | 14 | { &hf_artnet_poll_reply_status2, |
6825 | 14 | { "Status2", |
6826 | 14 | "artnet.poll_reply.status2", |
6827 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6828 | 14 | NULL, HFILL }}, |
6829 | | |
6830 | 14 | { &hf_artnet_poll_reply_status2_web_supported, |
6831 | 14 | { "Web configuration supported", |
6832 | 14 | "artnet.poll_reply.websupport", |
6833 | 14 | FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x01, |
6834 | 14 | NULL, HFILL }}, |
6835 | | |
6836 | 14 | { &hf_artnet_poll_reply_status2_dhcp_used, |
6837 | 14 | { "DHCP configuration used", |
6838 | 14 | "artnet.poll_reply.dhcpused", |
6839 | 14 | FT_BOOLEAN, 8, TFS(&tfs_used_notused), 0x02, |
6840 | 14 | NULL, HFILL }}, |
6841 | | |
6842 | 14 | { &hf_artnet_poll_reply_status2_dhcp_supported, |
6843 | 14 | { "DHCP configuration supported", |
6844 | 14 | "artnet.poll_reply.dhcpsupport", |
6845 | 14 | FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x04, |
6846 | 14 | NULL, HFILL }}, |
6847 | | |
6848 | 14 | { &hf_artnet_poll_reply_status2_bigaddr_supported, |
6849 | 14 | { "Port-Address size", |
6850 | 14 | "artnet.poll_reply.addrsupport", |
6851 | 14 | FT_BOOLEAN, 8, TFS(&tfs_artnet_poll_reply_status2_bigaddr_supported), 0x08, |
6852 | 14 | NULL, HFILL }}, |
6853 | | |
6854 | 14 | { &hf_artnet_poll_reply_status2_sacn_supported, |
6855 | 14 | { "sACN supported", |
6856 | 14 | "artnet.poll_reply.sacnsupport", |
6857 | 14 | FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x10, |
6858 | 14 | "Switch between Art-Net and sACN (E1.31)", HFILL }}, |
6859 | | |
6860 | 14 | { &hf_artnet_poll_reply_status2_squawking, |
6861 | 14 | { "Squawking", |
6862 | 14 | "artnet.poll_reply.squawking", |
6863 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x20, |
6864 | 14 | NULL, HFILL }}, |
6865 | | |
6866 | 14 | { &hf_artnet_poll_reply_status2_output_switching_supported, |
6867 | 14 | { "Switch output style", |
6868 | 14 | "artnet.poll_reply.switch_output_style", |
6869 | 14 | FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x40, |
6870 | 14 | "Switch output style using ArtCommand", HFILL }}, |
6871 | | |
6872 | 14 | { &hf_artnet_poll_reply_status2_control_rdm_supported, |
6873 | 14 | { "Control RDM", |
6874 | 14 | "artnet.poll_reply.control_rdm", |
6875 | 14 | FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x80, |
6876 | 14 | "Control RDM using ArtCommand", HFILL }}, |
6877 | | |
6878 | 14 | { &hf_artnet_poll_reply_status3, |
6879 | 14 | { "Status3", |
6880 | 14 | "artnet.poll_reply.status3", |
6881 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
6882 | 14 | NULL, HFILL }}, |
6883 | | |
6884 | 14 | { &hf_artnet_poll_reply_status3_prog_bg_discovery_supported, |
6885 | 14 | { "Programmable background discovery", |
6886 | 14 | "artnet.poll_reply.bgdiscovery", |
6887 | 14 | FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x01, |
6888 | 14 | NULL, HFILL }}, |
6889 | | |
6890 | 14 | { &hf_artnet_poll_reply_status3_bg_queue_supported, |
6891 | 14 | { "Background Queue", |
6892 | 14 | "artnet.poll_reply.bg_queue", |
6893 | 14 | FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x02, |
6894 | 14 | NULL, HFILL }}, |
6895 | | |
6896 | 14 | { &hf_artnet_poll_reply_status3_rdmnet_supported, |
6897 | 14 | { "RDMnet", |
6898 | 14 | "artnet.poll_reply.rdmnet", |
6899 | 14 | FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x04, |
6900 | 14 | NULL, HFILL }}, |
6901 | | |
6902 | 14 | { &hf_artnet_poll_reply_status3_switching_port_supported, |
6903 | 14 | { "Input/Output switching", |
6904 | 14 | "artnet.poll_reply.switch_ports", |
6905 | 14 | FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x08, |
6906 | 14 | "Switch ports between input/output", HFILL }}, |
6907 | | |
6908 | 14 | { &hf_artnet_poll_reply_status3_llrp_supported, |
6909 | 14 | { "LLRP", |
6910 | 14 | "artnet.poll_reply.llrp", |
6911 | 14 | FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x10, |
6912 | 14 | NULL, HFILL }}, |
6913 | | |
6914 | 14 | { &hf_artnet_poll_reply_status3_failover_supported, |
6915 | 14 | { "Fail-over", |
6916 | 14 | "artnet.poll_reply.failover", |
6917 | 14 | FT_BOOLEAN, 8, TFS(&tfs_supported_not_supported), 0x20, |
6918 | 14 | NULL, HFILL }}, |
6919 | | |
6920 | 14 | { &hf_artnet_poll_reply_status3_failsafe_state, |
6921 | 14 | { "Failsafe state", |
6922 | 14 | "artnet.poll_reply.failsafe_state", |
6923 | 14 | FT_UINT8, BASE_HEX, VALS(vals_artnet_poll_reply_status3_failsafe_state), 0xC0, |
6924 | 14 | NULL, HFILL }}, |
6925 | | |
6926 | 14 | { &hf_artnet_poll_reply_default_responder_uid, |
6927 | 14 | { "Default Responder UID", |
6928 | 14 | "artnet.poll_reply.default_responder_uid", |
6929 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
6930 | 14 | "RDMnet & LLRP Default Responder UID", HFILL }}, |
6931 | | |
6932 | 14 | { &hf_artnet_poll_reply_node_report_status_code, |
6933 | 14 | { "Node Report Status Code", |
6934 | 14 | "artnet.poll_reply.node_report_status_code", |
6935 | 14 | FT_UINT16, BASE_HEX, VALS(vals_artnet_poll_reply_node_report_status_code), 0x0, |
6936 | 14 | NULL, HFILL }}, |
6937 | | |
6938 | 14 | { &hf_artnet_poll_reply_node_report_response_counter, |
6939 | 14 | { "Node Report Response Counter", |
6940 | 14 | "artnet.poll_reply.node_report_response_counter", |
6941 | 14 | FT_UINT32, BASE_DEC, NULL, 0x0, |
6942 | 14 | NULL, HFILL }}, |
6943 | | |
6944 | 14 | { &hf_artnet_poll_reply_node_report_status_string, |
6945 | 14 | { "Node Report Status String", |
6946 | 14 | "artnet.poll_reply.node_report_status_string", |
6947 | 14 | FT_STRING, BASE_NONE, NULL, 0x0, |
6948 | 14 | NULL, HFILL }}, |
6949 | | |
6950 | 14 | { &hf_artnet_poll_reply_user, |
6951 | 14 | { "User specific data", |
6952 | 14 | "artnet.poll_reply.user", |
6953 | 14 | FT_UINT16, BASE_HEX, NULL, 0x0, |
6954 | 14 | NULL, HFILL }}, |
6955 | | |
6956 | 14 | { &hf_artnet_poll_reply_refreshrate, |
6957 | 14 | { "Refresh rate", |
6958 | 14 | "artnet.poll_reply.refreshrate", |
6959 | 14 | FT_UINT16, BASE_DEC|BASE_UNIT_STRING, UNS(&units_hz), 0, |
6960 | 14 | NULL, HFILL }}, |
6961 | | |
6962 | 14 | { &hf_artnet_poll_reply_bg_queue_policy, |
6963 | 14 | { "Background Queue Policy", |
6964 | 14 | "artnet.poll_reply.bg_queue_policy", |
6965 | 14 | FT_UINT8, BASE_DEC|BASE_RANGE_STRING, RVALS(vals_artnet_poll_reply_bg_queue_policy), 0x0, |
6966 | 14 | NULL, HFILL }}, |
6967 | | |
6968 | | /* ArtOutput */ |
6969 | | |
6970 | 14 | { &hf_artnet_output, |
6971 | 14 | { "ArtDMX packet", |
6972 | 14 | "artnet.output", |
6973 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
6974 | 14 | "Art-Net ArtDMX packet", HFILL }}, |
6975 | | |
6976 | 14 | { &hf_artnet_output_sequence, |
6977 | 14 | { "Sequence", |
6978 | 14 | "artnet.output.sequence", |
6979 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
6980 | 14 | NULL, HFILL }}, |
6981 | | |
6982 | 14 | { &hf_artnet_output_physical, |
6983 | 14 | { "Physical", |
6984 | 14 | "artnet.output.physical", |
6985 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
6986 | 14 | NULL, HFILL }}, |
6987 | | |
6988 | 14 | { &hf_artnet_output_universe, |
6989 | 14 | { "Universe", |
6990 | 14 | "artnet.output.universe", |
6991 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
6992 | 14 | NULL, HFILL }}, |
6993 | | |
6994 | 14 | { &hf_artnet_output_length, |
6995 | 14 | { "Length", |
6996 | 14 | "artnet.output.length", |
6997 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
6998 | 14 | NULL, HFILL }}, |
6999 | | |
7000 | | |
7001 | | /* ArtSync */ |
7002 | | |
7003 | 14 | { &hf_artnet_sync, |
7004 | 14 | { "ArtSync packet", |
7005 | 14 | "artnet.sync", |
7006 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7007 | 14 | "Art-Net ArtSync packet", HFILL }}, |
7008 | | |
7009 | 14 | { &hf_artnet_sync_aux, |
7010 | 14 | { "Aux", |
7011 | 14 | "artnet.sync.aux", |
7012 | 14 | FT_UINT16, BASE_HEX, NULL, 0x0, |
7013 | 14 | NULL, HFILL }}, |
7014 | | |
7015 | | |
7016 | | /* ArtNzs */ |
7017 | | |
7018 | 14 | { &hf_artnet_nzs, |
7019 | 14 | { "ArtNZS packet", |
7020 | 14 | "artnet.nzs", |
7021 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7022 | 14 | "Art-Net ArtNZS packet", HFILL }}, |
7023 | | |
7024 | 14 | { &hf_artnet_nzs_sequence, |
7025 | 14 | { "Sequence", |
7026 | 14 | "artnet.nzs.sequence", |
7027 | 14 | FT_UINT8, BASE_DEC, NULL, 0, |
7028 | 14 | NULL, HFILL }}, |
7029 | | |
7030 | 14 | { &hf_artnet_nzs_start_code, |
7031 | 14 | { "Start Code", |
7032 | 14 | "artnet.nzs.start_code", |
7033 | 14 | FT_UINT8, BASE_DEC_HEX, NULL, 0, |
7034 | 14 | NULL, HFILL }}, |
7035 | | |
7036 | 14 | { &hf_artnet_nzs_subuni, |
7037 | 14 | { "Sub Universe", |
7038 | 14 | "artnet.nzs.subuni", |
7039 | 14 | FT_UINT8, BASE_DEC_HEX, NULL, 0, |
7040 | 14 | NULL, HFILL }}, |
7041 | | |
7042 | 14 | { &hf_artnet_nzs_net, |
7043 | 14 | { "Net", |
7044 | 14 | "artnet.nzs.net", |
7045 | 14 | FT_UINT8, BASE_DEC_HEX, NULL, 0, |
7046 | 14 | NULL, HFILL }}, |
7047 | | |
7048 | 14 | { &hf_artnet_nzs_length, |
7049 | 14 | { "Length", |
7050 | 14 | "artnet.nzs.length", |
7051 | 14 | FT_UINT16, BASE_DEC, NULL, 0, |
7052 | 14 | NULL, HFILL }}, |
7053 | | |
7054 | 14 | { &hf_artnet_nzs_vlc_man_id, |
7055 | 14 | { "ESTA Code", |
7056 | 14 | "artnet.nzs.vlc_esta_man_id", |
7057 | 14 | FT_UINT16, BASE_HEX|BASE_EXT_STRING, &dmx_esta_manfid_vals_ext, 0, |
7058 | 14 | NULL, HFILL }}, |
7059 | | |
7060 | 14 | { &hf_artnet_nzs_vlc_sub_code, |
7061 | 14 | { "VLC Sub Code", |
7062 | 14 | "artnet.nzs.vlc_sub_code", |
7063 | 14 | FT_UINT8, BASE_HEX, NULL, 0, |
7064 | 14 | NULL, HFILL }}, |
7065 | | |
7066 | 14 | { &hf_artnet_nzs_vlc_flags, |
7067 | 14 | { "VLC Flags", |
7068 | 14 | "artnet.nzs.vlc_flags", |
7069 | 14 | FT_UINT8, BASE_HEX, NULL, 0, |
7070 | 14 | NULL, HFILL }}, |
7071 | | |
7072 | 14 | { &hf_artnet_nzs_vlc_flags_beacon, |
7073 | 14 | { "Beacon", |
7074 | 14 | "artnet.nzs.vlc_beacon", |
7075 | 14 | FT_BOOLEAN, 8, TFS(&tfs_artnet_nzs_vlc_beacon), 0x20, |
7076 | 14 | NULL, HFILL }}, |
7077 | | |
7078 | 14 | { &hf_artnet_nzs_vlc_flags_reply, |
7079 | 14 | { "Reply", |
7080 | 14 | "artnet.nzs.vlc_reply", |
7081 | 14 | FT_BOOLEAN, 8, TFS(&tfs_yes_no), 0x40, |
7082 | 14 | NULL, HFILL }}, |
7083 | | |
7084 | 14 | { &hf_artnet_nzs_vlc_flags_ieee, |
7085 | 14 | { "IEEE", |
7086 | 14 | "artnet.nzs.vlc_ieee", |
7087 | 14 | FT_BOOLEAN, 8, TFS(&tfs_artnet_nzs_vlc_ieee), 0x80, |
7088 | 14 | NULL, HFILL }}, |
7089 | | |
7090 | 14 | { &hf_artnet_nzs_vlc_transaction, |
7091 | 14 | { "VLC Transaction", |
7092 | 14 | "artnet.nzs.vlc_transaction", |
7093 | 14 | FT_UINT16, BASE_HEX, NULL, 0, |
7094 | 14 | NULL, HFILL }}, |
7095 | | |
7096 | 14 | { &hf_artnet_nzs_vlc_slot_addr, |
7097 | 14 | { "VLC Slot Address", |
7098 | 14 | "artnet.nzs.vlc_slot_addr", |
7099 | 14 | FT_UINT16, BASE_HEX, NULL, 0, |
7100 | 14 | NULL, HFILL }}, |
7101 | | |
7102 | 14 | { &hf_artnet_nzs_vlc_payload_size, |
7103 | 14 | { "VLC Payload Size", |
7104 | 14 | "artnet.nzs.vlc_payload_size", |
7105 | 14 | FT_UINT16, BASE_HEX, NULL, 0, |
7106 | 14 | NULL, HFILL }}, |
7107 | | |
7108 | 14 | { &hf_artnet_nzs_vlc_payload_checksum, |
7109 | 14 | { "VLC Payload Checksum", |
7110 | 14 | "artnet.nzs.vlc_payload_checksum", |
7111 | 14 | FT_UINT16, BASE_HEX, NULL, 0, |
7112 | 14 | NULL, HFILL }}, |
7113 | | |
7114 | 14 | { &hf_artnet_nzs_vlc_mod_depth, |
7115 | 14 | { "VLC Modulation Depth", |
7116 | 14 | "artnet.nzs.vlc_mod_depth", |
7117 | 14 | FT_UINT8, BASE_DEC|BASE_UNIT_STRING, UNS(&units_percent), 0, |
7118 | 14 | NULL, HFILL }}, |
7119 | | |
7120 | 14 | { &hf_artnet_nzs_vlc_mod_freq, |
7121 | 14 | { "VLC Modulation Frequency", |
7122 | 14 | "artnet.nzs.vlc_mod_freq", |
7123 | 14 | FT_UINT16, BASE_DEC|BASE_UNIT_STRING, UNS(&units_hz), 0, |
7124 | 14 | NULL, HFILL }}, |
7125 | | |
7126 | 14 | { &hf_artnet_nzs_vlc_mod_type, |
7127 | 14 | { "VLC Modulation Type", |
7128 | 14 | "artnet.nzs.vlc_mod_type", |
7129 | 14 | FT_UINT16, BASE_HEX, NULL, 0, |
7130 | 14 | NULL, HFILL }}, |
7131 | | |
7132 | 14 | { &hf_artnet_nzs_vlc_lang_code, |
7133 | 14 | { "VLC Payload Language Code", |
7134 | 14 | "artnet.nzs.vlc_lang_code", |
7135 | 14 | FT_UINT16, BASE_HEX, VALS(vals_artnet_nzs_vlc_lang_code), 0, |
7136 | 14 | NULL, HFILL }}, |
7137 | | |
7138 | 14 | { &hf_artnet_nzs_vlc_beacon_repeat, |
7139 | 14 | { "VLC Beacon Repeat Frequency", |
7140 | 14 | "artnet.nzs.vlc_beacon_freq", |
7141 | 14 | FT_UINT16, BASE_DEC|BASE_UNIT_STRING, UNS(&units_hz), 0, |
7142 | 14 | NULL, HFILL }}, |
7143 | | |
7144 | 14 | { &hf_artnet_nzs_vlc_payload, |
7145 | 14 | { "VLC Payload", |
7146 | 14 | "artnet.nzs.vlc_payload", |
7147 | 14 | FT_BYTES, BASE_NONE, NULL, 0, |
7148 | 14 | NULL, HFILL }}, |
7149 | | |
7150 | 14 | { &hf_artnet_nzs_vlc_payload_beacon_url, |
7151 | 14 | { "VLC Payload (Beacon URL)", |
7152 | 14 | "artnet.nzs.vlc_payload_beacon_url", |
7153 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
7154 | 14 | NULL, HFILL }}, |
7155 | | |
7156 | 14 | { &hf_artnet_nzs_vlc_payload_beacon_text, |
7157 | 14 | { "VLC Payload (Beacon Text)", |
7158 | 14 | "artnet.nzs.vlc_payload_beacon_text", |
7159 | 14 | FT_STRING, BASE_NONE, NULL, 0, |
7160 | 14 | NULL, HFILL }}, |
7161 | | |
7162 | 14 | { &hf_artnet_nzs_vlc_payload_beacon_location_id, |
7163 | 14 | { "VLC Payload (Beacon Location ID)", |
7164 | 14 | "artnet.nzs.vlc_payload_beacon_location_id", |
7165 | 14 | FT_UINT16, BASE_DEC_HEX, NULL, 0, |
7166 | 14 | NULL, HFILL }}, |
7167 | | |
7168 | | /* ArtAddress */ |
7169 | | |
7170 | 14 | { &hf_artnet_address, |
7171 | 14 | { "ArtAddress packet", |
7172 | 14 | "artnet.address", |
7173 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7174 | 14 | "Art-Net ArtAddress packet", HFILL }}, |
7175 | | |
7176 | 14 | { &hf_artnet_address_netswitch_special, |
7177 | 14 | { "NetSwitch", |
7178 | 14 | "artnet.address.netswitch_special", |
7179 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_address_switch_vals), 0, |
7180 | 14 | NULL, HFILL }}, |
7181 | | |
7182 | 14 | { &hf_artnet_address_netswitch_net, |
7183 | 14 | { "Net", |
7184 | 14 | "artnet.address.netswitch_net", |
7185 | 14 | FT_UINT8, BASE_DEC, NULL, 0x7F, |
7186 | 14 | NULL, HFILL }}, |
7187 | | |
7188 | 14 | { &hf_artnet_address_netswitch_write, |
7189 | 14 | { "Write Net", |
7190 | 14 | "artnet.address.netswitch_write", |
7191 | 14 | FT_BOOLEAN, 8, NULL, 0x80, |
7192 | 14 | NULL, HFILL }}, |
7193 | | |
7194 | 14 | { &hf_artnet_address_bind_index, |
7195 | 14 | { "Bind Index", |
7196 | 14 | "artnet.address.bind_index", |
7197 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7198 | 14 | NULL, HFILL }}, |
7199 | | |
7200 | 14 | { &hf_artnet_address_short_name, |
7201 | 14 | { "Short Name", |
7202 | 14 | "artnet.address.short_name", |
7203 | 14 | FT_STRINGZ, BASE_NONE, NULL, 0x0, |
7204 | 14 | NULL, HFILL }}, |
7205 | | |
7206 | 14 | { &hf_artnet_address_long_name, |
7207 | 14 | { "Long Name", |
7208 | 14 | "artnet.address.long_name", |
7209 | 14 | FT_STRINGZ, BASE_NONE, NULL, 0x0, |
7210 | 14 | NULL, HFILL }}, |
7211 | | |
7212 | 14 | { &hf_artnet_address_swin, |
7213 | 14 | { "Input Subswitch", |
7214 | 14 | "artnet.address.swin", |
7215 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7216 | 14 | NULL, HFILL }}, |
7217 | | |
7218 | 14 | { &hf_artnet_address_swin_1, |
7219 | 14 | { "Input Subswitch of Port 1", |
7220 | 14 | "artnet.address.swin_1", |
7221 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7222 | 14 | NULL, HFILL }}, |
7223 | | |
7224 | 14 | { &hf_artnet_address_swin_2, |
7225 | 14 | { "Input Subswitch of Port 2", |
7226 | 14 | "artnet.address.swin_2", |
7227 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7228 | 14 | NULL, HFILL }}, |
7229 | | |
7230 | 14 | { &hf_artnet_address_swin_3, |
7231 | 14 | { "Input Subswitch of Port 3", |
7232 | 14 | "artnet.address.swin_3", |
7233 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7234 | 14 | NULL, HFILL }}, |
7235 | | |
7236 | 14 | { &hf_artnet_address_swin_4, |
7237 | 14 | { "Input Subswitch of Port 4", |
7238 | 14 | "artnet.address.swin_4", |
7239 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7240 | 14 | NULL, HFILL }}, |
7241 | | |
7242 | 14 | { &hf_artnet_address_swout, |
7243 | 14 | { "Output Subswitch", |
7244 | 14 | "artnet.address.swout", |
7245 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7246 | 14 | NULL, HFILL }}, |
7247 | | |
7248 | 14 | { &hf_artnet_address_swout_1, |
7249 | 14 | { "Output Subswitch of Port 1", |
7250 | 14 | "artnet.address.swout_1", |
7251 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7252 | 14 | NULL, HFILL }}, |
7253 | | |
7254 | 14 | { &hf_artnet_address_swout_2, |
7255 | 14 | { "Output Subswitch of Port 2", |
7256 | 14 | "artnet.address.swout_2", |
7257 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7258 | 14 | NULL, HFILL }}, |
7259 | | |
7260 | 14 | { &hf_artnet_address_swout_3, |
7261 | 14 | { "Output Subswitch of Port 3", |
7262 | 14 | "artnet.address.swout_3", |
7263 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7264 | 14 | NULL, HFILL }}, |
7265 | | |
7266 | 14 | { &hf_artnet_address_swout_4, |
7267 | 14 | { "Output Subswitch of Port 4", |
7268 | 14 | "artnet.address.swout_4", |
7269 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7270 | 14 | NULL, HFILL }}, |
7271 | | |
7272 | 14 | { &hf_artnet_address_subswitch_special, |
7273 | 14 | { "NetSwitch", |
7274 | 14 | "artnet.address.subswitch_special", |
7275 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_address_switch_vals), 0, |
7276 | 14 | NULL, HFILL }}, |
7277 | | |
7278 | 14 | { &hf_artnet_address_subswitch_sub, |
7279 | 14 | { "Sub-Net", |
7280 | 14 | "artnet.address.subswitch_sub", |
7281 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0F, |
7282 | 14 | NULL, HFILL }}, |
7283 | | |
7284 | 14 | { &hf_artnet_address_subswitch_write, |
7285 | 14 | { "Write Sub-Net", |
7286 | 14 | "artnet.address.subswitch_write", |
7287 | 14 | FT_BOOLEAN, 8, NULL, 0x80, |
7288 | 14 | NULL, HFILL }}, |
7289 | | |
7290 | 14 | { &hf_artnet_address_sacnprio, |
7291 | 14 | { "sACN Priority", |
7292 | 14 | "artnet.address.sacnprio", |
7293 | 14 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7294 | 14 | NULL, HFILL }}, |
7295 | | |
7296 | 14 | { &hf_artnet_address_command, |
7297 | 14 | { "Command", |
7298 | 14 | "artnet.address.command", |
7299 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_address_command_vals), 0x0, |
7300 | 14 | NULL, HFILL }}, |
7301 | | |
7302 | | /* ArtInput */ |
7303 | | |
7304 | 14 | { &hf_artnet_input, |
7305 | 14 | { "ArtInput packet", |
7306 | 14 | "artnet.input", |
7307 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7308 | 14 | "Art-Net ArtInput packet", HFILL }}, |
7309 | | |
7310 | 14 | { &hf_artnet_input_bind_index, |
7311 | 14 | { "Bind Index", |
7312 | 14 | "artnet.input.bind_index", |
7313 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7314 | 14 | NULL, HFILL }}, |
7315 | | |
7316 | 14 | { &hf_artnet_input_num_ports, |
7317 | 14 | { "Number of Ports", |
7318 | 14 | "artnet.input.num_ports", |
7319 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
7320 | 14 | NULL, HFILL }}, |
7321 | | |
7322 | 14 | { &hf_artnet_input_input, |
7323 | 14 | { "Port Status", |
7324 | 14 | "artnet.input.input", |
7325 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7326 | 14 | NULL, HFILL }}, |
7327 | | |
7328 | 14 | { &hf_artnet_input_input_1, |
7329 | 14 | { "Status of Port 1", |
7330 | 14 | "artnet.input.input_1", |
7331 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7332 | 14 | NULL, HFILL }}, |
7333 | | |
7334 | 14 | { &hf_artnet_input_input_2, |
7335 | 14 | { "Status of Port 2", |
7336 | 14 | "artnet.input.input_2", |
7337 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7338 | 14 | NULL, HFILL }}, |
7339 | | |
7340 | 14 | { &hf_artnet_input_input_3, |
7341 | 14 | { "Status of Port 3", |
7342 | 14 | "artnet.input.input_3", |
7343 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7344 | 14 | NULL, HFILL }}, |
7345 | | |
7346 | 14 | { &hf_artnet_input_input_4, |
7347 | 14 | { "Status of Port 4", |
7348 | 14 | "artnet.input.input_4", |
7349 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7350 | 14 | NULL, HFILL }}, |
7351 | | |
7352 | 14 | { &hf_artnet_input_input_disabled, |
7353 | 14 | { "Disabled", |
7354 | 14 | "artnet.input.disabled", |
7355 | 14 | FT_BOOLEAN, 8, NULL, 0xff, |
7356 | 14 | NULL, HFILL }}, |
7357 | | |
7358 | | /* ArtFirmwareMaster */ |
7359 | | |
7360 | 14 | { &hf_artnet_firmware_master, |
7361 | 14 | { "ArtFirmwareMaster packet", |
7362 | 14 | "artnet.firmware_master", |
7363 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7364 | 14 | "Art-Net ArtFirmwareMaster packet", HFILL }}, |
7365 | | |
7366 | 14 | { &hf_artnet_firmware_master_type, |
7367 | 14 | { "Type", |
7368 | 14 | "artnet.firmware_master.type", |
7369 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_firmware_master_type_vals), 0x0, |
7370 | 14 | "Number of Ports", HFILL }}, |
7371 | | |
7372 | 14 | { &hf_artnet_firmware_master_block_id, |
7373 | 14 | { "Block ID", |
7374 | 14 | "artnet.firmware_master.block_id", |
7375 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7376 | 14 | NULL, HFILL }}, |
7377 | | |
7378 | 14 | { &hf_artnet_firmware_master_length, |
7379 | 14 | { "Length", |
7380 | 14 | "artnet.firmware_master.length", |
7381 | 14 | FT_UINT32, BASE_DEC, NULL, 0x0, |
7382 | 14 | NULL, HFILL }}, |
7383 | | |
7384 | 14 | { &hf_artnet_firmware_master_data, |
7385 | 14 | { "data", |
7386 | 14 | "artnet.firmware_master.data", |
7387 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7388 | 14 | NULL, HFILL }}, |
7389 | | |
7390 | | /* ArtFirmwareReply */ |
7391 | | |
7392 | 14 | { &hf_artnet_firmware_reply, |
7393 | 14 | { "ArtFirmwareReply packet", |
7394 | 14 | "artnet.firmware_reply", |
7395 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7396 | 14 | "Art-Net ArtFirmwareReply packet", HFILL }}, |
7397 | | |
7398 | 14 | { &hf_artnet_firmware_reply_type, |
7399 | 14 | { "Type", |
7400 | 14 | "artnet.firmware_reply.type", |
7401 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_firmware_reply_type_vals), 0x0, |
7402 | 14 | "Number of Ports", HFILL }}, |
7403 | | |
7404 | | /* ArtVideoSetup */ |
7405 | | |
7406 | 14 | { &hf_artnet_video_setup_control, |
7407 | 14 | { "control", |
7408 | 14 | "artnet.video_setup.control", |
7409 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7410 | 14 | NULL, HFILL }}, |
7411 | | |
7412 | 14 | { &hf_artnet_video_setup_font_height, |
7413 | 14 | { "Font Height", |
7414 | 14 | "artnet.video_setup.font_height", |
7415 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7416 | 14 | NULL, HFILL }}, |
7417 | | |
7418 | 14 | { &hf_artnet_video_setup_first_font, |
7419 | 14 | { "First Font", |
7420 | 14 | "artnet.video_setup.first_font", |
7421 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7422 | 14 | NULL, HFILL }}, |
7423 | | |
7424 | 14 | { &hf_artnet_video_setup_last_font, |
7425 | 14 | { "Last Font", |
7426 | 14 | "artnet.video_setup.last_font", |
7427 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7428 | 14 | NULL, HFILL }}, |
7429 | | |
7430 | 14 | { &hf_artnet_video_setup_win_font_name, |
7431 | 14 | { "Windows Font Name", |
7432 | 14 | "artnet.video_setup.win_font_name", |
7433 | 14 | FT_STRING, BASE_NONE, NULL, 0x0, |
7434 | 14 | NULL, HFILL }}, |
7435 | | |
7436 | 14 | { &hf_artnet_video_setup_font_data, |
7437 | 14 | { "Font data", |
7438 | 14 | "artnet.video_setup.font_data", |
7439 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7440 | 14 | "Font Date", HFILL }}, |
7441 | | |
7442 | | /* ArtVideoPalette */ |
7443 | | |
7444 | 14 | { &hf_artnet_video_palette_colour_red, |
7445 | 14 | { "Colour Red", |
7446 | 14 | "artnet.video_palette.colour_red", |
7447 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7448 | 14 | NULL, HFILL }}, |
7449 | | |
7450 | 14 | { &hf_artnet_video_palette_colour_green, |
7451 | 14 | { "Colour Green", |
7452 | 14 | "artnet.video_palette.colour_green", |
7453 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7454 | 14 | NULL, HFILL }}, |
7455 | | |
7456 | 14 | { &hf_artnet_video_palette_colour_blue, |
7457 | 14 | { "Colour Blue", |
7458 | 14 | "artnet.video_palette.colour_blue", |
7459 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7460 | 14 | NULL, HFILL }}, |
7461 | | |
7462 | | /* ArtVideoData */ |
7463 | | |
7464 | 14 | { &hf_artnet_video_data_pos_x, |
7465 | 14 | { "PosX", |
7466 | 14 | "artnet.video_data.pos_x", |
7467 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7468 | 14 | NULL, HFILL }}, |
7469 | | |
7470 | 14 | { &hf_artnet_video_data_pos_y, |
7471 | 14 | { "PosY", |
7472 | 14 | "artnet.video_data.pos_y", |
7473 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7474 | 14 | NULL, HFILL }}, |
7475 | | |
7476 | 14 | { &hf_artnet_video_data_len_x, |
7477 | 14 | { "LenX", |
7478 | 14 | "artnet.video_data.len_x", |
7479 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7480 | 14 | NULL, HFILL }}, |
7481 | | |
7482 | 14 | { &hf_artnet_video_data_len_y, |
7483 | 14 | { "LenY", |
7484 | 14 | "artnet.video_data.len_y", |
7485 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7486 | 14 | NULL, HFILL }}, |
7487 | | |
7488 | 14 | { &hf_artnet_video_data_data, |
7489 | 14 | { "Video Data", |
7490 | 14 | "artnet.video_data.data", |
7491 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7492 | 14 | NULL, HFILL }}, |
7493 | | |
7494 | | /* ArtTodRequest */ |
7495 | | |
7496 | 14 | { &hf_artnet_tod_request, |
7497 | 14 | { "ArtTodRequest packet", |
7498 | 14 | "artnet.tod_request", |
7499 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7500 | 14 | "Art-Net ArtTodRequest packet", HFILL }}, |
7501 | | |
7502 | 14 | { &hf_artnet_tod_request_net, |
7503 | 14 | { "Net", |
7504 | 14 | "artnet.tod_request.net", |
7505 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7506 | 14 | NULL, HFILL }}, |
7507 | | |
7508 | 14 | { &hf_artnet_tod_request_command, |
7509 | 14 | { "Command", |
7510 | 14 | "artnet.tod_request.command", |
7511 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_tod_request_command_vals), 0x0, |
7512 | 14 | NULL, HFILL }}, |
7513 | | |
7514 | 14 | { &hf_artnet_tod_request_ad_count, |
7515 | 14 | { "Address Count", |
7516 | 14 | "artnet.tod_request.ad_count", |
7517 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7518 | 14 | NULL, HFILL }}, |
7519 | | |
7520 | 14 | { &hf_artnet_tod_request_address, |
7521 | 14 | { "Address", |
7522 | 14 | "artnet.tod_request.address", |
7523 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7524 | 14 | NULL, HFILL }}, |
7525 | | |
7526 | | /* ArtTodData */ |
7527 | | |
7528 | 14 | { &hf_artnet_tod_data, |
7529 | 14 | { "ArtTodData packet", |
7530 | 14 | "artnet.tod_data", |
7531 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7532 | 14 | "Art-Net ArtTodData packet", HFILL }}, |
7533 | | |
7534 | 14 | { &hf_artnet_tod_data_rdm_ver, |
7535 | 14 | { "RDM Version", |
7536 | 14 | "artnet.tod_data.rdm_ver", |
7537 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7538 | 14 | NULL, HFILL }}, |
7539 | | |
7540 | 14 | { &hf_artnet_tod_data_port, |
7541 | 14 | { "Port", |
7542 | 14 | "artnet.tod_data.port", |
7543 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7544 | 14 | NULL, HFILL }}, |
7545 | | |
7546 | 14 | { &hf_artnet_tod_data_bind_index, |
7547 | 14 | { "Bind Index", |
7548 | 14 | "artnet.tod_data.bind_index", |
7549 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7550 | 14 | NULL, HFILL }}, |
7551 | | |
7552 | 14 | { &hf_artnet_tod_data_net, |
7553 | 14 | { "Net", |
7554 | 14 | "artnet.tod_data.net", |
7555 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7556 | 14 | NULL, HFILL }}, |
7557 | | |
7558 | 14 | { &hf_artnet_tod_data_command_response, |
7559 | 14 | { "Command Response", |
7560 | 14 | "artnet.tod_data.command_response", |
7561 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_tod_data_command_vals), 0x0, |
7562 | 14 | NULL, HFILL }}, |
7563 | | |
7564 | 14 | { &hf_artnet_tod_data_address, |
7565 | 14 | { "Address", |
7566 | 14 | "artnet.tod_data.address", |
7567 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7568 | 14 | NULL, HFILL }}, |
7569 | | |
7570 | 14 | { &hf_artnet_tod_data_uid_total, |
7571 | 14 | { "UID Total", |
7572 | 14 | "artnet.tod_data.uid_total", |
7573 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
7574 | 14 | NULL, HFILL }}, |
7575 | | |
7576 | 14 | { &hf_artnet_tod_data_block_count, |
7577 | 14 | { "Block Count", |
7578 | 14 | "artnet.tod_data.block_count", |
7579 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7580 | 14 | NULL, HFILL }}, |
7581 | | |
7582 | 14 | { &hf_artnet_tod_data_uid_count, |
7583 | 14 | { "UID Count", |
7584 | 14 | "artnet.tod_data.uid_count", |
7585 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7586 | 14 | NULL, HFILL }}, |
7587 | | |
7588 | 14 | { &hf_artnet_tod_data_tod, |
7589 | 14 | { "TOD", |
7590 | 14 | "artnet.tod_data.tod", |
7591 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7592 | 14 | NULL, HFILL }}, |
7593 | | |
7594 | 14 | { &hf_artnet_tod_data_tod_manf, |
7595 | 14 | { "Manufacturer ID", |
7596 | 14 | "artnet.tod_data.tod.manf", |
7597 | 14 | FT_UINT16, BASE_HEX|BASE_EXT_STRING, &dmx_esta_manfid_vals_ext, 0x0, |
7598 | 14 | NULL, HFILL }}, |
7599 | | |
7600 | 14 | { &hf_artnet_tod_data_tod_dev, |
7601 | 14 | { "Device ID", |
7602 | 14 | "artnet.tod_data.tod.dev", |
7603 | 14 | FT_UINT32, BASE_HEX, NULL, 0x0, |
7604 | 14 | NULL, HFILL }}, |
7605 | | |
7606 | | /* ArtTodControl */ |
7607 | | |
7608 | 14 | { &hf_artnet_tod_control, |
7609 | 14 | { "ArtTodControl packet", |
7610 | 14 | "artnet.tod_control", |
7611 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7612 | 14 | "Art-Net ArtTodControl packet", HFILL }}, |
7613 | | |
7614 | 14 | { &hf_artnet_tod_control_net, |
7615 | 14 | { "Net", |
7616 | 14 | "artnet.tod_control.net", |
7617 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7618 | 14 | "Top 7 bits of the port address", HFILL }}, |
7619 | | |
7620 | 14 | { &hf_artnet_tod_control_command, |
7621 | 14 | { "Command", |
7622 | 14 | "artnet.tod_control.command", |
7623 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_tod_control_command_vals), 0x0, |
7624 | 14 | NULL, HFILL }}, |
7625 | | |
7626 | 14 | { &hf_artnet_tod_control_address, |
7627 | 14 | { "Address", |
7628 | 14 | "artnet.tod_control.address", |
7629 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7630 | 14 | "Lower byte of the port address", HFILL }}, |
7631 | | |
7632 | 14 | { &hf_artnet_tod_control_universe, |
7633 | 14 | { "Universe", |
7634 | 14 | "artnet.tod_control.universe", |
7635 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
7636 | 14 | NULL, HFILL }}, |
7637 | | |
7638 | | /* ArtRdm */ |
7639 | | |
7640 | 14 | { &hf_artnet_rdm, |
7641 | 14 | { "ArtRdm packet", |
7642 | 14 | "artnet.rdm", |
7643 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7644 | 14 | "Art-Net ArtRdm packet", HFILL }}, |
7645 | | |
7646 | 14 | { &hf_artnet_rdm_command, |
7647 | 14 | { "Command", |
7648 | 14 | "artnet.rdm.command", |
7649 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_rdm_command_vals), 0x0, |
7650 | 14 | NULL, HFILL }}, |
7651 | | |
7652 | 14 | { &hf_artnet_rdm_address, |
7653 | 14 | { "Address", |
7654 | 14 | "artnet.rdm.address", |
7655 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7656 | 14 | NULL, HFILL }}, |
7657 | | |
7658 | 14 | { &hf_artnet_rdm_sc, |
7659 | 14 | { "Startcode", |
7660 | 14 | "artnet.rdm.sc", |
7661 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7662 | 14 | NULL, HFILL }}, |
7663 | | |
7664 | 14 | { &hf_artnet_rdm_rdmver, |
7665 | 14 | { "RDM Version", |
7666 | 14 | "artnet.rdm.rdmver", |
7667 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7668 | 14 | NULL, HFILL }}, |
7669 | | |
7670 | 14 | { &hf_artnet_rdm_fifo_avail, |
7671 | 14 | { "Transmit Queue Available", |
7672 | 14 | "artnet.rdm.fifo_avail", |
7673 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7674 | 14 | NULL, HFILL }}, |
7675 | | |
7676 | 14 | { &hf_artnet_rdm_fifo_max, |
7677 | 14 | { "Transmit Queue Maximum", |
7678 | 14 | "artnet.rdm.fifo_max", |
7679 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7680 | 14 | NULL, HFILL }}, |
7681 | | |
7682 | 14 | { &hf_artnet_rdm_net, |
7683 | 14 | { "Address High", |
7684 | 14 | "artnet.rdm.net", |
7685 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7686 | 14 | NULL, HFILL }}, |
7687 | | |
7688 | | /* ArtRdmSub */ |
7689 | | |
7690 | 14 | { &hf_artnet_rdm_sub, |
7691 | 14 | { "ArtRdmSub packet", |
7692 | 14 | "artnet.rdm_sub", |
7693 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7694 | 14 | "Art-Net ArtRdmSub packet", HFILL }}, |
7695 | | |
7696 | 14 | { &hf_artnet_rdm_sub_uid, |
7697 | 14 | { "UID", |
7698 | 14 | "artnet.rdm_sub.uid", |
7699 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7700 | 14 | NULL, HFILL }}, |
7701 | | |
7702 | 14 | { &hf_artnet_rdm_sub_command_class, |
7703 | 14 | { "Command Class", |
7704 | 14 | "artnet.rdm_sub.command_class", |
7705 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_cc_vals), 0x0, |
7706 | 14 | NULL, HFILL }}, |
7707 | | |
7708 | 14 | { &hf_artnet_rdm_sub_pid, |
7709 | 14 | { "Parameter ID", |
7710 | 14 | "artnet.rdm_sub.param_id", |
7711 | 14 | FT_UINT16, BASE_HEX | BASE_EXT_STRING, &rdm_param_id_vals_ext, 0x0, |
7712 | 14 | NULL, HFILL }}, |
7713 | | |
7714 | 14 | { &hf_artnet_rdm_sub_sub_device, |
7715 | 14 | { "Sub Device", |
7716 | 14 | "artnet.rdm_sub.sub_device", |
7717 | 14 | FT_UINT16, BASE_HEX, NULL, 0x0, |
7718 | 14 | NULL, HFILL }}, |
7719 | | |
7720 | 14 | { &hf_artnet_rdm_sub_sub_count, |
7721 | 14 | { "Sub Count", |
7722 | 14 | "artnet.rdm_sub.sub_count", |
7723 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
7724 | 14 | NULL, HFILL }}, |
7725 | | |
7726 | 14 | { &hf_artnet_rdm_sub_data, |
7727 | 14 | { "Data", |
7728 | 14 | "artnet.rdm_sub.data", |
7729 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7730 | 14 | NULL, HFILL }}, |
7731 | | |
7732 | | /* ArtIpProg */ |
7733 | | |
7734 | 14 | { &hf_artnet_ip_prog, |
7735 | 14 | { "ArtIpProg packet", |
7736 | 14 | "artnet.ip_prog", |
7737 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7738 | 14 | "ArtNET ArtIpProg packet", HFILL }}, |
7739 | | |
7740 | 14 | { &hf_artnet_ip_prog_command, |
7741 | 14 | { "Command", |
7742 | 14 | "artnet.ip_prog.command", |
7743 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7744 | 14 | NULL, HFILL }}, |
7745 | | |
7746 | 14 | { &hf_artnet_ip_prog_command_prog_port, |
7747 | 14 | { "Program Port", |
7748 | 14 | "artnet.ip_prog.command_prog_port", |
7749 | 14 | FT_BOOLEAN, 8, NULL, 0x01, |
7750 | 14 | NULL, HFILL }}, |
7751 | | |
7752 | 14 | { &hf_artnet_ip_prog_command_prog_sm, |
7753 | 14 | { "Program Subnet Mask", |
7754 | 14 | "artnet.ip_prog.command_prog_sm", |
7755 | 14 | FT_BOOLEAN, 8, NULL, 0x02, |
7756 | 14 | NULL, HFILL }}, |
7757 | | |
7758 | 14 | { &hf_artnet_ip_prog_command_prog_ip, |
7759 | 14 | { "Program IP", |
7760 | 14 | "artnet.ip_prog.command_prog_ip", |
7761 | 14 | FT_BOOLEAN, 8, NULL, 0x04, |
7762 | 14 | NULL, HFILL }}, |
7763 | | |
7764 | 14 | { &hf_artnet_ip_prog_command_reset, |
7765 | 14 | { "Reset Parameters", |
7766 | 14 | "artnet.ip_prog.command_reset", |
7767 | 14 | FT_BOOLEAN, 8, NULL, 0x08, |
7768 | 14 | NULL, HFILL }}, |
7769 | | |
7770 | 14 | { &hf_artnet_ip_prog_command_gw, |
7771 | 14 | { "Program Default Gateway", |
7772 | 14 | "artnet.ip_prog.command_prog_gw", |
7773 | 14 | FT_BOOLEAN, 8, NULL, 0x10, |
7774 | 14 | NULL, HFILL }}, |
7775 | | |
7776 | 14 | { &hf_artnet_ip_prog_command_unused, |
7777 | 14 | { "Unused", |
7778 | 14 | "artnet.ip_prog.command_unused", |
7779 | 14 | FT_UINT8, BASE_HEX, NULL, 0x20, |
7780 | 14 | NULL, HFILL }}, |
7781 | | |
7782 | 14 | { &hf_artnet_ip_prog_command_dhcp_enable, |
7783 | 14 | { "Enable DHCP", |
7784 | 14 | "artnet.ip_prog.command_dhcp_enable", |
7785 | 14 | FT_BOOLEAN, 8, NULL, 0x40, |
7786 | 14 | NULL, HFILL }}, |
7787 | | |
7788 | 14 | { &hf_artnet_ip_prog_command_prog_enable, |
7789 | 14 | { "Enable Programming", |
7790 | 14 | "artnet.ip_prog.command_prog_enable", |
7791 | 14 | FT_BOOLEAN, 8, NULL, 0x80, |
7792 | 14 | NULL, HFILL }}, |
7793 | | |
7794 | 14 | { &hf_artnet_ip_prog_ip, |
7795 | 14 | { "IP Address", |
7796 | 14 | "artnet.ip_prog.ip", |
7797 | 14 | FT_IPv4, BASE_NONE, NULL, 0x0, |
7798 | 14 | NULL, HFILL }}, |
7799 | | |
7800 | 14 | { &hf_artnet_ip_prog_sm, |
7801 | 14 | { "Subnet Mask", |
7802 | 14 | "artnet.ip_prog.sm", |
7803 | 14 | FT_IPv4, BASE_NONE, NULL, 0x0, |
7804 | 14 | "IP Subnet mask", HFILL }}, |
7805 | | |
7806 | 14 | { &hf_artnet_ip_prog_port, |
7807 | 14 | { "Port", |
7808 | 14 | "artnet.ip_prog.port", |
7809 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
7810 | 14 | NULL, HFILL }}, |
7811 | | |
7812 | 14 | { &hf_artnet_ip_prog_gw, |
7813 | 14 | { "Default Gateway", |
7814 | 14 | "artnet.ip_prog.gw", |
7815 | 14 | FT_IPv4, BASE_NONE, NULL, 0x0, |
7816 | 14 | NULL, HFILL }}, |
7817 | | |
7818 | | |
7819 | | /* ArtIpProgReply */ |
7820 | | |
7821 | 14 | { &hf_artnet_ip_prog_reply, |
7822 | 14 | { "ArtIpProgReply packet", |
7823 | 14 | "artnet.ip_prog_reply", |
7824 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7825 | 14 | "Art-Net ArtIpProgReply packet", HFILL }}, |
7826 | | |
7827 | 14 | { &hf_artnet_ip_prog_reply_ip, |
7828 | 14 | { "IP Address", |
7829 | 14 | "artnet.ip_prog_reply.ip", |
7830 | 14 | FT_IPv4, BASE_NONE, NULL, 0x0, |
7831 | 14 | NULL, HFILL }}, |
7832 | | |
7833 | 14 | { &hf_artnet_ip_prog_reply_sm, |
7834 | 14 | { "Subnet mask", |
7835 | 14 | "artnet.ip_prog_reply.sm", |
7836 | 14 | FT_IPv4, BASE_NONE, NULL, 0x0, |
7837 | 14 | "IP Subnet mask", HFILL }}, |
7838 | | |
7839 | 14 | { &hf_artnet_ip_prog_reply_port, |
7840 | 14 | { "Port", |
7841 | 14 | "artnet.ip_prog_reply.port", |
7842 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
7843 | 14 | NULL, HFILL }}, |
7844 | | |
7845 | 14 | { &hf_artnet_ip_prog_reply_gw, |
7846 | 14 | { "Default Gateway", |
7847 | 14 | "artnet.ip_prog_reply.gw", |
7848 | 14 | FT_IPv4, BASE_NONE, NULL, 0x0, |
7849 | 14 | NULL, HFILL }}, |
7850 | | |
7851 | 14 | { &hf_artnet_ip_prog_reply_status, |
7852 | 14 | { "Status", |
7853 | 14 | "artnet.ip_prog_reply.status", |
7854 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
7855 | 14 | NULL, HFILL }}, |
7856 | | |
7857 | 14 | { &hf_artnet_ip_prog_reply_status_unused, |
7858 | 14 | { "Unused", |
7859 | 14 | "artnet.ip_prog_reply.unused", |
7860 | 14 | FT_UINT8, BASE_HEX, NULL, 0xbf, |
7861 | 14 | NULL, HFILL }}, |
7862 | | |
7863 | 14 | { &hf_artnet_ip_prog_reply_status_dhcp_enable, |
7864 | 14 | { "DHCP Enabled", |
7865 | 14 | "artnet.ip_prog_reply.status_dhcp_enable", |
7866 | 14 | FT_BOOLEAN, 8, NULL, 0x40, |
7867 | 14 | NULL, HFILL }}, |
7868 | | |
7869 | | /* ArtPollServerReply */ |
7870 | | |
7871 | 14 | { &hf_artnet_poll_fp_reply, |
7872 | 14 | { "ArtPollFpReply packet", |
7873 | 14 | "artnet.poll_fp_reply", |
7874 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7875 | 14 | "Art-Net ArtPollFpReply packet", HFILL }}, |
7876 | | |
7877 | | /* ArtDiagData */ |
7878 | | |
7879 | 14 | { &hf_artnet_diag_data, |
7880 | 14 | { "ArtDiagData packet", |
7881 | 14 | "artnet.diag_data", |
7882 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7883 | 14 | "Art-Net ArtDiagData packet", HFILL }}, |
7884 | | |
7885 | 14 | { &hf_artnet_diag_data_priority, |
7886 | 14 | { "Priority", |
7887 | 14 | "artnet.diag_data.priority", |
7888 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
7889 | 14 | NULL, HFILL }}, |
7890 | | |
7891 | 14 | { &hf_artnet_diag_data_port, |
7892 | 14 | { "Logical port", |
7893 | 14 | "artnet.diag_data.port", |
7894 | 14 | FT_UINT8, BASE_DEC_HEX, NULL, 0x0, |
7895 | 14 | NULL, HFILL }}, |
7896 | | |
7897 | 14 | { &hf_artnet_diag_data_length, |
7898 | 14 | { "Length", |
7899 | 14 | "artnet.diag_data.length", |
7900 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
7901 | 14 | NULL, HFILL }}, |
7902 | | |
7903 | 14 | { &hf_artnet_diag_data_data, |
7904 | 14 | { "Data", |
7905 | 14 | "artnet.diag_data.data", |
7906 | 14 | FT_STRINGZ, BASE_NONE, NULL, 0x0, |
7907 | 14 | NULL, HFILL }}, |
7908 | | |
7909 | | /* ArtCommand */ |
7910 | | |
7911 | 14 | { &hf_artnet_command, |
7912 | 14 | { "ArtCommand packet", |
7913 | 14 | "artnet.command", |
7914 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7915 | 14 | "Art-Net ArtCommand packet", HFILL }}, |
7916 | | |
7917 | 14 | { &hf_artnet_command_esta_man, |
7918 | 14 | { "ESTA Code", |
7919 | 14 | "artnet.command.esta_man", |
7920 | 14 | FT_UINT16, BASE_HEX|BASE_EXT_STRING, &dmx_esta_manfid_vals_ext, 0x0, |
7921 | 14 | NULL, HFILL }}, |
7922 | | |
7923 | 14 | { &hf_artnet_command_length, |
7924 | 14 | { "Length", |
7925 | 14 | "artnet.command.length", |
7926 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
7927 | 14 | NULL, HFILL }}, |
7928 | | |
7929 | 14 | { &hf_artnet_command_data, |
7930 | 14 | { "Data", |
7931 | 14 | "artnet.command_data.data", |
7932 | 14 | FT_STRINGZ, BASE_NONE, NULL, 0x0, |
7933 | 14 | NULL, HFILL }}, |
7934 | | |
7935 | | /* ArtDataRequest */ |
7936 | | |
7937 | 14 | { &hf_artnet_data_request, |
7938 | 14 | { "ArtDataRequest packet", |
7939 | 14 | "artnet.data_request", |
7940 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7941 | 14 | "Art-Net ArtDataRequest packet", HFILL }}, |
7942 | | |
7943 | 14 | { &hf_artnet_data_request_esta_man, |
7944 | 14 | { "ESTA Code", |
7945 | 14 | "artnet.data_request.esta_man", |
7946 | 14 | FT_UINT16, BASE_HEX|BASE_EXT_STRING, &dmx_esta_manfid_vals_ext, 0x0, |
7947 | 14 | NULL, HFILL }}, |
7948 | | |
7949 | 14 | { &hf_artnet_data_request_oem, |
7950 | 14 | { "OEM", |
7951 | 14 | "artnet.data_request.oem", |
7952 | 14 | FT_UINT16, BASE_HEX|BASE_EXT_STRING, &artnet_oem_code_vals_ext, 0x0, |
7953 | 14 | NULL, HFILL }}, |
7954 | | |
7955 | 14 | { &hf_artnet_data_request_request, |
7956 | 14 | { "Request", |
7957 | 14 | "artnet.data_request.request", |
7958 | 14 | FT_UINT16, BASE_HEX|BASE_RANGE_STRING, RVALS(artnet_data_request_vals), 0x0, |
7959 | 14 | NULL, HFILL }}, |
7960 | | |
7961 | 14 | { &hf_artnet_data_request_spare, |
7962 | 14 | { "Spare", |
7963 | 14 | "artnet.data_request.spare", |
7964 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
7965 | 14 | NULL, HFILL }}, |
7966 | | |
7967 | | /* ArtDataReply */ |
7968 | | |
7969 | 14 | { &hf_artnet_data_reply, |
7970 | 14 | { "ArtDataReply packet", |
7971 | 14 | "artnet.data_reply", |
7972 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
7973 | 14 | "Art-Net ArtDataReply packet", HFILL }}, |
7974 | | |
7975 | 14 | { &hf_artnet_data_reply_esta_man, |
7976 | 14 | { "ESTA Code", |
7977 | 14 | "artnet.data_reply.esta_man", |
7978 | 14 | FT_UINT16, BASE_HEX|BASE_EXT_STRING, &dmx_esta_manfid_vals_ext, 0x0, |
7979 | 14 | NULL, HFILL }}, |
7980 | | |
7981 | 14 | { &hf_artnet_data_reply_oem, |
7982 | 14 | { "OEM", |
7983 | 14 | "artnet.data_reply.oem", |
7984 | 14 | FT_UINT16, BASE_HEX|BASE_EXT_STRING, &artnet_oem_code_vals_ext, 0x0, |
7985 | 14 | NULL, HFILL }}, |
7986 | | |
7987 | 14 | { &hf_artnet_data_reply_request, |
7988 | 14 | { "Request", |
7989 | 14 | "artnet.data_reply.request", |
7990 | 14 | FT_UINT16, BASE_HEX|BASE_RANGE_STRING, RVALS(artnet_data_request_vals), 0x0, |
7991 | 14 | NULL, HFILL }}, |
7992 | | |
7993 | 14 | { &hf_artnet_data_reply_payload_length, |
7994 | 14 | { "Payload length", |
7995 | 14 | "artnet.data_reply.payload_length", |
7996 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
7997 | 14 | NULL, HFILL }}, |
7998 | | |
7999 | 14 | { &hf_artnet_data_reply_payload, |
8000 | 14 | { "Payload", |
8001 | 14 | "artnet.data_reply.payload", |
8002 | 14 | FT_STRINGZ, BASE_NONE, NULL, 0x0, |
8003 | 14 | NULL, HFILL }}, |
8004 | | |
8005 | | /* ArtMedia */ |
8006 | 14 | { &hf_artnet_media, |
8007 | 14 | { "ArtMedia packet", |
8008 | 14 | "artnet.media", |
8009 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
8010 | 14 | "Art-Net ArtMedia packet", HFILL }}, |
8011 | | |
8012 | | /* ArtMediaPatch */ |
8013 | 14 | { &hf_artnet_media_patch, |
8014 | 14 | { "ArtMediaPatch packet", |
8015 | 14 | "artnet.media_patch", |
8016 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
8017 | 14 | "Art-Net ArtMediaPatch packet", HFILL }}, |
8018 | | |
8019 | | /* ArtMediaControl */ |
8020 | 14 | { &hf_artnet_media_control, |
8021 | 14 | { "ArtMediaControl packet", |
8022 | 14 | "artnet.media_control", |
8023 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
8024 | 14 | "Art-Net ArtMediaControl packet", HFILL }}, |
8025 | | |
8026 | | /* ArtMediaControlReply */ |
8027 | 14 | { &hf_artnet_media_control_reply, |
8028 | 14 | { "ArtMediaControlReply packet", |
8029 | 14 | "artnet.media_control_reply", |
8030 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
8031 | 14 | "Art-Net ArtMediaControlReply packet", HFILL }}, |
8032 | | |
8033 | | /* ArtTimeCode */ |
8034 | 14 | { &hf_artnet_time_code, |
8035 | 14 | { "ArtTimeCode packet", |
8036 | 14 | "artnet.time_code", |
8037 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
8038 | 14 | "Art-Net ArtTimeCode packet", HFILL }}, |
8039 | | |
8040 | 14 | { &hf_artnet_time_code_stream_id, |
8041 | 14 | { "Stream ID", |
8042 | 14 | "artnet.time_code.stream_id", |
8043 | 14 | FT_UINT8, BASE_DEC_HEX, NULL, 0, |
8044 | 14 | NULL, HFILL }}, |
8045 | | |
8046 | 14 | { &hf_artnet_time_code_frames, |
8047 | 14 | { "Frames", |
8048 | 14 | "artnet.time_code.frames", |
8049 | 14 | FT_UINT8, BASE_DEC, NULL, 0, |
8050 | 14 | NULL, HFILL }}, |
8051 | | |
8052 | 14 | { &hf_artnet_time_code_seconds, |
8053 | 14 | { "Seconds", |
8054 | 14 | "artnet.time_code.seconds", |
8055 | 14 | FT_UINT8, BASE_DEC, NULL, 0, |
8056 | 14 | NULL, HFILL }}, |
8057 | | |
8058 | 14 | { &hf_artnet_time_code_minutes, |
8059 | 14 | { "Minutes", |
8060 | 14 | "artnet.time_code.minutes", |
8061 | 14 | FT_UINT8, BASE_DEC, NULL, 0, |
8062 | 14 | NULL, HFILL }}, |
8063 | | |
8064 | 14 | { &hf_artnet_time_code_hours, |
8065 | 14 | { "Hours", |
8066 | 14 | "artnet.time_code.hours", |
8067 | 14 | FT_UINT8, BASE_DEC, NULL, 0, |
8068 | 14 | NULL, HFILL }}, |
8069 | | |
8070 | 14 | { &hf_artnet_time_code_type, |
8071 | 14 | { "Type", |
8072 | 14 | "artnet.time_code.type", |
8073 | 14 | FT_UINT8, BASE_DEC, VALS(artnet_time_code_vals), 0, |
8074 | 14 | NULL, HFILL }}, |
8075 | | |
8076 | | /* ArtTimeSync */ |
8077 | 14 | { &hf_artnet_time_sync, |
8078 | 14 | { "ArtTimeSync packet", |
8079 | 14 | "artnet.time_sync", |
8080 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
8081 | 14 | "Art-Net ArtTimeSync packet", HFILL }}, |
8082 | | |
8083 | | /* ArtTrigger */ |
8084 | 14 | { &hf_artnet_trigger, |
8085 | 14 | { "ArtTrigger packet", |
8086 | 14 | "artnet.trigger", |
8087 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
8088 | 14 | "Art-Net ArtTrigger packet", HFILL }}, |
8089 | | |
8090 | 14 | { &hf_artnet_trigger_oem, |
8091 | 14 | { "OEM", |
8092 | 14 | "artnet.trigger.oem", |
8093 | 14 | FT_UINT16, BASE_HEX|BASE_EXT_STRING, &artnet_oem_code_vals_ext, 0x0, |
8094 | 14 | NULL, HFILL }}, |
8095 | | |
8096 | 14 | { &hf_artnet_trigger_key, |
8097 | 14 | { "Key", |
8098 | 14 | "artnet.trigger.key", |
8099 | 14 | FT_UINT8, BASE_HEX_DEC, 0, 0x0, |
8100 | 14 | NULL, HFILL }}, |
8101 | | |
8102 | 14 | { &hf_artnet_trigger_key_unspecific, |
8103 | 14 | { "Key (unspecific)", |
8104 | 14 | "artnet.trigger.key_unspecific", |
8105 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_trigger_key_vals), 0x0, |
8106 | 14 | "Key (not specific to manufacturer)", HFILL }}, |
8107 | | |
8108 | 14 | { &hf_artnet_trigger_subkey, |
8109 | 14 | { "SubKey", |
8110 | 14 | "artnet.trigger.subkey", |
8111 | 14 | FT_UINT8, BASE_HEX_DEC, 0, 0x0, |
8112 | 14 | NULL, HFILL }}, |
8113 | | |
8114 | 14 | { &hf_artnet_trigger_data, |
8115 | 14 | { "Data", |
8116 | 14 | "artnet.trigger.data", |
8117 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
8118 | 14 | NULL, HFILL }}, |
8119 | | |
8120 | | /* ArtDirectory */ |
8121 | 14 | { &hf_artnet_directory, |
8122 | 14 | { "ArtDirectory packet", |
8123 | 14 | "artnet.directory", |
8124 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
8125 | 14 | "Art-Net ArtDirectory packet", HFILL }}, |
8126 | | |
8127 | 14 | { &hf_artnet_directory_filler, |
8128 | 14 | { "Filler", |
8129 | 14 | "artnet.directory.filler", |
8130 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
8131 | 14 | NULL, HFILL }}, |
8132 | | |
8133 | 14 | { &hf_artnet_directory_cmd, |
8134 | 14 | { "Command", |
8135 | 14 | "artnet.directory.cmd", |
8136 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
8137 | 14 | NULL, HFILL }}, |
8138 | | |
8139 | 14 | { &hf_artnet_directory_file, |
8140 | 14 | { "File Nr.", |
8141 | 14 | "artnet.directory.file", |
8142 | 14 | FT_UINT16, BASE_DEC, NULL, 0x0, |
8143 | 14 | NULL, HFILL }}, |
8144 | | |
8145 | | /* ArtDirectoryReply */ |
8146 | 14 | { &hf_artnet_directory_reply, |
8147 | 14 | { "ArtDirectoryReply packet", |
8148 | 14 | "artnet.directory_reply", |
8149 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
8150 | 14 | "Art-Net ArtDirectoryReply packet", HFILL }}, |
8151 | | |
8152 | 14 | { &hf_artnet_directory_reply_filler, |
8153 | 14 | { "Filler", |
8154 | 14 | "artnet.directory_reply.filler", |
8155 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
8156 | 14 | NULL, HFILL }}, |
8157 | | |
8158 | 14 | { &hf_artnet_directory_reply_flags, |
8159 | 14 | { "Flags", |
8160 | 14 | "artnet.directory_reply.flags", |
8161 | 14 | FT_UINT8, BASE_HEX, NULL, 0x0, |
8162 | 14 | NULL, HFILL }}, |
8163 | | |
8164 | 14 | { &hf_artnet_directory_reply_file, |
8165 | 14 | { "File", |
8166 | 14 | "artnet.directory_reply.file", |
8167 | 14 | FT_UINT16, BASE_HEX, NULL, 0x0, |
8168 | 14 | NULL, HFILL }}, |
8169 | | |
8170 | 14 | { &hf_artnet_directory_reply_name, |
8171 | 14 | { "Name", |
8172 | 14 | "artnet.directory_reply.name", |
8173 | 14 | FT_STRING, BASE_NONE, NULL, 0x0, |
8174 | 14 | NULL, HFILL }}, |
8175 | | |
8176 | 14 | { &hf_artnet_directory_reply_desc, |
8177 | 14 | { "Description", |
8178 | 14 | "artnet.directory_reply.desc", |
8179 | 14 | FT_STRING, BASE_NONE, NULL, 0x0, |
8180 | 14 | NULL, HFILL }}, |
8181 | | |
8182 | 14 | { &hf_artnet_directory_reply_length, |
8183 | 14 | { "Length", |
8184 | 14 | "artnet.directory_reply.length", |
8185 | 14 | FT_UINT64, BASE_DEC, NULL, 0x0, |
8186 | 14 | NULL, HFILL }}, |
8187 | | |
8188 | 14 | { &hf_artnet_directory_reply_data, |
8189 | 14 | { "Data", |
8190 | 14 | "artnet.directory_reply.data", |
8191 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
8192 | 14 | NULL, HFILL }}, |
8193 | | |
8194 | | /* ArtMacMaster */ |
8195 | 14 | { &hf_artnet_mac_master, |
8196 | 14 | { "ArtMacMaster packet", |
8197 | 14 | "artnet.mac_master", |
8198 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
8199 | 14 | "Art-Net ArtMacMaster packet", HFILL }}, |
8200 | | |
8201 | | /* ArtMacSlave */ |
8202 | 14 | { &hf_artnet_mac_slave, |
8203 | 14 | { "ArtMacSlave packet", |
8204 | 14 | "artnet.mac_slave", |
8205 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
8206 | 14 | "Art-Net ArtMacSlave packet", HFILL }}, |
8207 | | |
8208 | | /* ArtFileTnMaster */ |
8209 | 14 | { &hf_artnet_file_tn_master, |
8210 | 14 | { "ArtFileTnMaster packet", |
8211 | 14 | "artnet.file_tn_master", |
8212 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
8213 | 14 | "Art-Net ArtFileTnMaster packet", HFILL }}, |
8214 | | |
8215 | 14 | { &hf_artnet_file_tn_master_filler, |
8216 | 14 | { "Filler", |
8217 | 14 | "artnet.file_tn_master.filler", |
8218 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
8219 | 14 | NULL, HFILL }}, |
8220 | | |
8221 | 14 | { &hf_artnet_file_tn_master_type, |
8222 | 14 | { "Type", |
8223 | 14 | "artnet.file_tn_master.type", |
8224 | 14 | FT_UINT8, BASE_HEX, VALS(artnet_file_type_vals), 0x0, |
8225 | 14 | NULL, HFILL }}, |
8226 | | |
8227 | 14 | { &hf_artnet_file_tn_master_block_id, |
8228 | 14 | { "Block ID", |
8229 | 14 | "artnet.file_tn_master.block_id", |
8230 | 14 | FT_UINT8, BASE_DEC, NULL, 0x0, |
8231 | 14 | NULL, HFILL }}, |
8232 | | |
8233 | 14 | { &hf_artnet_file_tn_master_length, |
8234 | 14 | { "Length", |
8235 | 14 | "artnet.file_tn_master.length", |
8236 | 14 | FT_UINT32, BASE_DEC, NULL, 0x0, |
8237 | 14 | NULL, HFILL }}, |
8238 | | |
8239 | 14 | { &hf_artnet_file_tn_master_name, |
8240 | 14 | { "Name", |
8241 | 14 | "artnet.file_tn_master.name", |
8242 | 14 | FT_STRINGZ, BASE_NONE, NULL, 0x0, |
8243 | 14 | NULL, HFILL }}, |
8244 | | |
8245 | 14 | { &hf_artnet_file_tn_master_checksum, |
8246 | 14 | { "Checksum", |
8247 | 14 | "artnet.file_tn_master.checksum", |
8248 | 14 | FT_UINT16, BASE_HEX, NULL, 0x0, |
8249 | 14 | NULL, HFILL }}, |
8250 | | |
8251 | 14 | { &hf_artnet_file_tn_master_spare, |
8252 | 14 | { "Spare", |
8253 | 14 | "artnet.file_tn_master.spare", |
8254 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
8255 | 14 | NULL, HFILL }}, |
8256 | | |
8257 | 14 | { &hf_artnet_file_tn_master_data, |
8258 | 14 | { "Data", |
8259 | 14 | "artnet.file_tn_master.data", |
8260 | 14 | FT_BYTES, BASE_NONE, NULL, 0x0, |
8261 | 14 | NULL, HFILL }}, |
8262 | | |
8263 | | /* ArtFileFnMaster */ |
8264 | 14 | { &hf_artnet_file_fn_master, |
8265 | 14 | { "ArtFileFnMaster packet", |
8266 | 14 | "artnet.file_fn_master", |
8267 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
8268 | 14 | "Art-Net ArtFileFnMaster packet", HFILL }}, |
8269 | | |
8270 | | /* ArtFileFnReply */ |
8271 | 14 | { &hf_artnet_file_fn_reply, |
8272 | 14 | { "ArtFileFnReply packet", |
8273 | 14 | "artnet.file_fn_reply", |
8274 | 14 | FT_NONE, BASE_NONE, NULL, 0, |
8275 | 14 | "Art-Net ArtFileFnReply packet", HFILL }} |
8276 | | |
8277 | 14 | }; |
8278 | | |
8279 | 14 | static ei_register_info ei[] = { |
8280 | 14 | { &ei_artnet_poll_reply_bind_ip_without_index, |
8281 | 14 | { "artnet.poll_reply.bind_ip_without_index", PI_MALFORMED, PI_WARN, |
8282 | 14 | "Bind IP address set without bind index", EXPFILL } |
8283 | 14 | }, |
8284 | 14 | { &ei_artnet_poll_reply_bind_index_without_ip, |
8285 | 14 | { "artnet.poll_reply.bind_index_without_ip", PI_MALFORMED, PI_WARN, |
8286 | 14 | "Bind index set without bind IP address", EXPFILL } |
8287 | 14 | }, |
8288 | 14 | { &ei_artnet_poll_reply_node_report_invalid_format, |
8289 | 14 | { "artnet.poll_reply.node_report_format_invalid", PI_MALFORMED, PI_WARN, |
8290 | 14 | "Node report has invalid format.", EXPFILL } |
8291 | 14 | } |
8292 | 14 | }; |
8293 | | |
8294 | 14 | static int *ett[] = { |
8295 | 14 | &ett_artnet, |
8296 | 14 | &ett_artnet_header, |
8297 | 14 | &ett_artnet_data, |
8298 | 14 | &ett_artnet_poll_talktome, |
8299 | 14 | &ett_artnet_poll_reply_status, |
8300 | 14 | &ett_artnet_poll_reply_port_info, |
8301 | 14 | &ett_artnet_poll_reply_port_types, |
8302 | 14 | &ett_artnet_poll_reply_good_input, |
8303 | 14 | &ett_artnet_poll_reply_good_input_1, |
8304 | 14 | &ett_artnet_poll_reply_good_input_2, |
8305 | 14 | &ett_artnet_poll_reply_good_input_3, |
8306 | 14 | &ett_artnet_poll_reply_good_input_4, |
8307 | 14 | &ett_artnet_poll_reply_good_output, |
8308 | 14 | &ett_artnet_poll_reply_good_output_1, |
8309 | 14 | &ett_artnet_poll_reply_good_output_2, |
8310 | 14 | &ett_artnet_poll_reply_good_output_3, |
8311 | 14 | &ett_artnet_poll_reply_good_output_4, |
8312 | 14 | &ett_artnet_poll_reply_good_output_b, |
8313 | 14 | &ett_artnet_poll_reply_good_output_b_1, |
8314 | 14 | &ett_artnet_poll_reply_good_output_b_2, |
8315 | 14 | &ett_artnet_poll_reply_good_output_b_3, |
8316 | 14 | &ett_artnet_poll_reply_good_output_b_4, |
8317 | 14 | &ett_artnet_poll_reply_swin, |
8318 | 14 | &ett_artnet_poll_reply_swout, |
8319 | 14 | &ett_artnet_poll_reply_swmacro, |
8320 | 14 | &ett_artnet_poll_reply_swremote, |
8321 | 14 | &ett_artnet_poll_reply_status2, |
8322 | 14 | &ett_artnet_poll_reply_status3, |
8323 | 14 | &ett_artnet_ip_prog_command, |
8324 | 14 | &ett_artnet_ip_prog_reply_status, |
8325 | 14 | &ett_artnet_address_netswitch, |
8326 | 14 | &ett_artnet_address_swin, |
8327 | 14 | &ett_artnet_address_swout, |
8328 | 14 | &ett_artnet_address_subswitch, |
8329 | 14 | &ett_artnet_input_input, |
8330 | 14 | &ett_artnet_input_input_1, |
8331 | 14 | &ett_artnet_input_input_2, |
8332 | 14 | &ett_artnet_input_input_3, |
8333 | 14 | &ett_artnet_input_input_4, |
8334 | 14 | &ett_artnet_nzs_vlc_flags, |
8335 | 14 | &ett_artnet_tod_data_tod |
8336 | 14 | }; |
8337 | | |
8338 | 14 | proto_artnet = proto_register_protocol("Art-Net", "Art-Net", "artnet"); |
8339 | 14 | proto_register_field_array(proto_artnet, hf, array_length(hf)); |
8340 | 14 | proto_register_subtree_array(ett, array_length(ett)); |
8341 | | |
8342 | 14 | expert_artnet = expert_register_protocol(proto_artnet); |
8343 | 14 | expert_register_field_array(expert_artnet, ei, array_length(ei)); |
8344 | | |
8345 | 14 | artnet_handle = register_dissector("artnet", dissect_artnet, proto_artnet); |
8346 | 14 | } |
8347 | | |
8348 | | void |
8349 | 14 | proto_reg_handoff_artnet(void) { |
8350 | 14 | dissector_add_for_decode_as_with_preference("udp.port", artnet_handle); |
8351 | 14 | rdm_handle = find_dissector_add_dependency("rdm", proto_artnet); |
8352 | 14 | dmx_chan_handle = find_dissector_add_dependency("dmx-chan", proto_artnet); |
8353 | | |
8354 | 14 | heur_dissector_add("udp", dissect_artnet_heur, "ARTNET over UDP", "artnet_udp", proto_artnet, HEURISTIC_ENABLE); |
8355 | 14 | } |
8356 | | |
8357 | | /* |
8358 | | * Editor modelines |
8359 | | * |
8360 | | * Local Variables: |
8361 | | * c-basic-offset: 2 |
8362 | | * tab-width: 8 |
8363 | | * indent-tabs-mode: nil |
8364 | | * End: |
8365 | | * |
8366 | | * ex: set shiftwidth=2 tabstop=8 expandtab: |
8367 | | * :indentSize=2:tabSize=8:noTabs=true: |
8368 | | */ |