mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2024-11-22 23:56:13 +01:00
disable more PROG stuff (all hash keywords PROG etc)
This commit is contained in:
parent
2d1e695ac7
commit
72d131035e
|
@ -152,7 +152,7 @@ byte DCCACK::getAck() {
|
||||||
return(0); // pending set off but not detected means no ACK.
|
return(0); // pending set off but not detected means no ACK.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef DISABLE_PROG
|
||||||
void DCCACK::loop() {
|
void DCCACK::loop() {
|
||||||
while (ackManagerProg) {
|
while (ackManagerProg) {
|
||||||
byte opcode=GETFLASH(ackManagerProg);
|
byte opcode=GETFLASH(ackManagerProg);
|
||||||
|
@ -414,7 +414,7 @@ void DCCACK::callback(int value) {
|
||||||
(ackManagerCallback)( value);
|
(ackManagerCallback)( value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void DCCACK::checkAck(byte sentResetsSincePacket) {
|
void DCCACK::checkAck(byte sentResetsSincePacket) {
|
||||||
if (!ackPending) return;
|
if (!ackPending) return;
|
||||||
|
|
|
@ -54,7 +54,6 @@
|
||||||
|
|
||||||
// These keywords are used in the <1> command. The number is what you get if you use the keyword as a parameter.
|
// These keywords are used in the <1> command. The number is what you get if you use the keyword as a parameter.
|
||||||
// To discover new keyword numbers , use the <$ YOURKEYWORD> command
|
// To discover new keyword numbers , use the <$ YOURKEYWORD> command
|
||||||
const int16_t HASH_KEYWORD_PROG = -29718;
|
|
||||||
const int16_t HASH_KEYWORD_MAIN = 11339;
|
const int16_t HASH_KEYWORD_MAIN = 11339;
|
||||||
const int16_t HASH_KEYWORD_JOIN = -30750;
|
const int16_t HASH_KEYWORD_JOIN = -30750;
|
||||||
const int16_t HASH_KEYWORD_CABS = -11981;
|
const int16_t HASH_KEYWORD_CABS = -11981;
|
||||||
|
@ -64,7 +63,10 @@ const int16_t HASH_KEYWORD_ACK = 3113;
|
||||||
const int16_t HASH_KEYWORD_ON = 2657;
|
const int16_t HASH_KEYWORD_ON = 2657;
|
||||||
const int16_t HASH_KEYWORD_DCC = 6436;
|
const int16_t HASH_KEYWORD_DCC = 6436;
|
||||||
const int16_t HASH_KEYWORD_SLOW = -17209;
|
const int16_t HASH_KEYWORD_SLOW = -17209;
|
||||||
|
#ifndef DISABLE_PROG
|
||||||
|
const int16_t HASH_KEYWORD_PROG = -29718;
|
||||||
const int16_t HASH_KEYWORD_PROGBOOST = -6353;
|
const int16_t HASH_KEYWORD_PROGBOOST = -6353;
|
||||||
|
#endif
|
||||||
#ifndef DISABLE_EEPROM
|
#ifndef DISABLE_EEPROM
|
||||||
const int16_t HASH_KEYWORD_EEPROM = -7168;
|
const int16_t HASH_KEYWORD_EEPROM = -7168;
|
||||||
#endif
|
#endif
|
||||||
|
@ -380,7 +382,9 @@ void DCCEXParser::parseOne(Print *stream, byte *com, RingStream * ringStream)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case 'M': // WRITE TRANSPARENT DCC PACKET MAIN <M REG X1 ... X9>
|
case 'M': // WRITE TRANSPARENT DCC PACKET MAIN <M REG X1 ... X9>
|
||||||
|
#ifndef DISABLE_PROG
|
||||||
case 'P': // WRITE TRANSPARENT DCC PACKET PROG <P REG X1 ... X9>
|
case 'P': // WRITE TRANSPARENT DCC PACKET PROG <P REG X1 ... X9>
|
||||||
|
#endif
|
||||||
// NOTE: this command was parsed in HEX instead of decimal
|
// NOTE: this command was parsed in HEX instead of decimal
|
||||||
params--; // drop REG
|
params--; // drop REG
|
||||||
if (params<1) break;
|
if (params<1) break;
|
||||||
|
@ -474,9 +478,11 @@ void DCCEXParser::parseOne(Print *stream, byte *com, RingStream * ringStream)
|
||||||
else if (p[0]==HASH_KEYWORD_MAIN) { // <1 MAIN>
|
else if (p[0]==HASH_KEYWORD_MAIN) { // <1 MAIN>
|
||||||
main=true;
|
main=true;
|
||||||
}
|
}
|
||||||
|
#ifndef DISABLE_PROG
|
||||||
else if (p[0]==HASH_KEYWORD_PROG) { // <1 PROG>
|
else if (p[0]==HASH_KEYWORD_PROG) { // <1 PROG>
|
||||||
prog=true;
|
prog=true;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
else break; // will reply <X>
|
else break; // will reply <X>
|
||||||
}
|
}
|
||||||
if (main) TrackManager::setMainPower(POWERMODE::ON);
|
if (main) TrackManager::setMainPower(POWERMODE::ON);
|
||||||
|
@ -500,9 +506,11 @@ void DCCEXParser::parseOne(Print *stream, byte *com, RingStream * ringStream)
|
||||||
if (p[0]==HASH_KEYWORD_MAIN) { // <0 MAIN>
|
if (p[0]==HASH_KEYWORD_MAIN) { // <0 MAIN>
|
||||||
main=true;
|
main=true;
|
||||||
}
|
}
|
||||||
|
#ifndef DISABLE_PROG
|
||||||
else if (p[0]==HASH_KEYWORD_PROG) { // <0 PROG>
|
else if (p[0]==HASH_KEYWORD_PROG) { // <0 PROG>
|
||||||
prog=true;
|
prog=true;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
else break; // will reply <X>
|
else break; // will reply <X>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -941,11 +949,11 @@ bool DCCEXParser::parseD(Print *stream, int16_t params, int16_t p[])
|
||||||
Diag::LCN = onOff;
|
Diag::LCN = onOff;
|
||||||
return true;
|
return true;
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef DISABLE_PROG
|
||||||
case HASH_KEYWORD_PROGBOOST:
|
case HASH_KEYWORD_PROGBOOST:
|
||||||
TrackManager::progTrackBoosted=true;
|
TrackManager::progTrackBoosted=true;
|
||||||
return true;
|
return true;
|
||||||
|
#endif
|
||||||
case HASH_KEYWORD_RESET:
|
case HASH_KEYWORD_RESET:
|
||||||
DCCTimer::reset();
|
DCCTimer::reset();
|
||||||
break; // and <X> if we didnt restart
|
break; // and <X> if we didnt restart
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
#define GITHUB_SHA "devel-202304172140Z"
|
#define GITHUB_SHA "devel-202304231822Z"
|
||||||
|
|
|
@ -33,8 +33,9 @@
|
||||||
FOR_EACH_TRACK(t) \
|
FOR_EACH_TRACK(t) \
|
||||||
if (trackMode[t]==findmode) \
|
if (trackMode[t]==findmode) \
|
||||||
track[t]->function;
|
track[t]->function;
|
||||||
|
#ifndef DISABLE_PROG
|
||||||
const int16_t HASH_KEYWORD_PROG = -29718;
|
const int16_t HASH_KEYWORD_PROG = -29718;
|
||||||
|
#endif
|
||||||
const int16_t HASH_KEYWORD_MAIN = 11339;
|
const int16_t HASH_KEYWORD_MAIN = 11339;
|
||||||
const int16_t HASH_KEYWORD_OFF = 22479;
|
const int16_t HASH_KEYWORD_OFF = 22479;
|
||||||
const int16_t HASH_KEYWORD_DC = 2183;
|
const int16_t HASH_KEYWORD_DC = 2183;
|
||||||
|
@ -116,7 +117,11 @@ void TrackManager::Setup(const FSH * shieldname,
|
||||||
|
|
||||||
// Default the first 2 tracks (which may be null) and perform HA waveform check.
|
// Default the first 2 tracks (which may be null) and perform HA waveform check.
|
||||||
setTrackMode(0,TRACK_MODE_MAIN);
|
setTrackMode(0,TRACK_MODE_MAIN);
|
||||||
|
#ifndef DISABLE_PROG
|
||||||
setTrackMode(1,TRACK_MODE_PROG);
|
setTrackMode(1,TRACK_MODE_PROG);
|
||||||
|
#else
|
||||||
|
setTrackMode(1,TRACK_MODE_MAIN);
|
||||||
|
#endif
|
||||||
|
|
||||||
// TODO Fault pin config for odd motor boards (example pololu)
|
// TODO Fault pin config for odd motor boards (example pololu)
|
||||||
// MotorDriver::commonFaultPin = ((mainDriver->getFaultPin() == progDriver->getFaultPin())
|
// MotorDriver::commonFaultPin = ((mainDriver->getFaultPin() == progDriver->getFaultPin())
|
||||||
|
@ -198,7 +203,11 @@ bool TrackManager::setTrackMode(byte trackToSet, TRACK_MODE mode, int16_t dcAddr
|
||||||
pinMode(p.invpin, OUTPUT); // gpio_reset_pin may reset to input
|
pinMode(p.invpin, OUTPUT); // gpio_reset_pin may reset to input
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef DISABLE_PROG
|
||||||
if (mode==TRACK_MODE_PROG) {
|
if (mode==TRACK_MODE_PROG) {
|
||||||
|
#else
|
||||||
|
if (false) {
|
||||||
|
#endif
|
||||||
// only allow 1 track to be prog
|
// only allow 1 track to be prog
|
||||||
FOR_EACH_TRACK(t)
|
FOR_EACH_TRACK(t)
|
||||||
if (trackMode[t]==TRACK_MODE_PROG && t != trackToSet) {
|
if (trackMode[t]==TRACK_MODE_PROG && t != trackToSet) {
|
||||||
|
@ -306,8 +315,10 @@ bool TrackManager::parseJ(Print *stream, int16_t params, int16_t p[])
|
||||||
if (params==2 && p[1]==HASH_KEYWORD_MAIN) // <= id MAIN>
|
if (params==2 && p[1]==HASH_KEYWORD_MAIN) // <= id MAIN>
|
||||||
return setTrackMode(p[0],TRACK_MODE_MAIN);
|
return setTrackMode(p[0],TRACK_MODE_MAIN);
|
||||||
|
|
||||||
|
#ifndef DISABLE_PROG
|
||||||
if (params==2 && p[1]==HASH_KEYWORD_PROG) // <= id PROG>
|
if (params==2 && p[1]==HASH_KEYWORD_PROG) // <= id PROG>
|
||||||
return setTrackMode(p[0],TRACK_MODE_PROG);
|
return setTrackMode(p[0],TRACK_MODE_PROG);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (params==2 && p[1]==HASH_KEYWORD_OFF) // <= id OFF>
|
if (params==2 && p[1]==HASH_KEYWORD_OFF) // <= id OFF>
|
||||||
return setTrackMode(p[0],TRACK_MODE_OFF);
|
return setTrackMode(p[0],TRACK_MODE_OFF);
|
||||||
|
@ -332,9 +343,11 @@ void TrackManager::streamTrackState(Print* stream, byte t) {
|
||||||
case TRACK_MODE_MAIN:
|
case TRACK_MODE_MAIN:
|
||||||
format=F("<= %c MAIN>\n");
|
format=F("<= %c MAIN>\n");
|
||||||
break;
|
break;
|
||||||
|
#ifndef DISABLE_PROG
|
||||||
case TRACK_MODE_PROG:
|
case TRACK_MODE_PROG:
|
||||||
format=F("<= %c PROG>\n");
|
format=F("<= %c PROG>\n");
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
case TRACK_MODE_OFF:
|
case TRACK_MODE_OFF:
|
||||||
format=F("<= %c OFF>\n");
|
format=F("<= %c OFF>\n");
|
||||||
break;
|
break;
|
||||||
|
@ -357,8 +370,10 @@ void TrackManager::streamTrackState(Print* stream, byte t) {
|
||||||
byte TrackManager::nextCycleTrack=MAX_TRACKS;
|
byte TrackManager::nextCycleTrack=MAX_TRACKS;
|
||||||
|
|
||||||
void TrackManager::loop() {
|
void TrackManager::loop() {
|
||||||
DCCWaveform::loop();
|
DCCWaveform::loop();
|
||||||
DCCACK::loop();
|
#ifndef DISABLE_PROG
|
||||||
|
DCCACK::loop();
|
||||||
|
#endif
|
||||||
bool dontLimitProg=DCCACK::isActive() || progTrackSyncMain || progTrackBoosted;
|
bool dontLimitProg=DCCACK::isActive() || progTrackSyncMain || progTrackBoosted;
|
||||||
nextCycleTrack++;
|
nextCycleTrack++;
|
||||||
if (nextCycleTrack>lastTrack) nextCycleTrack=0;
|
if (nextCycleTrack>lastTrack) nextCycleTrack=0;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user