mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2024-11-24 08:36:14 +01:00
Compare commits
No commits in common. "ebaf1b984ef66084b5534083ef1a81500c57b79d" and "a5ccb2e29e297d3743f3b8e8a3edcc17fd807842" have entirely different histories.
ebaf1b984e
...
a5ccb2e29e
|
@ -847,14 +847,13 @@ void DCCEXParser::parseOne(Print *stream, byte *com, RingStream * ringStream)
|
||||||
case 'L': // LCC interface implemented in EXRAIL parser
|
case 'L': // LCC interface implemented in EXRAIL parser
|
||||||
break; // Will <X> if not intercepted by EXRAIL
|
break; // Will <X> if not intercepted by EXRAIL
|
||||||
|
|
||||||
#ifndef DISABLE_VDPY
|
|
||||||
case '@': // JMRI saying "give me virtual LCD msgs"
|
case '@': // JMRI saying "give me virtual LCD msgs"
|
||||||
CommandDistributor::setVirtualLCDSerial(stream);
|
CommandDistributor::setVirtualLCDSerial(stream);
|
||||||
StringFormatter::send(stream,
|
StringFormatter::send(stream,
|
||||||
F("<@ 0 0 \"DCC-EX v" VERSION "\">\n"
|
F("<@ 0 0 \"DCC-EX v" VERSION "\">\n"
|
||||||
"<@ 0 1 \"Lic GPLv3\">\n"));
|
"<@ 0 1 \"Lic GPLv3\">\n"));
|
||||||
return;
|
return;
|
||||||
#endif
|
|
||||||
default: //anything else will diagnose and drop out to <X>
|
default: //anything else will diagnose and drop out to <X>
|
||||||
if (opcode >= ' ' && opcode <= '~') {
|
if (opcode >= ' ' && opcode <= '~') {
|
||||||
DIAG(F("Opcode=%c params=%d"), opcode, params);
|
DIAG(F("Opcode=%c params=%d"), opcode, params);
|
||||||
|
@ -1065,7 +1064,6 @@ bool DCCEXParser::parseS(Print *stream, int16_t params, int16_t p[])
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DCCEXParser::parseC(Print *stream, int16_t params, int16_t p[]) {
|
bool DCCEXParser::parseC(Print *stream, int16_t params, int16_t p[]) {
|
||||||
(void)stream; // arg not used, maybe later?
|
|
||||||
if (params == 0)
|
if (params == 0)
|
||||||
return false;
|
return false;
|
||||||
switch (p[0])
|
switch (p[0])
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
#define GITHUB_SHA "devel-202311232114Z"
|
#define GITHUB_SHA "devel-202311230948Z"
|
||||||
|
|
|
@ -39,11 +39,8 @@ void StringFormatter::diag( const FSH* input...) {
|
||||||
|
|
||||||
void StringFormatter::lcd(byte row, const FSH* input...) {
|
void StringFormatter::lcd(byte row, const FSH* input...) {
|
||||||
va_list args;
|
va_list args;
|
||||||
#ifndef DISABLE_VDPY
|
|
||||||
Print * virtualLCD=CommandDistributor::getVirtualLCDSerial(0,row);
|
Print * virtualLCD=CommandDistributor::getVirtualLCDSerial(0,row);
|
||||||
#else
|
|
||||||
Print * virtualLCD=NULL;
|
|
||||||
#endif
|
|
||||||
// Issue the LCD as a diag first
|
// Issue the LCD as a diag first
|
||||||
// Unless the same serial is asking for the virtual @ respomnse
|
// Unless the same serial is asking for the virtual @ respomnse
|
||||||
if (virtualLCD!=&USB_SERIAL) {
|
if (virtualLCD!=&USB_SERIAL) {
|
||||||
|
@ -53,14 +50,13 @@ void StringFormatter::lcd(byte row, const FSH* input...) {
|
||||||
send(&USB_SERIAL,F(" *>\n"));
|
send(&USB_SERIAL,F(" *>\n"));
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef DISABLE_VDPY
|
|
||||||
// send to virtual LCD collector (if any)
|
// send to virtual LCD collector (if any)
|
||||||
if (virtualLCD) {
|
if (virtualLCD) {
|
||||||
va_start(args, input);
|
va_start(args, input);
|
||||||
send2(virtualLCD,input,args);
|
send2(virtualLCD,input,args);
|
||||||
CommandDistributor::commitVirtualLCDSerial();
|
CommandDistributor::commitVirtualLCDSerial();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
DisplayInterface::setRow(row);
|
DisplayInterface::setRow(row);
|
||||||
va_start(args, input);
|
va_start(args, input);
|
||||||
send2(DisplayInterface::getDisplayHandler(),input,args);
|
send2(DisplayInterface::getDisplayHandler(),input,args);
|
||||||
|
@ -70,14 +66,12 @@ void StringFormatter::lcd2(uint8_t display, byte row, const FSH* input...) {
|
||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
// send to virtual LCD collector (if any)
|
// send to virtual LCD collector (if any)
|
||||||
#ifndef DISABLE_VDPY
|
|
||||||
Print * virtualLCD=CommandDistributor::getVirtualLCDSerial(display,row);
|
Print * virtualLCD=CommandDistributor::getVirtualLCDSerial(display,row);
|
||||||
if (virtualLCD) {
|
if (virtualLCD) {
|
||||||
va_start(args, input);
|
va_start(args, input);
|
||||||
send2(virtualLCD,input,args);
|
send2(virtualLCD,input,args);
|
||||||
CommandDistributor::commitVirtualLCDSerial();
|
CommandDistributor::commitVirtualLCDSerial();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
DisplayInterface::setRow(display, row);
|
DisplayInterface::setRow(display, row);
|
||||||
va_start(args, input);
|
va_start(args, input);
|
||||||
|
@ -256,3 +250,4 @@ void StringFormatter::printHex(Print * stream,uint16_t value) {
|
||||||
result[4]='\0';
|
result[4]='\0';
|
||||||
stream->print(result);
|
stream->print(result);
|
||||||
}
|
}
|
||||||
|
|
|
@ -532,6 +532,15 @@ void TrackManager::setTrackPower(POWERMODE powermode, byte t) {
|
||||||
driver->setPower(powermode);
|
driver->setPower(powermode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TrackManager::reportPowerChange(Print* stream, byte thistrack) {
|
||||||
|
// This function is for backward JMRI compatibility only
|
||||||
|
// It reports the first track only, as main, regardless of track settings.
|
||||||
|
// <c MeterName value C/V unit min max res warn>
|
||||||
|
int maxCurrent=track[0]->raw2mA(track[0]->getRawCurrentTripValue());
|
||||||
|
StringFormatter::send(stream, F("<c CurrentMAIN %d C Milli 0 %d 1 %d>\n"),
|
||||||
|
track[0]->raw2mA(track[0]->getCurrentRaw(false)), maxCurrent, maxCurrent);
|
||||||
|
}
|
||||||
|
|
||||||
// returns state of the one and only prog track
|
// returns state of the one and only prog track
|
||||||
POWERMODE TrackManager::getProgPower() {
|
POWERMODE TrackManager::getProgPower() {
|
||||||
FOR_EACH_TRACK(t)
|
FOR_EACH_TRACK(t)
|
||||||
|
|
|
@ -88,6 +88,7 @@ class TrackManager {
|
||||||
static void sampleCurrent();
|
static void sampleCurrent();
|
||||||
static void reportGauges(Print* stream);
|
static void reportGauges(Print* stream);
|
||||||
static void reportCurrent(Print* stream);
|
static void reportCurrent(Print* stream);
|
||||||
|
static void reportPowerChange(Print* stream, byte thistrack);
|
||||||
static void reportObsoleteCurrent(Print* stream);
|
static void reportObsoleteCurrent(Print* stream);
|
||||||
static void streamTrackState(Print* stream, byte t);
|
static void streamTrackState(Print* stream, byte t);
|
||||||
static bool isPowerOn(byte t);
|
static bool isPowerOn(byte t);
|
||||||
|
|
|
@ -199,18 +199,6 @@ The configuration file for DCC-EX Command Station
|
||||||
//
|
//
|
||||||
// #define DISABLE_PROG
|
// #define DISABLE_PROG
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// DISABLE / ENABLE VDPY
|
|
||||||
//
|
|
||||||
// The Virtual display "VDPY" feature is by default enabled everywhere
|
|
||||||
// but on Uno and Nano. If you think you can fit it (for example
|
|
||||||
// having disabled some of the features above) you can enable it with
|
|
||||||
// ENABLE_VDPY. You can even disable it on all other CPUs with
|
|
||||||
// DISABLE_VDPY
|
|
||||||
//
|
|
||||||
// #define DISABLE_VDPY
|
|
||||||
// #define ENABLE_VDPY
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////
|
||||||
// REDEFINE WHERE SHORT/LONG ADDR break is. According to NMRA the last short address
|
// REDEFINE WHERE SHORT/LONG ADDR break is. According to NMRA the last short address
|
||||||
// is 127 and the first long address is 128. There are manufacturers which have
|
// is 127 and the first long address is 128. There are manufacturers which have
|
||||||
|
|
|
@ -219,9 +219,10 @@
|
||||||
// The HAL is disabled by default on Nano and Uno platforms, because of limited flash space.
|
// The HAL is disabled by default on Nano and Uno platforms, because of limited flash space.
|
||||||
//
|
//
|
||||||
#if defined(ARDUINO_AVR_NANO) || defined(ARDUINO_AVR_UNO)
|
#if defined(ARDUINO_AVR_NANO) || defined(ARDUINO_AVR_UNO)
|
||||||
#define IO_NO_HAL // HAL too big whatever you disable otherwise
|
#if defined(DISABLE_DIAG) && defined(DISABLE_EEPROM) && defined(DISABLE_PROG)
|
||||||
#ifndef ENABLE_VDPY
|
#warning you have sacrificed DIAG for HAL
|
||||||
#define DISABLE_VDPY
|
#else
|
||||||
|
#define IO_NO_HAL
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user