diff --git a/README.md b/README.md index 1230f8a..7aac23f 100644 --- a/README.md +++ b/README.md @@ -44,4 +44,5 @@ For WIP working towards a new version, a branch can be created for that developm Co-ordination of changes to CBUSDEFS is currently being managed by Pete Brownlow, merg@upsys.co.uk Version 8x released 12/11/23 Added some module type ids and manufacturer id +Version 8y WIP as of Jan 24, not yet released. diff --git a/cbusdefs.cs b/cbusdefs.cs index 149b74f..2e50b4b 100644 --- a/cbusdefs.cs +++ b/cbusdefs.cs @@ -6,11 +6,11 @@ namespace merg.cbus { // - // Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk + // Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // - // Ver 8y + // Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -101,6 +101,7 @@ namespace merg.cbus // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV + // Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public static class CbusDefs { @@ -210,7 +211,7 @@ public static class CbusManufacturer public const int MANU_SPROG = 44; // https://www.sprog-dcc.co.uk/ public const int MANU_ROCRAIL = 70; // http://www.rocrail.net public const int MANU_SPECTRUM = 80; // http://animatedmodeler.com (Spectrum Engineering) - public const int MANU_VLCB = 250; // VLCB range of modules + public const int MANU_MERG_VLCB = 250; // range of MERG VLCB modules public const int MANU_SYSPIXIE = 249; // Konrad Orlowski public const int MANU_RME = 248; // http://rmeuk.com (Railway Modelling Experts Limited) } @@ -288,7 +289,7 @@ public static class CbusMergModuleTypes public const int MTYP_CANRC522 = 61; // Read/Write from/to RC522 RFID tags public const int MTYP_CANINP = 62; // 8 inputs module (2g version of CANACE8c) (Pete Brownlow) public const int MTYP_CANOUT = 63; // 8 outputs module (2g version of CANACC8) (Pete Brownlow) - public const int MTYP_CANEMIO = 64; // Extended CANMIO (24 I/O ports) (Pete Brownlow) + public const int MTYP_CANXIO = 64; // Extended CANMIO (24 I/O ports) (Pete Brownlow) public const int MTYP_CANCABDC = 65; // DC cab public const int MTYP_CANRCOM = 66; // DC Railcom detector/reader public const int MTYP_CANMP3 = 67; // MP3 sound player in response to events (eg: station announcements) (Duncan Greenwood) @@ -307,6 +308,11 @@ public static class CbusMergModuleTypes public const int MTYP_CANLEVER = 80; // Lever frame module (Tim Coombs) public const int MTYP_CANSHIELD = 81; // Kit 110 Arduino shield test firmware public const int MTYP_CAN4IN4OUT = 82; // 4 inputs 4 outputs (Arduino module) + public const int MTYP_CANCMDB = 83; // CANCMD with built in booster (Simon West) + public const int MTYP_CANPIXEL = 84; // neopixel driver (Jon Denham) + public const int MTYP_CANCABPE = 85; // Cab2 with pot or encoder (Simon West hardware, Jon Denham new C firmware) + public const int MTYP_CANSMARTTD = 86; // Smart train detector (Michael Smith) + public const int MTYP_CANCDU_U = 87; // CANCDU (universal) // // At the time of writing the list of defined MERG module types is maintained by Pete Brownlow software@upsys.co.uk // Please liaise with Pete before adding new module types, @@ -549,6 +555,7 @@ public static class CbusParamFlags public const int PF_BOOT = 8; // Module supports the FCU bootloader protocol public const int PF_COE = 16; // Module can consume its own events public const int PF_LRN = 32; // Module is in learn mode + public const int PF_VLCB = 64; // Module is VLCB compatible } public static class CbusParamOffsetsPic diff --git a/cbusdefs.csv b/cbusdefs.csv index e96452e..0a95e86 100644 --- a/cbusdefs.csv +++ b/cbusdefs.csv @@ -1,9 +1,9 @@ comment,,, -comment,,,Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +comment,,,Copyright (C) Pete Brownlow 2011-2025 software@upsys.co.uk comment,,,Originally derived from opcodes.h (c) Andrew Crosland. comment,,,CSV version by Ian Hogg inspired by David W Radcliffe comment,,, -comment,,,Ver 8y +comment,,,Ver 8y WIP NOT YET RELEASED comment,,, comment,,, This work is licensed under the: comment,,, Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -94,6 +94,9 @@ comment,,,Ian Hogg,14/08/2023, Ver 8x Add manufacturer code for VLCB. This is a comment,,,Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) comment,,,Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) comment,,,Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +comment,,,Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO +comment,,,Ian Hogg, 10/3/25, Remove the VLCB manufacturer code as this is no longer required. Add CANARGB. +comment,,,Pete Brownlow, 25/6/25, Ver 8y Reconcile with changes in master, add CANCDU-U module type, add defintions of known fixed CANIDs. CbusManufacturer,,,CBUS Manufacturer definitions CbusManufacturer,,,Where the manufacturer already has an NMRA code, this is used @@ -178,7 +181,7 @@ CbusMergModuleTypes,MTYP_CANCOMPUTE,60,Compute Event processing engine CbusMergModuleTypes,MTYP_CANRC522,61,Read/Write from/to RC522 RFID tags CbusMergModuleTypes,MTYP_CANINP,62,8 inputs module (2g version of CANACE8c) (Pete Brownlow) CbusMergModuleTypes,MTYP_CANOUT,63,8 outputs module (2g version of CANACC8) (Pete Brownlow) -CbusMergModuleTypes,MTYP_CANEMIO,64,Extended CANMIO (24 I/O ports) (Pete Brownlow) +CbusMergModuleTypes,MTYP_CANXIO,64,Extended CANMIO (24 I/O ports) (Pete Brownlow) CbusMergModuleTypes,MTYP_CANCABDC,65,DC cab CbusMergModuleTypes,MTYP_CANRCOM,66,DC Railcom detector/reader CbusMergModuleTypes,MTYP_CANMP3,67,MP3 sound player in response to events (eg: station announcements) (Duncan Greenwood) @@ -197,7 +200,13 @@ CbusMergModuleTypes,MTYP_CANBUFFER,79,Message buffer (Phil Silver) CbusMergModuleTypes,MTYP_CANLEVER,80,Lever frame module (Tim Coombs) CbusMergModuleTypes,MTYP_CANSHIELD,81,Kit 110 Arduino shield test firmware CbusMergModuleTypes,MTYP_CAN4IN4OUT,82,4 inputs 4 outputs (Arduino module) - +CbusMergModuleTypes,MTYP_CANCMDB,83,CANCMD with built in booster (Simon West) +CbusMergModuleTypes,MTYP_CANPIXEL,84,neopixel driver (Jon Denham) +CbusMergModuleTypes,MTYP_CANCABPE,85,Cab2 with pot or encoder (Simon West hardware, Jon Denham new C firmware) +CbusMergModuleTypes,MTYP_CANSMARTTD,86,Smart train detector (Michael Smith) +CbusMergModuleTypes,MTYP_CANARGB,87,Addressable LEDs (Ian Hogg) +CbusMergModuleTypes,MTYP_CANCDU_U,88,CANCDU (universal) +CbusMergModuleTypes,MTYP_VLCB,0xFC,VLCB modules use the same manufacturer IDs as CBUS modules. CbusMergModuleTypes,,, CbusMergModuleTypes,,,At the time of writing the list of defined MERG module types is maintained by Pete Brownlow software@upsys.co.uk @@ -584,3 +593,15 @@ CbusArmProcessors,,, CbusArmProcessors,ARM1176JZF_S,1,As used in Raspberry Pi CbusArmProcessors,ARMCortex_A7,2,As Used in Raspberry Pi 2 CbusArmProcessors,ARMCortex_A53,3,As used in Raspberry Pi 3 + +CbusCANID,,, +CbusCANID,,,CANIDs allocated as fixed values +CbusCANID,,,Note that all new modules, or new firmware for existing modules, should obtain a CANID using self enumeration and implement +CbusCANID,,,automatic CANID conflict resolution, so that eventually we can remove the need for fixed CANIDs +CbusCANID,,, + +CbusCANID,CANID_CANCMD,0x72,(114) Fixed CANID for CANCMD or CANCSB +CbusCANID,CANID_CANUSB,0x7C,(124) Fixed CANID for CANUSB, although in current firmware it may just use the CANID from the sending software +CbusCANID,CANID_FCU,0x7D,(125) Default CANID used by FCU. Can be changed in settings. Note some interface modules may substitute their own CANID. +CbusCANID,CANID_JMRI,0x7E,(126) Default CANID used by JMRI. Can be changed in connection preferences. Note some interface modules may substitute their own CANID. +CbusCANID,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 diff --git a/cbusdefs.h b/cbusdefs.h index 7ca491a..59bf1ea 100644 --- a/cbusdefs.h +++ b/cbusdefs.h @@ -9,11 +9,11 @@ extern "C" { #endif // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -104,6 +104,7 @@ extern "C" { // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO // // CBUS Manufacturer definitions // Where the manufacturer already has an NMRA code, this is used @@ -113,7 +114,7 @@ extern "C" { #define MANU_SPROG 44 // https://www.sprog-dcc.co.uk/ #define MANU_ROCRAIL 70 // http://www.rocrail.net #define MANU_SPECTRUM 80 // http://animatedmodeler.com (Spectrum Engineering) -#define MANU_VLCB 250 // VLCB range of modules +#define MANU_MERG_VLCB 250 // range of MERG VLCB modules #define MANU_SYSPIXIE 249 // Konrad Orlowski #define MANU_RME 248 // http://rmeuk.com (Railway Modelling Experts Limited) // @@ -188,7 +189,7 @@ extern "C" { #define MTYP_CANRC522 61 // Read/Write from/to RC522 RFID tags #define MTYP_CANINP 62 // 8 inputs module (2g version of CANACE8c) (Pete Brownlow) #define MTYP_CANOUT 63 // 8 outputs module (2g version of CANACC8) (Pete Brownlow) -#define MTYP_CANEMIO 64 // Extended CANMIO (24 I/O ports) (Pete Brownlow) +#define MTYP_CANXIO 64 // Extended CANMIO (24 I/O ports) (Pete Brownlow) #define MTYP_CANCABDC 65 // DC cab #define MTYP_CANRCOM 66 // DC Railcom detector/reader #define MTYP_CANMP3 67 // MP3 sound player in response to events (eg: station announcements) (Duncan Greenwood) @@ -207,6 +208,11 @@ extern "C" { #define MTYP_CANLEVER 80 // Lever frame module (Tim Coombs) #define MTYP_CANSHIELD 81 // Kit 110 Arduino shield test firmware #define MTYP_CAN4IN4OUT 82 // 4 inputs 4 outputs (Arduino module) +#define MTYP_CANCMDB 83 // CANCMD with built in booster (Simon West) +#define MTYP_CANPIXEL 84 // neopixel driver (Jon Denham) +#define MTYP_CANCABPE 85 // Cab2 with pot or encoder (Simon West hardware, Jon Denham new C firmware) +#define MTYP_CANSMARTTD 86 // Smart train detector (Michael Smith) +#define MTYP_CANCDU_U 87 // CANCDU (universal) // // // @@ -536,6 +542,7 @@ extern "C" { #define PF_BOOT 8 // Module supports the FCU bootloader protocol #define PF_COE 16 // Module can consume its own events #define PF_LRN 32 // Module is in learn mode +#define PF_VLCB 64 // Module is VLCB compatible // // BUS type that module is connected to // diff --git a/cbusdefs.inc b/cbusdefs.inc index 4fdd075..6c20f6f 100644 --- a/cbusdefs.inc +++ b/cbusdefs.inc @@ -2,11 +2,11 @@ ; This file is automatically generated by ./generate.sh from cbusdefs.csv ; -; Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +; Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk ; Originally derived from opcodes.h (c) Andrew Crosland. ; CSV version by Ian Hogg inspired by David W Radcliffe ; -; Ver 8y +; Ver 8y WIP NOT YET RELEASED ; ; This work is licensed under the: ; Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -97,6 +97,7 @@ ; Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) ; Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) ; Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +; Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO ; ; CBUS Manufacturer definitions ; Where the manufacturer already has an NMRA code, this is used @@ -106,7 +107,7 @@ MANU_MERG equ .165 ; https://www.merg.co.uk MANU_SPROG equ .44 ; https://www.sprog-dcc.co.uk/ MANU_ROCRAIL equ .70 ; http://www.rocrail.net MANU_SPECTRUM equ .80 ; http://animatedmodeler.com (Spectrum Engineering) -MANU_VLCB equ .250 ; VLCB range of modules +MANU_MERG_VLCB equ .250 ; range of MERG VLCB modules MANU_SYSPIXIE equ .249 ; Konrad Orlowski MANU_RME equ .248 ; http://rmeuk.com (Railway Modelling Experts Limited) ; @@ -181,7 +182,7 @@ MTYP_CANCOMPUTE equ .60 ; Compute Event processing engine MTYP_CANRC522 equ .61 ; Read/Write from/to RC522 RFID tags MTYP_CANINP equ .62 ; 8 inputs module (2g version of CANACE8c) (Pete Brownlow) MTYP_CANOUT equ .63 ; 8 outputs module (2g version of CANACC8) (Pete Brownlow) -MTYP_CANEMIO equ .64 ; Extended CANMIO (24 I/O ports) (Pete Brownlow) +MTYP_CANXIO equ .64 ; Extended CANMIO (24 I/O ports) (Pete Brownlow) MTYP_CANCABDC equ .65 ; DC cab MTYP_CANRCOM equ .66 ; DC Railcom detector/reader MTYP_CANMP3 equ .67 ; MP3 sound player in response to events (eg: station announcements) (Duncan Greenwood) @@ -200,6 +201,11 @@ MTYP_CANBUFFER equ .79 ; Message buffer (Phil Silver) MTYP_CANLEVER equ .80 ; Lever frame module (Tim Coombs) MTYP_CANSHIELD equ .81 ; Kit 110 Arduino shield test firmware MTYP_CAN4IN4OUT equ .82 ; 4 inputs 4 outputs (Arduino module) +MTYP_CANCMDB equ .83 ; CANCMD with built in booster (Simon West) +MTYP_CANPIXEL equ .84 ; neopixel driver (Jon Denham) +MTYP_CANCABPE equ .85 ; Cab2 with pot or encoder (Simon West hardware, Jon Denham new C firmware) +MTYP_CANSMARTTD equ .86 ; Smart train detector (Michael Smith) +MTYP_CANCDU_U equ .87 ; CANCDU (universal) ; ; ; @@ -529,6 +535,7 @@ PF_FLiM equ .4 ; Module is in FLiM PF_BOOT equ .8 ; Module supports the FCU bootloader protocol PF_COE equ .16 ; Module can consume its own events PF_LRN equ .32 ; Module is in learn mode +PF_VLCB equ .64 ; Module is VLCB compatible ; ; BUS type that module is connected to ; diff --git a/cbusdefs.pas b/cbusdefs.pas index e5e9cb5..2da7c7e 100644 --- a/cbusdefs.pas +++ b/cbusdefs.pas @@ -8,11 +8,11 @@ interface const { } -{ Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk } +{ Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk } { Originally derived from opcodes.h (c) Andrew Crosland. } { CSV version by Ian Hogg inspired by David W Radcliffe } { } -{ Ver 8y } +{ Ver 8y WIP NOT YET RELEASED } { } { This work is licensed under the: } { Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. } @@ -103,6 +103,7 @@ interface { Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) } { Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) } { Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV } +{ Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO } // // CBUS Manufacturer definitions // Where the manufacturer already has an NMRA code, this is used @@ -112,7 +113,7 @@ interface MANU_SPROG = 44; // https://www.sprog-dcc.co.uk/ MANU_ROCRAIL = 70; // http://www.rocrail.net MANU_SPECTRUM = 80; // http://animatedmodeler.com (Spectrum Engineering) - MANU_VLCB = 250; // VLCB range of modules + MANU_MERG_VLCB = 250; // range of MERG VLCB modules MANU_SYSPIXIE = 249; // Konrad Orlowski MANU_RME = 248; // http://rmeuk.com (Railway Modelling Experts Limited) // @@ -187,7 +188,7 @@ interface MTYP_CANRC522 = 61; // Read/Write from/to RC522 RFID tags MTYP_CANINP = 62; // 8 inputs module (2g version of CANACE8c) (Pete Brownlow) MTYP_CANOUT = 63; // 8 outputs module (2g version of CANACC8) (Pete Brownlow) - MTYP_CANEMIO = 64; // Extended CANMIO (24 I/O ports) (Pete Brownlow) + MTYP_CANXIO = 64; // Extended CANMIO (24 I/O ports) (Pete Brownlow) MTYP_CANCABDC = 65; // DC cab MTYP_CANRCOM = 66; // DC Railcom detector/reader MTYP_CANMP3 = 67; // MP3 sound player in response to events (eg: station announcements) (Duncan Greenwood) @@ -206,6 +207,11 @@ interface MTYP_CANLEVER = 80; // Lever frame module (Tim Coombs) MTYP_CANSHIELD = 81; // Kit 110 Arduino shield test firmware MTYP_CAN4IN4OUT = 82; // 4 inputs 4 outputs (Arduino module) + MTYP_CANCMDB = 83; // CANCMD with built in booster (Simon West) + MTYP_CANPIXEL = 84; // neopixel driver (Jon Denham) + MTYP_CANCABPE = 85; // Cab2 with pot or encoder (Simon West hardware, Jon Denham new C firmware) + MTYP_CANSMARTTD = 86; // Smart train detector (Michael Smith) + MTYP_CANCDU_U = 87; // CANCDU (universal) // // // @@ -535,6 +541,7 @@ interface PF_BOOT = 8; // Module supports the FCU bootloader protocol PF_COE = 16; // Module can consume its own events PF_LRN = 32; // Module is in learn mode + PF_VLCB = 64; // Module is VLCB compatible // // BUS type that module is connected to // diff --git a/cbusdefs.py b/cbusdefs.py index 6df7ace..cd5c931 100644 --- a/cbusdefs.py +++ b/cbusdefs.py @@ -5,11 +5,11 @@ from micropython import const # -# Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +# Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk # Originally derived from opcodes.h (c) Andrew Crosland. # CSV version by Ian Hogg inspired by David W Radcliffe # -# Ver 8y +# Ver 8y WIP NOT YET RELEASED # # This work is licensed under the: # Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ # Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) # Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) # Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +# Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO # # CBUS Manufacturer definitions # Where the manufacturer already has an NMRA code, this is used @@ -109,7 +110,7 @@ MANU_SPROG = const(44) # https://www.sprog-dcc.co.uk/ MANU_ROCRAIL = const(70) # http://www.rocrail.net MANU_SPECTRUM = const(80) # http://animatedmodeler.com (Spectrum Engineering) -MANU_VLCB = const(250) # VLCB range of modules +MANU_MERG_VLCB = const(250) # range of MERG VLCB modules MANU_SYSPIXIE = const(249) # Konrad Orlowski MANU_RME = const(248) # http://rmeuk.com (Railway Modelling Experts Limited) # @@ -184,7 +185,7 @@ MTYP_CANRC522 = const(61) # Read/Write from/to RC522 RFID tags MTYP_CANINP = const(62) # 8 inputs module (2g version of CANACE8c) (Pete Brownlow) MTYP_CANOUT = const(63) # 8 outputs module (2g version of CANACC8) (Pete Brownlow) -MTYP_CANEMIO = const(64) # Extended CANMIO (24 I/O ports) (Pete Brownlow) +MTYP_CANXIO = const(64) # Extended CANMIO (24 I/O ports) (Pete Brownlow) MTYP_CANCABDC = const(65) # DC cab MTYP_CANRCOM = const(66) # DC Railcom detector/reader MTYP_CANMP3 = const(67) # MP3 sound player in response to events (eg: station announcements) (Duncan Greenwood) @@ -203,6 +204,11 @@ MTYP_CANLEVER = const(80) # Lever frame module (Tim Coombs) MTYP_CANSHIELD = const(81) # Kit 110 Arduino shield test firmware MTYP_CAN4IN4OUT = const(82) # 4 inputs 4 outputs (Arduino module) +MTYP_CANCMDB = const(83) # CANCMD with built in booster (Simon West) +MTYP_CANPIXEL = const(84) # neopixel driver (Jon Denham) +MTYP_CANCABPE = const(85) # Cab2 with pot or encoder (Simon West hardware, Jon Denham new C firmware) +MTYP_CANSMARTTD = const(86) # Smart train detector (Michael Smith) +MTYP_CANCDU_U = const(87) # CANCDU (universal) # # # @@ -532,6 +538,7 @@ PF_BOOT = const(8) # Module supports the FCU bootloader protocol PF_COE = const(16) # Module can consume its own events PF_LRN = const(32) # Module is in learn mode +PF_VLCB = const(64) # Module is VLCB compatible # # BUS type that module is connected to # diff --git a/cbusdefsenums.cs b/cbusdefsenums.cs index 7584376..61bb450 100644 --- a/cbusdefsenums.cs +++ b/cbusdefsenums.cs @@ -6,11 +6,11 @@ namespace Merg.Cbus { // - // Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk + // Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // - // Ver 8y + // Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -101,6 +101,7 @@ namespace Merg.Cbus // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV + // Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO /// /// @@ -325,9 +326,9 @@ public enum Manufacturer /// Spectrum = 80, /// - /// VLCB range of modules + /// range of MERG VLCB modules /// - Vlcb = 250, + MergVlcb = 250, /// /// Konrad Orlowski /// @@ -602,7 +603,7 @@ public enum MergModuleTypes /// /// Extended CANMIO (24 I/O ports) (Pete Brownlow) /// - Canemio = 64, + Canxio = 64, /// /// DC cab /// @@ -676,6 +677,26 @@ public enum MergModuleTypes /// Can4in4out = 82, /// + /// CANCMD with built in booster (Simon West) + /// + Cancmdb = 83, + /// + /// neopixel driver (Jon Denham) + /// + Canpixel = 84, + /// + /// Cab2 with pot or encoder (Simon West hardware, Jon Denham new C firmware) + /// + Cancabpe = 85, + /// + /// Smart train detector (Michael Smith) + /// + Cansmarttd = 86, + /// + /// CANCDU (universal) + /// + CancduU = 87, + /// /// Software nodes /// CanSw = 0xFF, @@ -1408,6 +1429,10 @@ public enum ParamFlags /// Module is in learn mode /// Lrn = 32, + /// + /// Module is VLCB compatible + /// + Vlcb = 64, } /// diff --git a/generate.sh b/generate.sh index 7d1a655..260f466 100755 --- a/generate.sh +++ b/generate.sh @@ -1,10 +1,10 @@ #!/bin/bash #set -x -# Although this may seem like a random collection of punctuation it is -# actually a bash script. I.e. it is executed by the bash command. +# Although this may seem like a random collection of punctuation it is +# actually a bash script. I.e. it is executed by the bash command. # -# Git Bash may be downloaded as part of the Git tools from +# Git Bash may be downloaded as part of the Git tools from # https://git-scm.com/downloads # # This script produces language specific variants of cbusdefs.csv @@ -21,24 +21,24 @@ cat << EOF > $OUTPUT EOF # now output the actual contents -while IFS="," read type name value comment +while IFS="," read type name value comment do - if [ $type = "comment" ]; then - echo -e "; $name\t$value\t$comment" + if [ "$type" = "comment" ]; then + echo -e "; $name\t$value\t$comment" else - if [ "X$name" = "X" ]; then - echo -e "; $value$comment" + if [ -z "$name" ]; then + echo -e "; $value$comment" else start=`echo -e $value | cut -c1-2 | tr "x" "X"` if [ "x$start" = "x0X" ]; then - echo -e "$name\tequ $value\t; $comment" + echo -e "$name\tequ $value\t; $comment" else - echo -e "$name\tequ .$value\t; $comment" + echo -e "$name\tequ .$value\t; $comment" fi fi fi done < cbusdefs.csv >>$OUTPUT - + # finally output the trailer stuff # none needed @@ -62,19 +62,19 @@ extern "C" { EOF # now output the actual contents -while IFS="," read type name value comment +while IFS="," read type name value comment do - if [ $type = "comment" ]; then - echo -e "// $name\t$value\t$comment" + if [ "$type" = "comment" ]; then + echo -e "// $name\t$value\t$comment" else - if [ "X$name" = "X" ]; then - echo -e "// $value$comment" + if [ -z "$name" ]; then + echo -e "// $value$comment" else - echo -e "#define $name\t$value\t// $comment" + echo -e "#define $name\t$value\t// $comment" fi fi done < cbusdefs.csv >>$OUTPUT - + # finally output the trailer stuff cat << EOF >> $OUTPUT @@ -96,7 +96,7 @@ echo "Generating $OUTPUT" cat << EOF > $OUTPUT { DO NOT EDIT THIS FILE. This file is automatically generated by $0 from cbusdefs.csv -} +} unit cbusdefs; interface @@ -105,19 +105,19 @@ const EOF # now output the actual contents -while IFS="," read type name value comment +while IFS="," read type name value comment do - if [ $type = "comment" ]; then - echo -e "{ $name\t$value\t$comment }" + if [ "$type" = "comment" ]; then + echo -e "{ $name\t$value\t$comment }" else - if [ "X$name" = "X" ]; then - echo -e "// $value$comment" + if [ -z "$name" ]; then + echo -e "// $value$comment" else - echo -e " $name\t= $value;\t// $comment" + echo -e " $name\t= $value;\t// $comment" fi fi done < cbusdefs.csv >>$OUTPUT - + # finally output the trailer stuff cat << EOF >> $OUTPUT @@ -141,7 +141,7 @@ do cat << EOF > $OUTPUT /* DO NOT EDIT THIS FILE. * This file is automatically generated by $0 from cbusdefs.csv - */ + */ package $PACKAGE; @@ -154,13 +154,13 @@ EOF public enum $class { EOF # capture the name and values into a variable - BODY=`while IFS="," read type name value comment + BODY=`while IFS="," read type name value comment do - if [ $type = "$class" ]; then - if [ "X$name" = "X" ]; then - echo -e "// $value$comment" + if [ "$type" = "$class" ]; then + if [ -z "$name" ]; then + echo -e "// $value$comment" else - echo -e "\t$name($value),\t//$comment" + echo -e "\t$name($value),\t//$comment" fi fi done < cbusdefs.csv` @@ -193,12 +193,12 @@ done ############################ # cbusdefs.cs ############################ -sh ./generate_cs.sh +bash ./generate_cs.sh ############################ # cbusdefsenums.cs ############################ -sh ./generate_cs_enums.sh +bash ./generate_cs_enums.sh ############################ # cbusdefs.py @@ -215,15 +215,15 @@ from micropython import const EOF # now output the actual contents -while IFS="," read type name value comment +while IFS="," read type name value comment do - if [ $type = "comment" ]; then - echo -e "# $name $value $comment" + if [ "$type" = "comment" ]; then + echo -e "# $name $value $comment" else - if [ "X$name" = "X" ]; then - echo -e "# $value$comment" + if [ -z "$name" ]; then + echo -e "# $value$comment" else - echo -e "$name = const($value) # $comment" + echo -e "$name = const($value) # $comment" fi fi done < cbusdefs.csv >>$OUTPUT diff --git a/generate_cs.sh b/generate_cs.sh index bd8bafa..05194f3 100644 --- a/generate_cs.sh +++ b/generate_cs.sh @@ -7,7 +7,7 @@ echo "Generating $OUTPUT" cat << EOF > $OUTPUT /* DO NOT EDIT THIS FILE. * This file is automatically generated by $0 from cbusdefs.csv - */ + */ namespace merg.cbus { @@ -34,13 +34,13 @@ do EOF # now output the actual contents - while IFS="," read type name value comment + while IFS="," read type name value comment do - if [ $type = $class ]; then - if [ "X$name" = "X" ]; then - echo -e "\t\t\t// $value$comment" + if [ "$type" = $class ]; then + if [ -z "$name" ]; then + echo -e "\t\t\t// $value$comment" else - echo -e "\t\t\tpublic const int $name\t= $value;\t// $comment" + echo -e "\t\t\tpublic const int $name\t= $value;\t// $comment" fi fi done < cbusdefs.csv >> $OUTPUT diff --git a/generate_cs_enums.sh b/generate_cs_enums.sh index a09f2fa..4bff0f4 100644 --- a/generate_cs_enums.sh +++ b/generate_cs_enums.sh @@ -4,7 +4,7 @@ echo "Generating $OUTPUT" cat << EOF > $OUTPUT /* DO NOT EDIT THIS FILE. * This file is automatically generated by $0 from cbusdefs.csv - */ + */ namespace Merg.Cbus { @@ -26,12 +26,12 @@ do /// EOF - while IFS="," read type name value comment + while IFS="," read type name value comment do - if [ $type = $class ]; then - if [ "X$name" = "X" ]; then - if [ "X$comment" != "X" ]; then - echo -e "\t/// $value$comment" + if [ "$type" = "$class" ]; then + if [ -z "$name" ]; then + if [ -n "$comment" ]; then + echo -e "\t/// $value$comment" break fi fi @@ -39,7 +39,7 @@ EOF fi done < cbusdefs.csv >> $OUTPUT - enum="$(sed -e 's/Cbus//' <<< $class)" + enum="$(sed -e 's/Cbus//' <<< "$class")" cat << EOF >> $OUTPUT /// @@ -48,21 +48,21 @@ EOF EOF # now output the actual contents - while IFS="," read type name value comment + while IFS="," read type name value comment do - if [ $type = $class ]; then -# if [ "X$name" = "X" ]; then -# if [ "X$comment" != "X" ]; then -# echo -e "\t\t// $value$comment" + if [ "$type" = $class ]; then +# if [ -z "$name" ]; then +# if [ -n "$comment" ]; then +# echo -e "\t\t// $value$comment" # fi # else - if [ "X$name" != "X" ]; then + if [ -n "$name" ]; then #rewrite $name to match C# standards and remove redundancy if [[ $name == *"_"* ]]; then IFS="_" read -ra typename <<< $name name="$(sed -e 's/^SASP_//' -e 's/^CMDERR_//' -e 's/^PAR_//' -e 's/^ERR_//' -e 's/^MANU_//' -e 's/^MTYP_//' -e 's/^OPC_//' -e 's/^PF_//' -e 's/^PAR_//' -e 's/^CPUM_//' -e 's/^SSTAT_//' -e 's/^TMOD_//' <<< $name)" - + name="$(sed -e 's/\(.\)\([^_]*\)_\{0,1\}/\U\1\L\2/g' <<< $name)" fi @@ -71,7 +71,7 @@ EOF echo -e "\t\t/// $comment" echo -e "\t\t/// " fi - echo -e "\t\t$name = $value," + echo -e "\t\t$name = $value," fi fi done < cbusdefs.csv >> $OUTPUT diff --git a/java/uk/org/merg/cbus/CbusArmProcessors.java b/java/uk/org/merg/cbus/CbusArmProcessors.java index 101b07c..8bb1387 100644 --- a/java/uk/org/merg/cbus/CbusArmProcessors.java +++ b/java/uk/org/merg/cbus/CbusArmProcessors.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusArmProcessors { // diff --git a/java/uk/org/merg/cbus/CbusBusTypes.java b/java/uk/org/merg/cbus/CbusBusTypes.java index 0d4c6fd..7a96e4d 100644 --- a/java/uk/org/merg/cbus/CbusBusTypes.java +++ b/java/uk/org/merg/cbus/CbusBusTypes.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusBusTypes { // diff --git a/java/uk/org/merg/cbus/CbusCabSigAspect0.java b/java/uk/org/merg/cbus/CbusCabSigAspect0.java index d903ad3..c66c0e9 100644 --- a/java/uk/org/merg/cbus/CbusCabSigAspect0.java +++ b/java/uk/org/merg/cbus/CbusCabSigAspect0.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusCabSigAspect0 { // diff --git a/java/uk/org/merg/cbus/CbusCabSigAspect1.java b/java/uk/org/merg/cbus/CbusCabSigAspect1.java index 107bbda..1adfd10 100644 --- a/java/uk/org/merg/cbus/CbusCabSigAspect1.java +++ b/java/uk/org/merg/cbus/CbusCabSigAspect1.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusCabSigAspect1 { // diff --git a/java/uk/org/merg/cbus/CbusCabSigAspect2.java b/java/uk/org/merg/cbus/CbusCabSigAspect2.java index 7a09df7..b5927bd 100644 --- a/java/uk/org/merg/cbus/CbusCabSigAspect2.java +++ b/java/uk/org/merg/cbus/CbusCabSigAspect2.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusCabSigAspect2 { // diff --git a/java/uk/org/merg/cbus/CbusCmdErrs.java b/java/uk/org/merg/cbus/CbusCmdErrs.java index b62a2b4..a0c465e 100644 --- a/java/uk/org/merg/cbus/CbusCmdErrs.java +++ b/java/uk/org/merg/cbus/CbusCmdErrs.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusCmdErrs { // diff --git a/java/uk/org/merg/cbus/CbusErrs.java b/java/uk/org/merg/cbus/CbusErrs.java index ad5a025..9646804 100644 --- a/java/uk/org/merg/cbus/CbusErrs.java +++ b/java/uk/org/merg/cbus/CbusErrs.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusErrs { // diff --git a/java/uk/org/merg/cbus/CbusManufacturer.java b/java/uk/org/merg/cbus/CbusManufacturer.java index 3e3242c..da3148d 100644 --- a/java/uk/org/merg/cbus/CbusManufacturer.java +++ b/java/uk/org/merg/cbus/CbusManufacturer.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusManufacturer { // CBUS Manufacturer definitions @@ -110,7 +111,7 @@ public enum CbusManufacturer { MANU_SPROG(44), //https://www.sprog-dcc.co.uk/ MANU_ROCRAIL(70), //http://www.rocrail.net MANU_SPECTRUM(80), //http://animatedmodeler.com (Spectrum Engineering) - MANU_VLCB(250), //VLCB range of modules + MANU_MERG_VLCB(250), //range of MERG VLCB modules MANU_SYSPIXIE(249), //Konrad Orlowski MANU_RME(248); //http://rmeuk.com (Railway Modelling Experts Limited) diff --git a/java/uk/org/merg/cbus/CbusMergModuleTypes.java b/java/uk/org/merg/cbus/CbusMergModuleTypes.java index 5e2d1b9..9f7e5a1 100644 --- a/java/uk/org/merg/cbus/CbusMergModuleTypes.java +++ b/java/uk/org/merg/cbus/CbusMergModuleTypes.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusMergModuleTypes { // @@ -173,7 +174,7 @@ public enum CbusMergModuleTypes { MTYP_CANRC522(61), //Read/Write from/to RC522 RFID tags MTYP_CANINP(62), //8 inputs module (2g version of CANACE8c) (Pete Brownlow) MTYP_CANOUT(63), //8 outputs module (2g version of CANACC8) (Pete Brownlow) - MTYP_CANEMIO(64), //Extended CANMIO (24 I/O ports) (Pete Brownlow) + MTYP_CANXIO(64), //Extended CANMIO (24 I/O ports) (Pete Brownlow) MTYP_CANCABDC(65), //DC cab MTYP_CANRCOM(66), //DC Railcom detector/reader MTYP_CANMP3(67), //MP3 sound player in response to events (eg: station announcements) (Duncan Greenwood) @@ -192,6 +193,11 @@ public enum CbusMergModuleTypes { MTYP_CANLEVER(80), //Lever frame module (Tim Coombs) MTYP_CANSHIELD(81), //Kit 110 Arduino shield test firmware MTYP_CAN4IN4OUT(82), //4 inputs 4 outputs (Arduino module) + MTYP_CANCMDB(83), //CANCMD with built in booster (Simon West) + MTYP_CANPIXEL(84), //neopixel driver (Jon Denham) + MTYP_CANCABPE(85), //Cab2 with pot or encoder (Simon West hardware, Jon Denham new C firmware) + MTYP_CANSMARTTD(86), //Smart train detector (Michael Smith) + MTYP_CANCDU_U(87), //CANCDU (universal) // // At the time of writing the list of defined MERG module types is maintained by Pete Brownlow software@upsys.co.uk // Please liaise with Pete before adding new module types, diff --git a/java/uk/org/merg/cbus/CbusMicrochipProcessors.java b/java/uk/org/merg/cbus/CbusMicrochipProcessors.java index 0494885..3de50d0 100644 --- a/java/uk/org/merg/cbus/CbusMicrochipProcessors.java +++ b/java/uk/org/merg/cbus/CbusMicrochipProcessors.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusMicrochipProcessors { // diff --git a/java/uk/org/merg/cbus/CbusOpCodes.java b/java/uk/org/merg/cbus/CbusOpCodes.java index 0620a1a..7a8366d 100644 --- a/java/uk/org/merg/cbus/CbusOpCodes.java +++ b/java/uk/org/merg/cbus/CbusOpCodes.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusOpCodes { // diff --git a/java/uk/org/merg/cbus/CbusParamFlags.java b/java/uk/org/merg/cbus/CbusParamFlags.java index cb2a467..8dd54d3 100644 --- a/java/uk/org/merg/cbus/CbusParamFlags.java +++ b/java/uk/org/merg/cbus/CbusParamFlags.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusParamFlags { // @@ -112,7 +113,8 @@ public enum CbusParamFlags { PF_FLiM(4), //Module is in FLiM PF_BOOT(8), //Module supports the FCU bootloader protocol PF_COE(16), //Module can consume its own events - PF_LRN(32); //Module is in learn mode + PF_LRN(32), //Module is in learn mode + PF_VLCB(64); //Module is VLCB compatible private final int v; diff --git a/java/uk/org/merg/cbus/CbusParamOffsetsPic.java b/java/uk/org/merg/cbus/CbusParamOffsetsPic.java index 0fed2cd..8ad6f95 100644 --- a/java/uk/org/merg/cbus/CbusParamOffsetsPic.java +++ b/java/uk/org/merg/cbus/CbusParamOffsetsPic.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusParamOffsetsPic { // diff --git a/java/uk/org/merg/cbus/CbusParams.java b/java/uk/org/merg/cbus/CbusParams.java index 2cbb439..4c42636 100644 --- a/java/uk/org/merg/cbus/CbusParams.java +++ b/java/uk/org/merg/cbus/CbusParams.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusParams { // diff --git a/java/uk/org/merg/cbus/CbusProcessorManufacturers.java b/java/uk/org/merg/cbus/CbusProcessorManufacturers.java index 6774d5e..7374f79 100644 --- a/java/uk/org/merg/cbus/CbusProcessorManufacturers.java +++ b/java/uk/org/merg/cbus/CbusProcessorManufacturers.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusProcessorManufacturers { // diff --git a/java/uk/org/merg/cbus/CbusRocRailModuleTypes.java b/java/uk/org/merg/cbus/CbusRocRailModuleTypes.java index 879ee41..985cb3d 100644 --- a/java/uk/org/merg/cbus/CbusRocRailModuleTypes.java +++ b/java/uk/org/merg/cbus/CbusRocRailModuleTypes.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusRocRailModuleTypes { // diff --git a/java/uk/org/merg/cbus/CbusSStats.java b/java/uk/org/merg/cbus/CbusSStats.java index ad2da32..8f81007 100644 --- a/java/uk/org/merg/cbus/CbusSStats.java +++ b/java/uk/org/merg/cbus/CbusSStats.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusSStats { // diff --git a/java/uk/org/merg/cbus/CbusSpectrumModuleTypes.java b/java/uk/org/merg/cbus/CbusSpectrumModuleTypes.java index a9c6837..2c9e05a 100644 --- a/java/uk/org/merg/cbus/CbusSpectrumModuleTypes.java +++ b/java/uk/org/merg/cbus/CbusSpectrumModuleTypes.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusSpectrumModuleTypes { // diff --git a/java/uk/org/merg/cbus/CbusSprogModuleTypes.java b/java/uk/org/merg/cbus/CbusSprogModuleTypes.java index cc5bc88..70320b3 100644 --- a/java/uk/org/merg/cbus/CbusSprogModuleTypes.java +++ b/java/uk/org/merg/cbus/CbusSprogModuleTypes.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusSprogModuleTypes { // diff --git a/java/uk/org/merg/cbus/CbusStmodModes.java b/java/uk/org/merg/cbus/CbusStmodModes.java index fff8f75..6fa78d4 100644 --- a/java/uk/org/merg/cbus/CbusStmodModes.java +++ b/java/uk/org/merg/cbus/CbusStmodModes.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusStmodModes { // diff --git a/java/uk/org/merg/cbus/CbusSysPixieModuleTypes.java b/java/uk/org/merg/cbus/CbusSysPixieModuleTypes.java index 3686409..461eb1d 100644 --- a/java/uk/org/merg/cbus/CbusSysPixieModuleTypes.java +++ b/java/uk/org/merg/cbus/CbusSysPixieModuleTypes.java @@ -5,11 +5,11 @@ package uk.org.merg.cbus; // -// Copyright (C) Pete Brownlow 2011-2022 software@upsys.co.uk +// Copyright (C) Pete Brownlow 2011-2024 software@upsys.co.uk // Originally derived from opcodes.h (c) Andrew Crosland. // CSV version by Ian Hogg inspired by David W Radcliffe // -// Ver 8y +// Ver 8y WIP NOT YET RELEASED // // This work is licensed under the: // Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. @@ -100,6 +100,7 @@ // Pete Brownlow,2/11/23, Ver 8x Add module id for CANLEVER (Tim Coombs) // Pete Brownlow,3/11/23, Ver 8x Update SPROG module type ids (Andrew Crosland) // Pete Brownlow, 23/11/23, Ver 8y Add CANSHIELD, CAN4IN4OUT, CANDEV +// Pete Brownlow, 27/1/24, Ver 8y Add CANCMDB, CANPIXEL, CANCABPE, SMARTTD, change CANEMIO to CANXIO public enum CbusSysPixieModuleTypes { //