1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-11-26 17:46:14 +01:00
Go to file
2020-09-11 12:56:36 +01:00
ATMEGA328 Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
ATMEGA2560 Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
ATMEGA4809 Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
ATSAMC21G Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
ATSAMD21G Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
examples typo 2020-09-07 11:20:41 +01:00
.gitattributes Initial commit 2020-05-23 23:00:03 +01:00
.gitignore Initial commit 2020-05-23 23:00:03 +01:00
AnalogReadFast.h Motor drivers tested 2020-08-17 15:30:25 +01:00
ArduinoTimers.h Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
CVReader.ino Simple startup 2020-09-06 20:24:18 +01:00
DCC.cpp Auto prog power diagnostics and cleanup 2020-09-11 12:56:36 +01:00
DCC.h Improved <D> commands 2020-09-10 13:09:32 +01:00
DCCEX.h Cleaned DIAG interface 2020-09-06 20:23:26 +01:00
DCCEXParser.cpp Auto prog power diagnostics and cleanup 2020-09-11 12:56:36 +01:00
DCCEXParser.h Improved <D> commands 2020-09-10 13:09:32 +01:00
DCCWaveform.cpp Evn slower slow wave looks better 2020-09-10 17:19:53 +01:00
DCCWaveform.h <D DCC SLOW> 2020-09-10 17:11:50 +01:00
DIAG.h Cleaned DIAG interface 2020-09-06 20:23:26 +01:00
EEStore.cpp Copyrights etc 2020-07-03 17:35:02 +01:00
EEStore.h Copyrights etc 2020-07-03 17:35:02 +01:00
freeMemory.h Low memory watermark 2020-07-24 13:46:23 +01:00
MemStream.cpp Fixup MemStream warning messages 2020-07-16 14:04:59 +01:00
MemStream.h Cleaning up warnings (some of which were actually fatal) 2020-06-29 11:37:05 +01:00
MotorDriver.cpp Motor drivers tested 2020-08-17 15:30:25 +01:00
MotorDriver.h Virtual motor driver functions 2020-08-23 22:04:57 +01:00
MotorDrivers.h Update MotorDrivers.h 2020-08-19 20:02:37 +01:00
objdump.bat nothing special 2020-07-24 12:00:24 +01:00
objdump.sh initial 2020-07-16 13:54:47 +02:00
Outputs.cpp Cleaning of Turnout/Output/Sensor 2020-09-06 12:44:19 +01:00
Outputs.h Cleaning of Turnout/Output/Sensor 2020-09-06 12:44:19 +01:00
PWMServoDriver.cpp I2C diagnostics 2020-09-07 16:19:55 +01:00
PWMServoDriver.h Fix hanging turnouts 2020-07-23 12:48:38 +01:00
README.md Update README.md 2020-07-15 16:40:15 +01:00
Sensors.cpp Cleaning of Turnout/Output/Sensor 2020-09-06 12:44:19 +01:00
Sensors.h Cleaning of Turnout/Output/Sensor 2020-09-06 12:44:19 +01:00
StringFormatter.cpp Improved <D> commands 2020-09-10 13:09:32 +01:00
StringFormatter.h Improved <D> commands 2020-09-10 13:09:32 +01:00
Timer.cpp Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
Turnouts.cpp Cleaning of Turnout/Output/Sensor 2020-09-06 12:44:19 +01:00
Turnouts.h Cleaning of Turnout/Output/Sensor 2020-09-06 12:44:19 +01:00
VirtualTimer.h Embed ArduinoTimers library 2020-08-23 14:14:04 +01:00
WifiInterface.cpp Improved <D> commands 2020-09-10 13:09:32 +01:00
WifiInterface.h Wifiinterfce AP mode 2020-08-26 13:18:34 +01:00
WiThrottle.cpp Improved <D> commands 2020-09-10 13:09:32 +01:00
WiThrottle.h Steves Withrottle stuff 2020-08-20 17:16:47 +01:00

CVReader

Don't be fooled by the name, this chunk of code is an almost complete replacement for DCC++ with the added feature of WiThrottle support WITHOUT a JMRI server.

This repo is acting as a prototyping area for features being built into the DCC-EX CommandStation.

Unlike DCC++ the code here is more cleanly structured and so is easier to maintain and expand. It runs in less memory than DCC++ and uses less interrupts and timers to achieve a more reliable DCC signal. You will not find a PacketRegister file with a bizarre mix of string parsing, packet building, queue managing, timer fiddling and hardware pins all mashed into one over-complex class.

It has an API interface to the DCC commands that can be used by your own bespoke sketch. This API is actually used by the JMRI command parser and the WiThrottle command parser. The CVReader.ino sketch provides an example of setting this up with Wifi and JMRI command parsing.

In addition, program track operations requiring ACK responses do not cause blocking of the Arduino loop() and so will not hold up throttle requests. Loco Functions F0-F12 will issue reminders automatically. There is a much higher register limit (ie more locos) in the same memory. You can also create your own commands or filter out commands sent by JMRI to suit your own layout.