1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-11-22 23:56:13 +01:00
Go to file
Asbelos 3b7325f948 Cleaner prog/main sync
Trying to reduce gap between prog and main signals when joined as a siding.
2020-08-14 09:41:14 +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 AnalogReadFast 2020-07-25 11:00:04 +01:00
Config.h move ssid and password to config.h, restore timeout to full value (#5) 2020-08-01 17:33:10 +01:00
CVReader.ino move ssid and password to config.h, restore timeout to full value (#5) 2020-08-01 17:33:10 +01:00
DCC.cpp comments and constant as unsigned 2020-08-01 15:03:15 +02:00
DCC.h Two functions changeFn and setFn dependent on if called from WiThrottle or DCCEXparser 2020-08-01 14:06:39 +02:00
DCCEXParser.cpp Change Stream refernces to pointers 2020-08-01 16:32:16 +01:00
DCCEXParser.h Change Stream refernces to pointers 2020-08-01 16:32:16 +01:00
DCCWaveform.cpp Cleaner prog/main sync 2020-08-14 09:41:14 +01:00
DCCWaveform.h Merge branch 'tinker2-mega' into mergefix-2 2020-07-12 16:25:16 +02:00
DIAG.h Copyrights etc 2020-07-03 17:35:02 +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
Hardware.cpp Cleaner prog/main sync 2020-08-14 09:41:14 +01:00
Hardware.h Cleaner prog/main sync 2020-08-14 09:41:14 +01:00
HTTPParser.cpp Copyrights etc 2020-07-03 17:35:02 +01:00
HTTPParser.h Copyrights etc 2020-07-03 17:35:02 +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
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 Change Stream refernces to pointers 2020-08-01 16:32:16 +01:00
Outputs.h Change Stream refernces to pointers 2020-08-01 16:32:16 +01:00
PWMServoDriver.cpp Fix hanging turnouts 2020-07-23 12:48:38 +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 Change Stream refernces to pointers 2020-08-01 16:32:16 +01:00
Sensors.h Change Stream refernces to pointers 2020-08-01 16:32:16 +01:00
StringFormatter.cpp Change Stream refernces to pointers 2020-08-01 16:32:16 +01:00
StringFormatter.h Change Stream refernces to pointers 2020-08-01 16:32:16 +01:00
Turnouts.cpp Merge branch 'Stream-Reference-Fix' 2020-08-01 17:00:31 +01:00
Turnouts.h Change Stream refernces to pointers 2020-08-01 16:32:16 +01:00
WifiInterface.cpp Merge branch 'Stream-Reference-Fix' 2020-08-01 17:00:31 +01:00
WifiInterface.h Change Stream refernces to pointers 2020-08-01 16:32:16 +01:00
WiThrottle.cpp move ssid and password to config.h, restore timeout to full value (#5) 2020-08-01 17:33:10 +01:00
WiThrottle.h Withrottle Heartbeat 2020-07-30 15:31:31 +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.