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 {
//