mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2024-11-22 23:56:13 +01:00
EXRAIL: Catch CV read errors in the callback
This commit is contained in:
parent
7395aa4af8
commit
c07ac38ab1
|
@ -478,10 +478,15 @@ bool RMFT2::skipIfBlock() {
|
||||||
|
|
||||||
|
|
||||||
/* static */ void RMFT2::readLocoCallback(int16_t cv) {
|
/* static */ void RMFT2::readLocoCallback(int16_t cv) {
|
||||||
|
if (cv <= 0) {
|
||||||
|
DIAG(F("CV read error"));
|
||||||
|
progtrackLocoId = -1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (cv & LONG_ADDR_MARKER) { // maker bit indicates long addr
|
if (cv & LONG_ADDR_MARKER) { // maker bit indicates long addr
|
||||||
progtrackLocoId = cv ^ LONG_ADDR_MARKER; // remove marker bit to get real long addr
|
progtrackLocoId = cv ^ LONG_ADDR_MARKER; // remove marker bit to get real long addr
|
||||||
if (progtrackLocoId <= HIGHEST_SHORT_ADDR ) { // out of range for long addr
|
if (progtrackLocoId <= HIGHEST_SHORT_ADDR ) { // out of range for long addr
|
||||||
DIAG(F("Long addr %d <= %d unsupported\n"), progtrackLocoId, HIGHEST_SHORT_ADDR);
|
DIAG(F("Long addr %d <= %d unsupported"), progtrackLocoId, HIGHEST_SHORT_ADDR);
|
||||||
progtrackLocoId = -1;
|
progtrackLocoId = -1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user