VLCB
Loading...
Searching...
No Matches
vlcbdefs.hpp
Go to the documentation of this file.
1/* DO NOT EDIT THIS FILE.
2 * This file is automatically generated by ./generate_cpp.sh from vlcb-defs.csv
3 */
4#ifndef __VLCBDEFS
5#define __VLCBDEFS
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11// Copyright (C) Sven Rosvall (sven@rosvall.ie)
12// This file is part of VLCB-Arduino project on https://github.com/SvenRosvall/VLCB-Arduino
13// Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
14// The full licence can be found at: http://creativecommons.org/licenses/by-nc-sa/4.0/
15enum VlcbManufacturer : unsigned char
16{
17 // Manufacturer definitions
18 // Where the manufacturer already has an NMRA code, this is used
19 //
20 MANU_DEV = 13, // For new manufacturer development - who don't have a manufacturer id yet
21 MANU_MERG = 165, // https://www.merg.co.uk
22 MANU_SPROG = 44, // https://www.sprog-dcc.co.uk/
23 MANU_ROCRAIL = 70, // http://www.rocrail.net
24 MANU_SPECTRUM = 80, // http://animatedmodeler.com (Spectrum Engineering)
25 MANU_SYSPIXIE = 249, // Konrad Orlowski
26 MANU_RME = 248, // http://rmeuk.com (Railway Modelling Experts Limited)
27};
28
29enum VlcbMergModuleTypes : unsigned char
30{
31 //
32 // MODULE TYPES
33 //
34 // Please note that the existence of a module type id does not necessarily mean that firmware has been implemented
35 //
36 // MERG Module types
37 //
38 MTYP_SLIM = 0, // default for SLiM nodes
39 MTYP_CANACC4 = 1, // Solenoid point driver
40 MTYP_CANACC5 = 2, // Motorised point driver
41 MTYP_CANACC8 = 3, // 8 digital outputs
42 MTYP_CANACE3 = 4, // Control panel switch/button encoder
43 MTYP_CANACE8C = 5, // 8 digital inputs
44 MTYP_CANLED = 6, // 64 led driver
45 MTYP_CANLED64 = 7, // 64 led driver (multi leds per event)
46 MTYP_CANACC4_2 = 8, // 12v version of CANACC4
47 MTYP_CANCAB = 9, // CANCAB hand throttle
48 MTYP_CANCMD = 10, // CANCMD command station
49 MTYP_CANSERVO = 11, // 8 servo driver (on canacc8 or similar hardware)
50 MTYP_CANBC = 12, // BC1a command station
51 MTYP_CANRPI = 13, // RPI and RFID interface
52 MTYP_CANTTCA = 14, // Turntable controller (turntable end)
53 MTYP_CANTTCB = 15, // Turntable controller (control panel end)
54 MTYP_CANHS = 16, // Handset controller for old BC1a type handsets
55 MTYP_CANTOTI = 17, // Track occupancy detector
56 MTYP_CAN8I8O = 18, // 8 inputs 8 outputs
57 MTYP_CANSERVO8C = 19, // Canservo with servo position feedback
58 MTYP_CANRFID = 20, // RFID input
60 MTYP_CANACE16C = 22, // 16 inputs
61 MTYP_CANIO8 = 23, // 8 way I/O
62 MTYP_CANSNDX = 24, // ??
63 MTYP_CANEther = 25, // Ethernet interface
64 MTYP_CANSIG64 = 26, // Multiple aspect signalling for CANLED module
65 MTYP_CANSIG8 = 27, // Multiple aspect signalling for CANACC8 module
66 MTYP_CANCOND8C = 28, // Conditional event generation
67 MTYP_CANPAN = 29, // Control panel 32/32
68 MTYP_CANACE3C = 30, // Newer version of CANACE3 firmware
69 MTYP_CANPanel = 31, // Control panel 64/64
70 MTYP_CANMIO = 32, // Multiple I/O – Universal CANMIO firmware
71 MTYP_CANACE8MIO = 33, // Multiple IO module 16 inputs emulating CANACE8C on CANMIO hardware
72 MTYP_CANSOL = 34, // Solenoid driver module
73 MTYP_CANBIP = 35, // Universal CANBIP firmware - Bipolar IO module with additional 8 I/O pins (CANMIO family)
74 MTYP_CANCDU = 36, // Solenoid driver module with additional 6 I/O pins (CANMIO family)
75 MTYP_CANACC4CDU = 37, // CANACC4 firmware ported to CANCDU
76 MTYP_CANWiBase = 38, // CAN to MiWi base station
77 MTYP_WiCAB = 39, // Wireless cab using MiWi protocol
78 MTYP_CANWiFi = 40, // CAN to WiFi connection with Withrottle to CBUS protocol conversion
79 MTYP_CANFTT = 41, // Turntable controller configured using FLiM
80 MTYP_CANHNDST = 42, // Handset (alternative to CANCAB)
81 MTYP_CANTCHNDST = 43, // Touchscreen handset
82 MTYP_CANRFID8 = 44, // multi-channel RFID reader
83 MTYP_CANmchRFID = 45, // either a 2ch or 8ch RFID reader
84 MTYP_CANPiWi = 46, // a Raspberry Pi based module for WiFi
85 MTYP_CAN4DC = 47, // DC train controller
86 MTYP_CANELEV = 48, // Nelevator controller
87 MTYP_CANSCAN = 49, // 128 switch inputs
88 MTYP_CANMIO_SVO = 50, // 16MHz 25k80 version of CANSERVO8c on CANMIO hardware
89 MTYP_CANMIO_INP = 51, // 16MHz 25k80 version of CANACE8MIO on CANMIO hardware
90 MTYP_CANMIO_OUT = 52, // 16MHz 25k80 version of CANACC8 on CANMIO hardware
91 MTYP_CANBIP_OUT = 53, // 16MHz 25k80 version of CANACC5 on CANBIP hardware
92 MTYP_CANASTOP = 54, // DCC stop generator
93 MTYP_CANCSB = 55, // CANCMD with on board 3A booster
94 MTYP_CANMAG = 56, // Magnet on Track detector
95 MTYP_CANACE16CMIO = 57, // 16 input equivaent to CANACE8C
96 MTYP_CANPiNODE = 58, // CBUS module based on Raspberry Pi
97 MTYP_CANDISP = 59, // 25K80 version of CANLED64 (IHart and MB)
98 MTYP_CANCOMPUTE = 60, // Compute Event processing engine
99 MTYP_CANRC522 = 61, // Read/Write from/to RC522 RFID tags
100 MTYP_CANINP = 62, // 8 inputs module (2g version of CANACE8c) (Pete Brownlow)
101 MTYP_CANOUT = 63, // 8 outputs module (2g version of CANACC8) (Pete Brownlow)
102 MTYP_CANXIO = 64, // Extended CANMIO (24 I/O ports) (Pete Brownlow)
103 MTYP_CANCABDC = 65, // DC cab
104 MTYP_CANRCOM = 66, // DC Railcom detector/reader
105 MTYP_CANMP3 = 67, // MP3 sound player in response to events (eg: station announcements) (Duncan Greenwood)
106 MTYP_CANXMAS = 68, // Addressed RGB LED driver (Duncan Greenwood)
107 MTYP_CANSVOSET = 69, // Servo setting box (Duncan Greenwood)
108 MTYP_CANCMDDC = 70, // DC Command station
109 MTYP_CANTEXT = 71, // Text message display
110 MTYP_CANASIGNAL = 72, // Signal controller
111 MTYP_CANSLIDER = 73, // DCC cab with slider control (Dave Radcliffe)
112 MTYP_CANDCATC = 74, // DC ATC module (Dave Harris)
113 MTYP_CANGATE = 75, // Logic module using and/or gates (Phil Silver)
114 MTYP_CANSINP = 76, // Q series PIC input module (Ian Hart)
115 MTYP_CANSOUT = 77, // Q series PIC input module (Ian Hart)
116 MTYP_CANSBIP = 78, // Q series PIC input module (Ian Hart)
117 MTYP_CANBUFFER = 79, // Message buffer (Phil Silver)
118 MTYP_CANLEVER = 80, // Lever frame module (Tim Coombs)
119 MTYP_CANSHIELD = 81, // Kit 110 Arduino shield test firmware
120 MTYP_CAN4IN4OUT = 82, // 4 inputs 4 outputs (Arduino module)
121 MTYP_CANCMDB = 83, // CANCMD with built in booster (Simon West)
122 MTYP_CANPIXEL = 84, // neopixel driver (Jon Denham)
123 MTYP_CANCABPE = 85, // Cab2 with pot or encoder (Simon West hardware, Jon Denham new C firmware)
124 MTYP_CANSMARTTD = 86, // Smart train detector (Michael Smith)
125 MTYP_CANARGB = 87, // Addressable LEDs (Ian Hogg)
126 MTYP_CANCDU_U = 88, // CANCDU (universal)
127 MTYP_VLCB = 0xFC, // VLCB modules use the same manufacturer IDs as CBUS modules.
128 //
129 // At the time of writing the list of defined MERG module types is maintained by Pete Brownlow software@upsys.co.uk
130 // Please liaise with Pete before adding new module types,
131 // and/or create your own GitHub branch, add your proposed new module type(s) and then create a Pull Request
132 //
133 MTYP_CAN_SW = 0xFF, // Software nodes
134 MTYP_EMPTY = 0xFE, // Empty module, bootloader only
135 MTYP_CANUSB = 0xFD, // USB interface
136 MTYP_CANDEV = 0xFC, // Module type for use by developers when developing something new
137};
138
139enum VlcbSprogModuleTypes : unsigned char
140{
141 //
142 // Sprog Module types
143 //
144 MTYP_CANPiSPRG3 = 1, // Pi-SPROG 3 programmer/command station
145 MTYP_CANSPROG3P = 2, // SPROG 3 Plus programmer/command station
146 MTYP_CANSPROG = 3, // CAN SPROG programmer/command station
147 MTYP_CANSBOOST = 4, // System Booster
148 MTYP_CANPiSPRGP = 5, // Pi-SPROG 3 Plus programmer/command station
149 MTYP_CANSOLNOID = 8, // 8-channel (4-pairs) Solenoid I/O module
150 MTYP_CANSERVOIO = 50, // 8-channel Servo I/O module
151 MTYP_CANISB = 100, // CAN ISB Isolated CAN USB Interface
152 MTYP_CANSOLIO = 101, // 8-channel (4-pairs) Solenoid I/O module
153};
154
155enum VlcbRocRailModuleTypes : unsigned char
156{
157 //
158 // Rocrail Module types
159 //
160 MTYP_CANGC1 = 1, // RS232 PC interface
161 MTYP_CANGC2 = 2, // 16 I/O
162 MTYP_CANGC3 = 3, // Command station (derived from cancmd)
163 MTYP_CANGC4 = 4, // 8 channel RFID reader
164 MTYP_CANGC5 = 5, // Cab for fixed panels (derived from cancab)
165 MTYP_CANGC6 = 6, // 4 channel servo controller
166 MTYP_CANGC7 = 7, // Fast clock module
167 MTYP_CANGC1e = 11, // CAN<->Ethernet interface
168};
169
170enum VlcbSpectrumModuleTypes : unsigned char
171{
172 //
173 // Spectrum Engineering Animated Modeller module types
174 //
175 MTYP_AMCTRLR = 1, // Animation controller (firmware derived from cancmd)
176 MTYP_DUALCAB = 2, // Dual cab based on cancab
177};
178
179enum VlcbSysPixieModuleTypes : unsigned char
180{
181 //
182 // SysPixie Module types (Konrad Orlowski)
183 //
184 MTYP_CANPMSense = 1, // Motorised point motor driver with current sense
185};
186
187enum VlcbOpCodes : unsigned char
188{
189 //
190 //
191 // VLCB opcodes list
192 //
193 // Packets with no data bytes
194 //
195 OPC_ACK = 0x00, // General ack
196 OPC_NAK = 0x01, // General nak
197 OPC_HLT = 0x02, // Bus Halt
198 OPC_BON = 0x03, // Bus on
199 OPC_TOF = 0x04, // Track off
200 OPC_TON = 0x05, // Track on
201 OPC_ESTOP = 0x06, // Track stopped
202 OPC_ARST = 0x07, // System reset
203 OPC_RTOF = 0x08, // Request track off
204 OPC_RTON = 0x09, // Request track on
205 OPC_RESTP = 0x0a, // Request emergency stop all
206 OPC_RSTAT = 0x0c, // Request node status
207 OPC_QNN = 0x0d, // Query nodes
208 //
209 OPC_RQNP = 0x10, // Read node parameters
210 OPC_RQMN = 0x11, // Request name of module type
211 //
212 // Packets with 1 data byte
213 //
214 OPC_KLOC = 0x21, // Release engine by handle
215 OPC_QLOC = 0x22, // Query engine by handle
216 OPC_DKEEP = 0x23, // Keep alive for cab
217 //
218 OPC_DBG1 = 0x30, // Debug message with 1 status byte
219 OPC_EXTC = 0x3F, // Extended opcode
220 //
221 // Packets with 2 data bytes
222 //
223 OPC_RLOC = 0x40, // Request session for loco
224 OPC_QCON = 0x41, // Query consist
225 OPC_SNN = 0x42, // Set node number
226 OPC_ALOC = 0X43, // Allocate loco (used to allocate to a shuttle in cancmd)
227 //
228 OPC_STMOD = 0x44, // Set Throttle mode
229 OPC_PCON = 0x45, // Consist loco
230 OPC_KCON = 0x46, // De-consist loco
231 OPC_DSPD = 0x47, // Loco speed/dir
232 OPC_DFLG = 0x48, // Set engine flags
233 OPC_DFNON = 0x49, // Loco function on
234 OPC_DFNOF = 0x4A, // Loco function off
235 OPC_SSTAT = 0x4C, // Service mode status
236 OPC_NNRSM = 0x4F, // Reset to manufacturer's defaults
237 //
238 OPC_RQNN = 0x50, // Request Node number in setup mode
239 OPC_NNREL = 0x51, // Node number release
240 OPC_NNACK = 0x52, // Node number acknowledge
241 OPC_NNLRN = 0x53, // Set learn mode
242 OPC_NNULN = 0x54, // Release learn mode
243 OPC_NNCLR = 0x55, // Clear all events
244 OPC_NNEVN = 0x56, // Read available event slots
245 OPC_NERD = 0x57, // Read all stored events
246 OPC_RQEVN = 0x58, // Read number of stored events
247 OPC_WRACK = 0x59, // Write acknowledge
248 OPC_RQDAT = 0x5A, // Request node data event
249 OPC_RQDDS = 0x5B, // Request short data frame
250 OPC_BOOT = 0x5C, // Put node into boot mode
251 OPC_ENUM = 0x5D, // Force can_id self enumeration
252 OPC_NNRST = 0x5E, // Reset node (as in restart)
253 OPC_EXTC1 = 0x5F, // Extended opcode with 1 data byte
254 //
255 // Packets with 3 data bytes
256 //
257 OPC_DFUN = 0x60, // Set engine functions
258 OPC_GLOC = 0x61, // Get loco (with support for steal/share)
259 OPC_ERR = 0x63, // Command station error
260 OPC_CMDERR = 0x6F, // Errors from nodes during config
261 //
262 OPC_EVNLF = 0x70, // Event slots left response
263 OPC_NVRD = 0x71, // Request read of node variable
264 OPC_NENRD = 0x72, // Request read stored event by index
265 OPC_RQNPN = 0x73, // Request read module parameters
266 OPC_NUMEV = 0x74, // Number of events stored response
267 OPC_CANID = 0x75, // Set canid
268 OPC_MODE = 0x76, // Set mode
269 OPC_RQSD = 0x78, // Request service discovery
270 OPC_EXTC2 = 0x7F, // Extended opcode with 2 data bytes
271 //
272 // Packets with 4 data bytes
273 //
274 OPC_RDCC3 = 0x80, // 3 byte DCC packet
275 OPC_WCVO = 0x82, // Write CV byte Ops mode by handle
276 OPC_WCVB = 0x83, // Write CV bit Ops mode by handle
277 OPC_QCVS = 0x84, // Read CV
278 OPC_PCVS = 0x85, // Report CV
279 OPC_RDGN = 0x87, // Request diagnostics
280 OPC_NVSETRD = 0x8E, // Set NV with Read
281 //
282 OPC_ACON = 0x90, // on event
283 OPC_ACOF = 0x91, // off event
284 OPC_AREQ = 0x92, // Accessory Request event
285 OPC_ARON = 0x93, // Accessory response event on
286 OPC_AROF = 0x94, // Accessory response event off
287 OPC_EVULN = 0x95, // Unlearn event
288 OPC_NVSET = 0x96, // Set a node variable
289 OPC_NVANS = 0x97, // Node variable value response
290 OPC_ASON = 0x98, // Short event on
291 OPC_ASOF = 0x99, // Short event off
292 OPC_ASRQ = 0x9A, // Short Request event
293 OPC_PARAN = 0x9B, // Single node parameter response
294 OPC_REVAL = 0x9C, // Request read of event variable
295 OPC_ARSON = 0x9D, // Accessory short response on event
296 OPC_ARSOF = 0x9E, // Accessory short response off event
297 OPC_EXTC3 = 0x9F, // Extended opcode with 3 data bytes
298 //
299 // Packets with 5 data bytes
300 //
301 OPC_RDCC4 = 0xA0, // 4 byte DCC packet
302 OPC_WCVS = 0xA2, // Write CV service mode
303 OPC_HEARTB = 0xAB, // Heartbeat
304 OPC_SD = 0xAC, // Service discovery response
305 OPC_GRSP = 0xAF, // General response
306 //
307 OPC_ACON1 = 0xB0, // On event with one data byte
308 OPC_ACOF1 = 0xB1, // Off event with one data byte
309 OPC_REQEV = 0xB2, // Read event variable in learn mode
310 OPC_ARON1 = 0xB3, // Accessory on response (1 data byte)
311 OPC_AROF1 = 0xB4, // Accessory off response (1 data byte)
312 OPC_NEVAL = 0xB5, // Event variable by index read response
313 OPC_PNN = 0xB6, // Response to QNN
314 OPC_ASON1 = 0xB8, // Accessory short on with 1 data byte
315 OPC_ASOF1 = 0xB9, // Accessory short off with 1 data byte
316 OPC_ARSON1 = 0xBD, // Short response event on with one data byte
317 OPC_ARSOF1 = 0xBE, // Short response event off with one data byte
318 OPC_EXTC4 = 0xBF, // Extended opcode with 4 data bytes
319 //
320 // Packets with 6 data bytes
321 //
322 OPC_RDCC5 = 0xC0, // 5 byte DCC packet
323 OPC_WCVOA = 0xC1, // Write CV ops mode by address
324 OPC_CABDAT = 0xC2, // Cab data (cab signalling)
325 OPC_DGN = 0xC7, // Diagnostics
326 OPC_FCLK = 0xCF, // Fast clock
327 //
328 OPC_ACON2 = 0xD0, // On event with two data bytes
329 OPC_ACOF2 = 0xD1, // Off event with two data bytes
330 OPC_EVLRN = 0xd2, // Teach event
331 OPC_EVANS = 0xd3, // Event variable read response in learn mode
332 OPC_ARON2 = 0xD4, // Accessory on response
333 OPC_AROF2 = 0xD5, // Accessory off response
334 OPC_ASON2 = 0xD8, // Accessory short on with 2 data bytes
335 OPC_ASOF2 = 0xD9, // Accessory short off with 2 data bytes
336 OPC_ARSON2 = 0xDD, // Short response event on with two data bytes
337 OPC_ARSOF2 = 0xDE, // Short response event off with two data bytes
338 OPC_EXTC5 = 0xDF, // Extended opcode with 5 data bytes
339 //
340 // Packets with 7 data bytes
341 //
342 OPC_RDCC6 = 0xE0, // 6 byte DCC packets
343 OPC_PLOC = 0xE1, // Loco session report
344 OPC_NAME = 0xE2, // Module name response
345 OPC_STAT = 0xE3, // Command station status report
346 OPC_ENACK = 0xE6, // Event Acknowledge
347 OPC_ESD = 0xE7, // Extended service discovery
348 OPC_DTXC = 0xE9, // Long message packet
349 OPC_PARAMS = 0xEF, // Node parameters response
350 //
351 OPC_ACON3 = 0xF0, // On event with 3 data bytes
352 OPC_ACOF3 = 0xF1, // Off event with 3 data bytes
353 OPC_ENRSP = 0xF2, // Read node events response
354 OPC_ARON3 = 0xF3, // Accessory on response
355 OPC_AROF3 = 0xF4, // Accessory off response
356 OPC_EVLRNI = 0xF5, // Teach event using event indexing
357 OPC_ACDAT = 0xF6, // Accessory data event: 5 bytes of node data (eg: RFID)
358 OPC_ARDAT = 0xF7, // Accessory data response
359 OPC_ASON3 = 0xF8, // Accessory short on with 3 data bytes
360 OPC_ASOF3 = 0xF9, // Accessory short off with 3 data bytes
361 OPC_DDES = 0xFA, // Short data frame aka device data event (device id plus 5 data bytes)
362 OPC_DDRS = 0xFB, // Short data frame response aka device data response
363 OPC_DDWS = 0xFC, // Device Data Write Short
364 OPC_ARSON3 = 0xFD, // Short response event on with 3 data bytes
365 OPC_ARSOF3 = 0xFE, // Short response event off with 3 data bytes
366 OPC_EXTC6 = 0xFF, // Extended opcode with 6 data byes
367 //
368 // Opcodes that are proposed and/or agreed but not yet in the current published specification
369 //
370 OPC_VCVS = 0xA4, // Verify CV service mode - used for CV read hints
371};
372
373enum VlcbStmodModes : unsigned char
374{
375 //
376 //
377 // Modes for STMOD
378 //
384};
385
400
401enum VlcbSStats : unsigned char
402{
403 //
404 // Status codes for OPC_SSTAT
405 //
411};
412
413enum VlcbCmdErrs : unsigned char
414{
415 //
416 // Error codes for OPC_CMDERR
417 //
418 CMDERR_INV_CMD = 1, // Invalid command
419 CMDERR_NOT_LRN = 2, // Not in learn mode
420 CMDERR_NOT_SETUP = 3, // Not in setup mode
421 CMDERR_TOO_MANY_EVENTS = 4, // Too many events
422 CMDERR_NO_EV = 5, // No EV
423 CMDERR_INV_EV_IDX = 6, // Invalid EV index
424 CMDERR_INVALID_EVENT = 7, // Invalid event
425 CMDERR_INV_EN_IDX = 8, // now reserved
426 CMDERR_INV_PARAM_IDX = 9, // Invalid param index
427 CMDERR_INV_NV_IDX = 10, // Invalid NV index
428 CMDERR_INV_EV_VALUE = 11, // Invalid EV value
429 CMDERR_INV_NV_VALUE = 12, // Invalid NV value
430 //
431 // Additional error codes proposed and/or agreed but not yet in the current published specification
432 //
433 CMDERR_LRN_OTHER = 13, // Sent when module in learn mode sees NNLRN for different module (also exits learn mode)
434 //
435};
436
437enum VlcbGrspCodes : unsigned char
438{
439 //
440 // GRSP codes
441 //
442 GRSP_OK = 0, // Success
443 GRSP_UNKNOWN_NVM_TYPE = 254, // Unknown non volatile memory type
444 GRSP_INVALID_DIAGNOSTIC = 253, // Invalid diagnostic
445 GRSP_INVALID_SERVICE = 252, // Invalid service
446 GRSP_INVALID_COMMAND_PARAMETER = 251, // Invalid parameter in command
447 GRSP_INVALID_MODE = 250, // Invalid Mode
448};
449
450enum VlcbCabSigAspect0 : unsigned char
451{
452 //
453 // Sub opcodes for OPC_CABDAT
454 //
456};
457
458enum VlcbCabSigAspect1 : unsigned char
459{
460 //
461 // Aspect codes for CDAT_CABSIG
462 //
463 // First aspect byte
464 //
469 SASP_CALLON = 4, // Set bit 2 for call-on - main aspect will usually be at danger
470 SASP_THEATRE = 8, // Set bit 3 to 0 for upper nibble is feather lcoation, set 1 for upper nibble is theatre code
471};
472
473enum VlcbCabSigAspect2 : unsigned char
474{
475 //
476 // Aspect codes for CDAT_CABSIG
477 //
478 // Second Aspect byte
479 //
480 SASP_LIT = 0, // Set bit 0 to indicate lit
481 SASP_LUNAR = 1, // Set bit 1 for lunar indication
482 //
483 // Remaining bits in second aspect byte yet to be defined - can be used for other signalling systems
484};
485
486enum VlcbServiceTypes : unsigned char
487{
488 //
489 // VLCB Service Types
490 //
491 SERVICE_ID_NONE = 0, // Not a real service. Will not be shown in list of services requested by RQSD.
492 SERVICE_ID_MNS = 1, // The minimum node service. All modules must implement this.
493 SERVICE_ID_NV = 2, // The NV service.
494 SERVICE_ID_CAN = 3, // CAN service. Deals with CANID enumeration.
495 SERVICE_ID_OLD_TEACH = 4, // Old (CBUS) event teaching service.
496 SERVICE_ID_PRODUCER = 5, // Event producer service.
497 SERVICE_ID_CONSUMER = 6, // Event comsumer service.
498 SERVICE_ID_TEACH = 7, // New event teaching service.
499 SERVICE_ID_CONSUME_OWN_EVENTS = 8, // Consume own events service.
500 SERVICE_ID_EVENTACK = 9, // Event acknowledge service. Useful for debugging event configuration.
501 SERVICE_ID_BOOT = 10, // FCU/PIC bootloader service.
502 SERVICE_ID_STREAMING = 17, // Streaming (Long Messages) service.
503 // Use IDs 240 and higher for services in development that do not yet have a service specification.
504};
505
506enum VlcbParams : unsigned char
507{
508 //
509 //
510 // Parameter index numbers (readable by OPC_RQNPN, returned in OPC_PARAN)
511 // Index numbers count from 1, subtract 1 for offset into parameter block
512 // Note that RQNPN with index 0 returns the parameter count
513 //
514 PAR_NUM = 0, // Number of parameters
515 PAR_MANU = 1, // Manufacturer id
516 PAR_MINVER = 2, // Minor version letter
517 PAR_MTYP = 3, // Module type code
518 PAR_EVTNUM = 4, // Number of events supported
519 PAR_EVNUM = 5, // Event variables per event
520 PAR_NVNUM = 6, // Number of Node variables
521 PAR_MAJVER = 7, // Major version number
522 PAR_FLAGS = 8, // Node flags
523 PAR_CPUID = 9, // Processor type
524 PAR_BUSTYPE = 10, // Bus type
525 PAR_LOAD = 11, // load address, 4 bytes
526 PAR_CPUMID = 15, // CPU manufacturer's id as read from the chip config space, 4 bytes (note - read from cpu at runtime, so not included in checksum)
527 PAR_CPUMAN = 19, // CPU manufacturer code
528 PAR_BETA = 20, // Beta revision (numeric), or 0 if release
529};
530
531enum VlcbParamOffsetsPic : unsigned char
532{
533 //
534 // Offsets to other values stored at the top of the parameter block.
535 // These are not returned by opcode PARAN, but are present in the hex
536 // file for FCU.
537 //
538 PAR_COUNT = 0x18, // Number of parameters implemented
539 PAR_NAME = 0x1A, // 4 byte Address of Module type name, up to 8 characters null terminated
540 PAR_CKSUM = 0x1E, // Checksum word at end of parameters
541};
542
543enum VlcbParamFlags : unsigned char
544{
545 //
546 // Flags in PAR_FLAGS
547 //
548 PF_NOEVENTS = 0, // Module doesn't support events
549 PF_CONSUMER = 1, // Module is a consumer of events
550 PF_PRODUCER = 2, // Module is a producer of events
551 PF_COMBI = 3, // Module is both a consumer and producer of events
552 PF_FLiM = 4, // Module is in FLiM (CBUS)
553 PF_NORMAL = 4, // Module is in Normal mode (VLCB)
554 PF_BOOT = 8, // Module supports the FCU bootloader protocol
555 PF_COE = 16, // Module can consume its own events
556 PF_LRN = 32, // Module is in learn mode
557 PF_VLCB = 64, // Module is VLCB compatible
558 PF_SD = 64, // Module supports Service Discovery (Deprecated in favour of PF_VLCB.)
559};
560
561enum VlcbModeParams : unsigned char
562{
563 //
564 // Parameters to the MODE op-code
565 //
566 // Exclusive modes
567 MODE_UNINITIALISED = 0xFF, // Uninitialised / factory settings
568 MODE_SETUP = 0, // Set up mode
569 MODE_NORMAL = 1, // Normal operation mode
570 // Event Teaching Service modes
571 MODE_LEARN_ON = 0x08, // Turn on learn mode
572 MODE_LEARN_OFF = 0x09, // Turn off learn mode
573 // Event Acknowledgment Service modes
574 MODE_EVENT_ACK_ON = 0x0A, // Turn on event acknowledgements
575 MODE_EVENT_ACK_OFF = 0x0B, // Turn off event acknowledgements
576 // Minimum Node Service modes
577 MODE_HEARTBEAT_ON = 0x0C, // Turn on heartbeat
578 MODE_HEARTBEAT_OFF = 0x0D, // Turn off heartbeat
579 // Boot modes
580 MODE_BOOT = 0x0E, // PIC Boot loader mode
581 // FCU Compatability
582 MODE_FCUCOMPAT_ON = 0x10, // Turn on FCU compatibility
583 MODE_FCUCOMPAT_OFF = 0x11, // Turn off FCU compatibility
584};
585
586enum VlcbBusTypes : unsigned char
587{
588 //
589 // BUS type that module is connected to
590 //
595};
596
597enum VlcbProcessorManufacturers : unsigned char
598{
599 //
600 // Processor manufacturer codes
601 //
605};
606
607enum VlcbMicrochipProcessors : unsigned char
608{
609 //
610 // Microchip Processor type codes (identifies to FCU for bootload compatibility)
611 //
624 //
637 //
647};
648
649enum VlcbArmProcessors : unsigned char
650{
651 //
652 // ARM Processor type codes (identifies to FCU for bootload compatibility)
653 //
654 ARM1176JZF_S = 1, // As used in Raspberry Pi
655 ARMCortex_A7 = 2, // As Used in Raspberry Pi 2
656 ARMCortex_A53 = 3, // As used in Raspberry Pi 3
657};
658
659enum VlcbCanHardware : unsigned char
660{
661 //
662 // CAN engine type codes
663 //
664 CAN_HW_NOT_SPECIFIED = 0x00, // Not set
665 CAN_HW_PIC_ECAN = 0x01, // MICROCHIP PIC ECAN
666 CAN_HW_PIC_CAN_2_0 = 0x02, // MICROCHIP PIC CAN 2.0
667 CAN_HW_PIC_CAN_FD = 0x03, // MICROCHIP PIC CAN FD
668 CAN_HW_MCP2515 = 0x04, // MICROCHIP 2515
669 CAN_HW_MCP2518 = 0x05, // MICROCHIP 2518
670 CAN_HW_ESP32_TWAI = 0x06, // ESP32 Two Wire Automotive Interface
671 CAN_HW_SAM3X8E = 0x07, // Atmel Cortex M3
672 CAN_HW_RP2040_PIO = 0x08, // RP2040 using PIO
673 CAN_HW_SERIAL = 0x09, // Serial using GridConnect
674};
675
676enum VlcbProducerEvUsage : unsigned char
677{
678 //
679 // Producer service EV usage
680 //
681 PRODUCER_EV_NOT_SPECIFIED = 0x00, // Not specified
682 PRODUCER_EV_HAPPENING = 0x01, // Happenings
683 PRODUCER_EV_SLOTS = 0x02, // Slots
684};
685
686enum VlcbConsumerEvUsage : unsigned char
687{
688 //
689 // Consumer service EV usage
690 //
691 CONSUMER_EV_NOT_SPECIFIED = 0x00, // Not specified
692 CONSUMER_EV_ACTIONS = 0x01, // Actions
693 CONSUMER_EV_SLOTS = 0x02, // Slots
694};
695
696enum VlcbBootloaderType : unsigned char
697{
698 //
699 // Boot service reports of the module bootloader type
700 //
701 BL_TYPE_Unknown = 0, // Unknown or not specified
702 BL_TYPE_MikeBolton = 1, // Original bootloader from Mike Bolton, Roger Healey, Pete Brownlow and others written in PIC assembler
703 BL_TYPE_KonradOrlowski = 2, // Konrad (syspixie) bootloader written in XC8
704 BL_TYPE_IanHogg = 3, // Ian Hogg bootloader written in XC8
705};
706
707enum VlcbCANID : unsigned char
708{
709 //
710 // CANIDs allocated as fixed values
711 // Note that all new modules, or new firmware for existing modules, should obtain a CANID using self enumeration and implement
712 // automatic CANID conflict resolution, so that eventually we can remove the need for fixed CANIDs
713 //
714 CANID_CANCMD = 0x72, // (114) Fixed CANID for CANCMD or CANCSB
715 CANID_CANUSB = 0x7C, // (124) Fixed CANID for CANUSB, although in current firmware it may just use the CANID from the sending software
716 CANID_FCU = 0x7D, // (125) Default CANID used by FCU. Can be changed in settings. Note some interface modules may substitute their own CANID.
717 CANID_JMRI = 0x7E, // (126) Default CANID used by JMRI. Can be changed in connection preferences. Note some interface modules may substitute their own CANID.
718 CANID_CANEther = 0x7F, // (127) Default fixed CANID for CANEther (can be changed by modifying NV2). Note CANEther inserts its own CANID on all packets transmitted on CAN
719};
720
721#ifdef __cplusplus
722}
723#endif
724
725#endif // __VLCBDEFS
726
VlcbCabSigAspect1
Definition vlcbdefs.hpp:459
@ SASP_PRELIM_CAUTION
Definition vlcbdefs.hpp:467
@ SASP_DANGER
Definition vlcbdefs.hpp:465
@ SASP_CALLON
Definition vlcbdefs.hpp:469
@ SASP_THEATRE
Definition vlcbdefs.hpp:470
@ SASP_PROCEED
Definition vlcbdefs.hpp:468
@ SASP_CAUTION
Definition vlcbdefs.hpp:466
VlcbCanHardware
Definition vlcbdefs.hpp:660
@ CAN_HW_SAM3X8E
Definition vlcbdefs.hpp:671
@ CAN_HW_MCP2518
Definition vlcbdefs.hpp:669
@ CAN_HW_RP2040_PIO
Definition vlcbdefs.hpp:672
@ CAN_HW_PIC_CAN_2_0
Definition vlcbdefs.hpp:666
@ CAN_HW_NOT_SPECIFIED
Definition vlcbdefs.hpp:664
@ CAN_HW_SERIAL
Definition vlcbdefs.hpp:673
@ CAN_HW_PIC_CAN_FD
Definition vlcbdefs.hpp:667
@ CAN_HW_ESP32_TWAI
Definition vlcbdefs.hpp:670
@ CAN_HW_PIC_ECAN
Definition vlcbdefs.hpp:665
@ CAN_HW_MCP2515
Definition vlcbdefs.hpp:668
VlcbMicrochipProcessors
Definition vlcbdefs.hpp:608
@ P18F4685
Definition vlcbdefs.hpp:623
@ P18F26K80
Definition vlcbdefs.hpp:627
@ P32MX575F512
Definition vlcbdefs.hpp:642
@ P18F2685
Definition vlcbdefs.hpp:622
@ P18F4580
Definition vlcbdefs.hpp:615
@ P18F25K80
Definition vlcbdefs.hpp:625
@ P32MX795F512
Definition vlcbdefs.hpp:646
@ P32MX764F128
Definition vlcbdefs.hpp:643
@ P32MX575F256
Definition vlcbdefs.hpp:641
@ P18F65K80
Definition vlcbdefs.hpp:629
@ P18F4682
Definition vlcbdefs.hpp:621
@ P18F4680
Definition vlcbdefs.hpp:619
@ P18F14K22
Definition vlcbdefs.hpp:636
@ P18F4585
Definition vlcbdefs.hpp:617
@ P18F27Q84
Definition vlcbdefs.hpp:633
@ P32MX534F064
Definition vlcbdefs.hpp:638
@ P18F2585
Definition vlcbdefs.hpp:616
@ P32MX564F064
Definition vlcbdefs.hpp:639
@ P18F27Q83
Definition vlcbdefs.hpp:635
@ P18F47Q84
Definition vlcbdefs.hpp:634
@ P18F2680
Definition vlcbdefs.hpp:618
@ P18F2580
Definition vlcbdefs.hpp:614
@ P18F26K83
Definition vlcbdefs.hpp:632
@ P18F4480
Definition vlcbdefs.hpp:613
@ P18F25K83
Definition vlcbdefs.hpp:631
@ P32MX564F128
Definition vlcbdefs.hpp:640
@ P32MX775F512
Definition vlcbdefs.hpp:645
@ P18F2480
Definition vlcbdefs.hpp:612
@ P18F2682
Definition vlcbdefs.hpp:620
@ P18F45K80
Definition vlcbdefs.hpp:626
@ P18F46K80
Definition vlcbdefs.hpp:628
@ P32MX775F256
Definition vlcbdefs.hpp:644
@ P18F66K80
Definition vlcbdefs.hpp:630
VlcbCANID
Definition vlcbdefs.hpp:708
@ CANID_CANUSB
Definition vlcbdefs.hpp:715
@ CANID_CANCMD
Definition vlcbdefs.hpp:714
@ CANID_FCU
Definition vlcbdefs.hpp:716
@ CANID_JMRI
Definition vlcbdefs.hpp:717
@ CANID_CANEther
Definition vlcbdefs.hpp:718
VlcbProcessorManufacturers
Definition vlcbdefs.hpp:598
@ CPUM_MICROCHIP
Definition vlcbdefs.hpp:602
@ CPUM_ATMEL
Definition vlcbdefs.hpp:603
@ CPUM_ARM
Definition vlcbdefs.hpp:604
VlcbArmProcessors
Definition vlcbdefs.hpp:650
@ ARMCortex_A7
Definition vlcbdefs.hpp:655
@ ARM1176JZF_S
Definition vlcbdefs.hpp:654
@ ARMCortex_A53
Definition vlcbdefs.hpp:656
VlcbProducerEvUsage
Definition vlcbdefs.hpp:677
@ PRODUCER_EV_SLOTS
Definition vlcbdefs.hpp:683
@ PRODUCER_EV_NOT_SPECIFIED
Definition vlcbdefs.hpp:681
@ PRODUCER_EV_HAPPENING
Definition vlcbdefs.hpp:682
VlcbMergModuleTypes
Definition vlcbdefs.hpp:30
@ MTYP_CANCSB
Definition vlcbdefs.hpp:93
@ MTYP_CANCMDB
Definition vlcbdefs.hpp:121
@ MTYP_CANLED64
Definition vlcbdefs.hpp:45
@ MTYP_CAN4IN4OUT
Definition vlcbdefs.hpp:120
@ MTYP_CANACE3C
Definition vlcbdefs.hpp:68
@ MTYP_CANACE16C
Definition vlcbdefs.hpp:60
@ MTYP_CANPIXEL
Definition vlcbdefs.hpp:122
@ MTYP_CANXIO
Definition vlcbdefs.hpp:102
@ MTYP_CANSIG64
Definition vlcbdefs.hpp:64
@ MTYP_CANXMAS
Definition vlcbdefs.hpp:106
@ MTYP_CANTTCB
Definition vlcbdefs.hpp:53
@ MTYP_CANBIP
Definition vlcbdefs.hpp:73
@ MTYP_CANSINP
Definition vlcbdefs.hpp:114
@ MTYP_CANPiWi
Definition vlcbdefs.hpp:84
@ MTYP_CANMIO
Definition vlcbdefs.hpp:70
@ MTYP_CANACC8
Definition vlcbdefs.hpp:41
@ MTYP_CANPiNODE
Definition vlcbdefs.hpp:96
@ MTYP_CANIO8
Definition vlcbdefs.hpp:61
@ MTYP_CANDISP
Definition vlcbdefs.hpp:97
@ MTYP_CANINP
Definition vlcbdefs.hpp:100
@ MTYP_CANTTCA
Definition vlcbdefs.hpp:52
@ MTYP_CANHS
Definition vlcbdefs.hpp:54
@ MTYP_CANSOUT
Definition vlcbdefs.hpp:115
@ MTYP_CANACE16CMIO
Definition vlcbdefs.hpp:95
@ MTYP_CANMAG
Definition vlcbdefs.hpp:94
@ MTYP_CANTOTI
Definition vlcbdefs.hpp:55
@ MTYP_CANRC522
Definition vlcbdefs.hpp:99
@ MTYP_CANACE8MIO
Definition vlcbdefs.hpp:71
@ MTYP_CANRPI
Definition vlcbdefs.hpp:51
@ MTYP_CANSBIP
Definition vlcbdefs.hpp:116
@ MTYP_CANTC4
Definition vlcbdefs.hpp:59
@ MTYP_CANDEV
Definition vlcbdefs.hpp:136
@ MTYP_CANACC5
Definition vlcbdefs.hpp:40
@ MTYP_CANARGB
Definition vlcbdefs.hpp:125
@ MTYP_CANCMD
Definition vlcbdefs.hpp:48
@ MTYP_CANCDU_U
Definition vlcbdefs.hpp:126
@ MTYP_CANUSB
Definition vlcbdefs.hpp:135
@ MTYP_CANASTOP
Definition vlcbdefs.hpp:92
@ MTYP_CANSERVO
Definition vlcbdefs.hpp:49
@ MTYP_CANELEV
Definition vlcbdefs.hpp:86
@ MTYP_CANCOMPUTE
Definition vlcbdefs.hpp:98
@ MTYP_CANSOL
Definition vlcbdefs.hpp:72
@ MTYP_VLCB
Definition vlcbdefs.hpp:127
@ MTYP_CANACC4
Definition vlcbdefs.hpp:39
@ MTYP_CANCMDDC
Definition vlcbdefs.hpp:108
@ MTYP_EMPTY
Definition vlcbdefs.hpp:134
@ MTYP_CANSVOSET
Definition vlcbdefs.hpp:107
@ MTYP_CANWiFi
Definition vlcbdefs.hpp:78
@ MTYP_CANACE3
Definition vlcbdefs.hpp:42
@ MTYP_CANACE8C
Definition vlcbdefs.hpp:43
@ MTYP_CANRFID
Definition vlcbdefs.hpp:58
@ MTYP_CANDCATC
Definition vlcbdefs.hpp:112
@ MTYP_CANACC4_2
Definition vlcbdefs.hpp:46
@ MTYP_CANPAN
Definition vlcbdefs.hpp:67
@ MTYP_CANGATE
Definition vlcbdefs.hpp:113
@ MTYP_CANMIO_INP
Definition vlcbdefs.hpp:89
@ MTYP_CANBIP_OUT
Definition vlcbdefs.hpp:91
@ MTYP_CAN8I8O
Definition vlcbdefs.hpp:56
@ MTYP_CANSERVO8C
Definition vlcbdefs.hpp:57
@ MTYP_CAN_SW
Definition vlcbdefs.hpp:133
@ MTYP_CANBUFFER
Definition vlcbdefs.hpp:117
@ MTYP_CANSCAN
Definition vlcbdefs.hpp:87
@ MTYP_CANFTT
Definition vlcbdefs.hpp:79
@ MTYP_CANCOND8C
Definition vlcbdefs.hpp:66
@ MTYP_CANTCHNDST
Definition vlcbdefs.hpp:81
@ MTYP_WiCAB
Definition vlcbdefs.hpp:77
@ MTYP_CANASIGNAL
Definition vlcbdefs.hpp:110
@ MTYP_CANMP3
Definition vlcbdefs.hpp:105
@ MTYP_CANEther
Definition vlcbdefs.hpp:63
@ MTYP_CANSMARTTD
Definition vlcbdefs.hpp:124
@ MTYP_CANRFID8
Definition vlcbdefs.hpp:82
@ MTYP_CANHNDST
Definition vlcbdefs.hpp:80
@ MTYP_CANCABDC
Definition vlcbdefs.hpp:103
@ MTYP_CANRCOM
Definition vlcbdefs.hpp:104
@ MTYP_CANLEVER
Definition vlcbdefs.hpp:118
@ MTYP_CANLED
Definition vlcbdefs.hpp:44
@ MTYP_CANSIG8
Definition vlcbdefs.hpp:65
@ MTYP_CAN4DC
Definition vlcbdefs.hpp:85
@ MTYP_CANBC
Definition vlcbdefs.hpp:50
@ MTYP_CANACC4CDU
Definition vlcbdefs.hpp:75
@ MTYP_CANCDU
Definition vlcbdefs.hpp:74
@ MTYP_CANCABPE
Definition vlcbdefs.hpp:123
@ MTYP_CANWiBase
Definition vlcbdefs.hpp:76
@ MTYP_SLIM
Definition vlcbdefs.hpp:38
@ MTYP_CANTEXT
Definition vlcbdefs.hpp:109
@ MTYP_CANCAB
Definition vlcbdefs.hpp:47
@ MTYP_CANMIO_OUT
Definition vlcbdefs.hpp:90
@ MTYP_CANPanel
Definition vlcbdefs.hpp:69
@ MTYP_CANmchRFID
Definition vlcbdefs.hpp:83
@ MTYP_CANMIO_SVO
Definition vlcbdefs.hpp:88
@ MTYP_CANSHIELD
Definition vlcbdefs.hpp:119
@ MTYP_CANSLIDER
Definition vlcbdefs.hpp:111
@ MTYP_CANSNDX
Definition vlcbdefs.hpp:62
@ MTYP_CANOUT
Definition vlcbdefs.hpp:101
VlcbSysPixieModuleTypes
Definition vlcbdefs.hpp:180
@ MTYP_CANPMSense
Definition vlcbdefs.hpp:184
VlcbStmodModes
Definition vlcbdefs.hpp:374
@ TMOD_SPD_28I
Definition vlcbdefs.hpp:382
@ TMOD_SPD_28
Definition vlcbdefs.hpp:383
@ TMOD_SPD_14
Definition vlcbdefs.hpp:381
@ TMOD_SPD_128
Definition vlcbdefs.hpp:380
@ TMOD_SPD_MASK
Definition vlcbdefs.hpp:379
VlcbParams
Definition vlcbdefs.hpp:507
@ PAR_BUSTYPE
Definition vlcbdefs.hpp:524
@ PAR_BETA
Definition vlcbdefs.hpp:528
@ PAR_CPUID
Definition vlcbdefs.hpp:523
@ PAR_MANU
Definition vlcbdefs.hpp:515
@ PAR_CPUMID
Definition vlcbdefs.hpp:526
@ PAR_FLAGS
Definition vlcbdefs.hpp:522
@ PAR_MINVER
Definition vlcbdefs.hpp:516
@ PAR_EVTNUM
Definition vlcbdefs.hpp:518
@ PAR_NVNUM
Definition vlcbdefs.hpp:520
@ PAR_CPUMAN
Definition vlcbdefs.hpp:527
@ PAR_EVNUM
Definition vlcbdefs.hpp:519
@ PAR_MTYP
Definition vlcbdefs.hpp:517
@ PAR_MAJVER
Definition vlcbdefs.hpp:521
@ PAR_LOAD
Definition vlcbdefs.hpp:525
@ PAR_NUM
Definition vlcbdefs.hpp:514
VlcbModeParams
Definition vlcbdefs.hpp:562
@ MODE_FCUCOMPAT_ON
Definition vlcbdefs.hpp:582
@ MODE_UNINITIALISED
Definition vlcbdefs.hpp:567
@ MODE_HEARTBEAT_OFF
Definition vlcbdefs.hpp:578
@ MODE_FCUCOMPAT_OFF
Definition vlcbdefs.hpp:583
@ MODE_LEARN_ON
Definition vlcbdefs.hpp:571
@ MODE_SETUP
Definition vlcbdefs.hpp:568
@ MODE_LEARN_OFF
Definition vlcbdefs.hpp:572
@ MODE_EVENT_ACK_OFF
Definition vlcbdefs.hpp:575
@ MODE_BOOT
Definition vlcbdefs.hpp:580
@ MODE_HEARTBEAT_ON
Definition vlcbdefs.hpp:577
@ MODE_EVENT_ACK_ON
Definition vlcbdefs.hpp:574
@ MODE_NORMAL
Definition vlcbdefs.hpp:569
VlcbParamOffsetsPic
Definition vlcbdefs.hpp:532
@ PAR_CKSUM
Definition vlcbdefs.hpp:540
@ PAR_COUNT
Definition vlcbdefs.hpp:538
@ PAR_NAME
Definition vlcbdefs.hpp:539
VlcbSStats
Definition vlcbdefs.hpp:402
@ SSTAT_OVLD
Definition vlcbdefs.hpp:407
@ SSTAT_CV_ERROR
Definition vlcbdefs.hpp:410
@ SSTAT_NO_ACK
Definition vlcbdefs.hpp:406
@ SSTAT_WR_ACK
Definition vlcbdefs.hpp:408
@ SSTAT_BUSY
Definition vlcbdefs.hpp:409
VlcbManufacturer
Definition vlcbdefs.hpp:16
@ MANU_SPROG
Definition vlcbdefs.hpp:22
@ MANU_ROCRAIL
Definition vlcbdefs.hpp:23
@ MANU_RME
Definition vlcbdefs.hpp:26
@ MANU_SPECTRUM
Definition vlcbdefs.hpp:24
@ MANU_DEV
Definition vlcbdefs.hpp:20
@ MANU_SYSPIXIE
Definition vlcbdefs.hpp:25
@ MANU_MERG
Definition vlcbdefs.hpp:21
VlcbGrspCodes
Definition vlcbdefs.hpp:438
@ GRSP_INVALID_DIAGNOSTIC
Definition vlcbdefs.hpp:444
@ GRSP_OK
Definition vlcbdefs.hpp:442
@ GRSP_INVALID_SERVICE
Definition vlcbdefs.hpp:445
@ GRSP_UNKNOWN_NVM_TYPE
Definition vlcbdefs.hpp:443
@ GRSP_INVALID_COMMAND_PARAMETER
Definition vlcbdefs.hpp:446
@ GRSP_INVALID_MODE
Definition vlcbdefs.hpp:447
VlcbCabSigAspect2
Definition vlcbdefs.hpp:474
@ SASP_LIT
Definition vlcbdefs.hpp:480
@ SASP_LUNAR
Definition vlcbdefs.hpp:481
VlcbParamFlags
Definition vlcbdefs.hpp:544
@ PF_PRODUCER
Definition vlcbdefs.hpp:550
@ PF_SD
Definition vlcbdefs.hpp:558
@ PF_NOEVENTS
Definition vlcbdefs.hpp:548
@ PF_COMBI
Definition vlcbdefs.hpp:551
@ PF_NORMAL
Definition vlcbdefs.hpp:553
@ PF_VLCB
Definition vlcbdefs.hpp:557
@ PF_BOOT
Definition vlcbdefs.hpp:554
@ PF_CONSUMER
Definition vlcbdefs.hpp:549
@ PF_LRN
Definition vlcbdefs.hpp:556
@ PF_COE
Definition vlcbdefs.hpp:555
@ PF_FLiM
Definition vlcbdefs.hpp:552
VlcbCabSigAspect0
Definition vlcbdefs.hpp:451
@ CDAT_CABSIG
Definition vlcbdefs.hpp:455
VlcbCmdErrs
Definition vlcbdefs.hpp:414
@ CMDERR_INV_EV_IDX
Definition vlcbdefs.hpp:423
@ CMDERR_INV_EN_IDX
Definition vlcbdefs.hpp:425
@ CMDERR_NOT_LRN
Definition vlcbdefs.hpp:419
@ CMDERR_INV_EV_VALUE
Definition vlcbdefs.hpp:428
@ CMDERR_NOT_SETUP
Definition vlcbdefs.hpp:420
@ CMDERR_NO_EV
Definition vlcbdefs.hpp:422
@ CMDERR_TOO_MANY_EVENTS
Definition vlcbdefs.hpp:421
@ CMDERR_INV_NV_IDX
Definition vlcbdefs.hpp:427
@ CMDERR_INVALID_EVENT
Definition vlcbdefs.hpp:424
@ CMDERR_INV_NV_VALUE
Definition vlcbdefs.hpp:429
@ CMDERR_INV_CMD
Definition vlcbdefs.hpp:418
@ CMDERR_INV_PARAM_IDX
Definition vlcbdefs.hpp:426
@ CMDERR_LRN_OTHER
Definition vlcbdefs.hpp:433
VlcbRocRailModuleTypes
Definition vlcbdefs.hpp:156
@ MTYP_CANGC3
Definition vlcbdefs.hpp:162
@ MTYP_CANGC4
Definition vlcbdefs.hpp:163
@ MTYP_CANGC5
Definition vlcbdefs.hpp:164
@ MTYP_CANGC1
Definition vlcbdefs.hpp:160
@ MTYP_CANGC1e
Definition vlcbdefs.hpp:167
@ MTYP_CANGC6
Definition vlcbdefs.hpp:165
@ MTYP_CANGC7
Definition vlcbdefs.hpp:166
@ MTYP_CANGC2
Definition vlcbdefs.hpp:161
VlcbSprogModuleTypes
Definition vlcbdefs.hpp:140
@ MTYP_CANSERVOIO
Definition vlcbdefs.hpp:150
@ MTYP_CANSBOOST
Definition vlcbdefs.hpp:147
@ MTYP_CANPiSPRG3
Definition vlcbdefs.hpp:144
@ MTYP_CANSOLIO
Definition vlcbdefs.hpp:152
@ MTYP_CANSOLNOID
Definition vlcbdefs.hpp:149
@ MTYP_CANSPROG3P
Definition vlcbdefs.hpp:145
@ MTYP_CANSPROG
Definition vlcbdefs.hpp:146
@ MTYP_CANPiSPRGP
Definition vlcbdefs.hpp:148
@ MTYP_CANISB
Definition vlcbdefs.hpp:151
VlcbBusTypes
Definition vlcbdefs.hpp:587
@ PB_ETH
Definition vlcbdefs.hpp:592
@ PB_USB
Definition vlcbdefs.hpp:594
@ PB_CAN
Definition vlcbdefs.hpp:591
@ PB_MIWI
Definition vlcbdefs.hpp:593
VlcbOpCodes
Definition vlcbdefs.hpp:188
@ OPC_ACON
Definition vlcbdefs.hpp:282
@ OPC_NVSETRD
Definition vlcbdefs.hpp:280
@ OPC_EVANS
Definition vlcbdefs.hpp:331
@ OPC_EVLRNI
Definition vlcbdefs.hpp:356
@ OPC_DKEEP
Definition vlcbdefs.hpp:216
@ OPC_PCON
Definition vlcbdefs.hpp:229
@ OPC_ARON3
Definition vlcbdefs.hpp:354
@ OPC_PLOC
Definition vlcbdefs.hpp:343
@ OPC_RTON
Definition vlcbdefs.hpp:204
@ OPC_EXTC
Definition vlcbdefs.hpp:219
@ OPC_DDES
Definition vlcbdefs.hpp:361
@ OPC_DFNON
Definition vlcbdefs.hpp:233
@ OPC_ACON3
Definition vlcbdefs.hpp:351
@ OPC_DTXC
Definition vlcbdefs.hpp:348
@ OPC_ARON2
Definition vlcbdefs.hpp:332
@ OPC_RDCC5
Definition vlcbdefs.hpp:322
@ OPC_TOF
Definition vlcbdefs.hpp:199
@ OPC_RTOF
Definition vlcbdefs.hpp:203
@ OPC_CMDERR
Definition vlcbdefs.hpp:260
@ OPC_HEARTB
Definition vlcbdefs.hpp:303
@ OPC_NAME
Definition vlcbdefs.hpp:344
@ OPC_DGN
Definition vlcbdefs.hpp:325
@ OPC_ARSON1
Definition vlcbdefs.hpp:316
@ OPC_NUMEV
Definition vlcbdefs.hpp:266
@ OPC_ARON
Definition vlcbdefs.hpp:285
@ OPC_ASOF
Definition vlcbdefs.hpp:291
@ OPC_MODE
Definition vlcbdefs.hpp:268
@ OPC_ACOF2
Definition vlcbdefs.hpp:329
@ OPC_EXTC1
Definition vlcbdefs.hpp:253
@ OPC_WCVO
Definition vlcbdefs.hpp:275
@ OPC_VCVS
Definition vlcbdefs.hpp:370
@ OPC_AROF2
Definition vlcbdefs.hpp:333
@ OPC_DFUN
Definition vlcbdefs.hpp:257
@ OPC_CANID
Definition vlcbdefs.hpp:267
@ OPC_RQMN
Definition vlcbdefs.hpp:210
@ OPC_REQEV
Definition vlcbdefs.hpp:309
@ OPC_NENRD
Definition vlcbdefs.hpp:264
@ OPC_RDCC4
Definition vlcbdefs.hpp:301
@ OPC_PNN
Definition vlcbdefs.hpp:313
@ OPC_ACOF1
Definition vlcbdefs.hpp:308
@ OPC_ACK
Definition vlcbdefs.hpp:195
@ OPC_DDWS
Definition vlcbdefs.hpp:363
@ OPC_ENRSP
Definition vlcbdefs.hpp:353
@ OPC_EVLRN
Definition vlcbdefs.hpp:330
@ OPC_ARSON3
Definition vlcbdefs.hpp:364
@ OPC_ACDAT
Definition vlcbdefs.hpp:357
@ OPC_DSPD
Definition vlcbdefs.hpp:231
@ OPC_NERD
Definition vlcbdefs.hpp:245
@ OPC_RDGN
Definition vlcbdefs.hpp:279
@ OPC_HLT
Definition vlcbdefs.hpp:197
@ OPC_NNREL
Definition vlcbdefs.hpp:239
@ OPC_NNULN
Definition vlcbdefs.hpp:242
@ OPC_GRSP
Definition vlcbdefs.hpp:305
@ OPC_ACON1
Definition vlcbdefs.hpp:307
@ OPC_RQEVN
Definition vlcbdefs.hpp:246
@ OPC_QLOC
Definition vlcbdefs.hpp:215
@ OPC_SD
Definition vlcbdefs.hpp:304
@ OPC_NNRSM
Definition vlcbdefs.hpp:236
@ OPC_ERR
Definition vlcbdefs.hpp:259
@ OPC_GLOC
Definition vlcbdefs.hpp:258
@ OPC_ARSOF3
Definition vlcbdefs.hpp:365
@ OPC_ARSON2
Definition vlcbdefs.hpp:336
@ OPC_RESTP
Definition vlcbdefs.hpp:205
@ OPC_ARSOF2
Definition vlcbdefs.hpp:337
@ OPC_ESTOP
Definition vlcbdefs.hpp:201
@ OPC_QCON
Definition vlcbdefs.hpp:224
@ OPC_RQDDS
Definition vlcbdefs.hpp:249
@ OPC_SNN
Definition vlcbdefs.hpp:225
@ OPC_ARSON
Definition vlcbdefs.hpp:295
@ OPC_ACOF
Definition vlcbdefs.hpp:283
@ OPC_AREQ
Definition vlcbdefs.hpp:284
@ OPC_WRACK
Definition vlcbdefs.hpp:247
@ OPC_NNCLR
Definition vlcbdefs.hpp:243
@ OPC_ASON2
Definition vlcbdefs.hpp:334
@ OPC_NNLRN
Definition vlcbdefs.hpp:241
@ OPC_AROF
Definition vlcbdefs.hpp:286
@ OPC_QNN
Definition vlcbdefs.hpp:207
@ OPC_ASOF2
Definition vlcbdefs.hpp:335
@ OPC_DFNOF
Definition vlcbdefs.hpp:234
@ OPC_SSTAT
Definition vlcbdefs.hpp:235
@ OPC_PARAMS
Definition vlcbdefs.hpp:349
@ OPC_AROF1
Definition vlcbdefs.hpp:311
@ OPC_ASON
Definition vlcbdefs.hpp:290
@ OPC_RQNPN
Definition vlcbdefs.hpp:265
@ OPC_ARSOF1
Definition vlcbdefs.hpp:317
@ OPC_ACON2
Definition vlcbdefs.hpp:328
@ OPC_STAT
Definition vlcbdefs.hpp:345
@ OPC_EXTC6
Definition vlcbdefs.hpp:366
@ OPC_ARSOF
Definition vlcbdefs.hpp:296
@ OPC_AROF3
Definition vlcbdefs.hpp:355
@ OPC_RQNN
Definition vlcbdefs.hpp:238
@ OPC_ESD
Definition vlcbdefs.hpp:347
@ OPC_DFLG
Definition vlcbdefs.hpp:232
@ OPC_CABDAT
Definition vlcbdefs.hpp:324
@ OPC_NNACK
Definition vlcbdefs.hpp:240
@ OPC_WCVOA
Definition vlcbdefs.hpp:323
@ OPC_REVAL
Definition vlcbdefs.hpp:294
@ OPC_EVULN
Definition vlcbdefs.hpp:287
@ OPC_WCVB
Definition vlcbdefs.hpp:276
@ OPC_ARON1
Definition vlcbdefs.hpp:310
@ OPC_RDCC6
Definition vlcbdefs.hpp:342
@ OPC_NNEVN
Definition vlcbdefs.hpp:244
@ OPC_ACOF3
Definition vlcbdefs.hpp:352
@ OPC_ALOC
Definition vlcbdefs.hpp:226
@ OPC_WCVS
Definition vlcbdefs.hpp:302
@ OPC_KCON
Definition vlcbdefs.hpp:230
@ OPC_PCVS
Definition vlcbdefs.hpp:278
@ OPC_PARAN
Definition vlcbdefs.hpp:293
@ OPC_RDCC3
Definition vlcbdefs.hpp:274
@ OPC_FCLK
Definition vlcbdefs.hpp:326
@ OPC_ASOF1
Definition vlcbdefs.hpp:315
@ OPC_NNRST
Definition vlcbdefs.hpp:252
@ OPC_QCVS
Definition vlcbdefs.hpp:277
@ OPC_EXTC4
Definition vlcbdefs.hpp:318
@ OPC_RSTAT
Definition vlcbdefs.hpp:206
@ OPC_ASON1
Definition vlcbdefs.hpp:314
@ OPC_EVNLF
Definition vlcbdefs.hpp:262
@ OPC_NVANS
Definition vlcbdefs.hpp:289
@ OPC_ASRQ
Definition vlcbdefs.hpp:292
@ OPC_EXTC3
Definition vlcbdefs.hpp:297
@ OPC_BON
Definition vlcbdefs.hpp:198
@ OPC_RQNP
Definition vlcbdefs.hpp:209
@ OPC_EXTC5
Definition vlcbdefs.hpp:338
@ OPC_TON
Definition vlcbdefs.hpp:200
@ OPC_ASOF3
Definition vlcbdefs.hpp:360
@ OPC_DBG1
Definition vlcbdefs.hpp:218
@ OPC_STMOD
Definition vlcbdefs.hpp:228
@ OPC_KLOC
Definition vlcbdefs.hpp:214
@ OPC_RQSD
Definition vlcbdefs.hpp:269
@ OPC_EXTC2
Definition vlcbdefs.hpp:270
@ OPC_NEVAL
Definition vlcbdefs.hpp:312
@ OPC_ASON3
Definition vlcbdefs.hpp:359
@ OPC_ENACK
Definition vlcbdefs.hpp:346
@ OPC_BOOT
Definition vlcbdefs.hpp:250
@ OPC_ARST
Definition vlcbdefs.hpp:202
@ OPC_RLOC
Definition vlcbdefs.hpp:223
@ OPC_RQDAT
Definition vlcbdefs.hpp:248
@ OPC_NVRD
Definition vlcbdefs.hpp:263
@ OPC_NVSET
Definition vlcbdefs.hpp:288
@ OPC_NAK
Definition vlcbdefs.hpp:196
@ OPC_ARDAT
Definition vlcbdefs.hpp:358
@ OPC_ENUM
Definition vlcbdefs.hpp:251
@ OPC_DDRS
Definition vlcbdefs.hpp:362
VlcbBootloaderType
Definition vlcbdefs.hpp:697
@ BL_TYPE_IanHogg
Definition vlcbdefs.hpp:704
@ BL_TYPE_MikeBolton
Definition vlcbdefs.hpp:702
@ BL_TYPE_KonradOrlowski
Definition vlcbdefs.hpp:703
@ BL_TYPE_Unknown
Definition vlcbdefs.hpp:701
VlcbConsumerEvUsage
Definition vlcbdefs.hpp:687
@ CONSUMER_EV_ACTIONS
Definition vlcbdefs.hpp:692
@ CONSUMER_EV_NOT_SPECIFIED
Definition vlcbdefs.hpp:691
@ CONSUMER_EV_SLOTS
Definition vlcbdefs.hpp:693
VlcbErrs
Definition vlcbdefs.hpp:387
@ ERR_SESSION_NOT_PRESENT
Definition vlcbdefs.hpp:393
@ ERR_LOCO_ADDR_TAKEN
Definition vlcbdefs.hpp:392
@ ERR_CMD_RX_BUF_OFLOW
Definition vlcbdefs.hpp:396
@ ERR_LOCO_NOT_FOUND
Definition vlcbdefs.hpp:395
@ ERR_CONSIST_EMPTY
Definition vlcbdefs.hpp:394
@ ERR_INVALID_REQUEST
Definition vlcbdefs.hpp:397
@ ERR_LOCO_STACK_FULL
Definition vlcbdefs.hpp:391
@ ERR_SESSION_CANCELLED
Definition vlcbdefs.hpp:398
VlcbServiceTypes
Definition vlcbdefs.hpp:487
@ SERVICE_ID_TEACH
Definition vlcbdefs.hpp:498
@ SERVICE_ID_NONE
Definition vlcbdefs.hpp:491
@ SERVICE_ID_STREAMING
Definition vlcbdefs.hpp:502
@ SERVICE_ID_CAN
Definition vlcbdefs.hpp:494
@ SERVICE_ID_PRODUCER
Definition vlcbdefs.hpp:496
@ SERVICE_ID_OLD_TEACH
Definition vlcbdefs.hpp:495
@ SERVICE_ID_MNS
Definition vlcbdefs.hpp:492
@ SERVICE_ID_NV
Definition vlcbdefs.hpp:493
@ SERVICE_ID_CONSUME_OWN_EVENTS
Definition vlcbdefs.hpp:499
@ SERVICE_ID_CONSUMER
Definition vlcbdefs.hpp:497
@ SERVICE_ID_EVENTACK
Definition vlcbdefs.hpp:500
@ SERVICE_ID_BOOT
Definition vlcbdefs.hpp:501
VlcbSpectrumModuleTypes
Definition vlcbdefs.hpp:171
@ MTYP_AMCTRLR
Definition vlcbdefs.hpp:175
@ MTYP_DUALCAB
Definition vlcbdefs.hpp:176