1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-11-25 00:56:13 +01:00

Compare commits

..

6 Commits

Author SHA1 Message Date
Harald Barth
82929245ed char * / flashstring conflict 2023-05-25 14:02:28 +02:00
Harald Barth
db0e0cbf8b Send default function list in jR as well 2023-05-25 10:29:01 +02:00
Harald Barth
803b996e0b Merge branch 'devel' of https://github.com/DCC-EX/CommandStation-EX into devel 2023-05-25 09:29:47 +02:00
Harald Barth
5607ff7167 version 2023-05-25 09:29:42 +02:00
Harald Barth
58e62aaa81 Bug: Withrottle roster list returning empty string vs NULL 2023-05-25 09:27:41 +02:00
Harald Barth
5a9adea2b6 Bug: Withrottle roster list end was not detected 2023-05-25 08:05:07 +02:00
5 changed files with 16 additions and 12 deletions

View File

@ -652,8 +652,12 @@ void DCCEXParser::parseOne(Print *stream, byte *com, RingStream * ringStream)
if (params==1) { if (params==1) {
SENDFLASHLIST(stream,RMFT2::rosterIdList) SENDFLASHLIST(stream,RMFT2::rosterIdList)
} }
else StringFormatter::send(stream,F(" %d \"%S\" \"%S\""), else {
id, RMFT2::getRosterName(id), RMFT2::getRosterFunctions(id)); const FSH * functionNames= RMFT2::getRosterFunctions(id);
StringFormatter::send(stream,F(" %d \"%S\" \"%S\""),
id, RMFT2::getRosterName(id),
functionNames == NULL ? RMFT2::getRosterFunctions(0) : functionNames);
}
#endif #endif
StringFormatter::send(stream, F(">\n")); StringFormatter::send(stream, F(">\n"));
return; return;

View File

@ -223,7 +223,7 @@ const FSH * RMFT2::getRosterFunctions(int16_t id) {
#include "myAutomation.h" #include "myAutomation.h"
default: break; default: break;
} }
return F(""); return NULL;
} }
// Pass 8 Signal definitions // Pass 8 Signal definitions

View File

@ -1 +1 @@
#define GITHUB_SHA "devel-202305242057Z" #define GITHUB_SHA "devel-202305251144Z"

View File

@ -533,11 +533,11 @@ void WiThrottle::sendRoster(Print* stream) {
StringFormatter::send(stream,F("RL%d"), RMFT2::rosterNameCount); StringFormatter::send(stream,F("RL%d"), RMFT2::rosterNameCount);
for (int16_t r=0;;r++) { for (int16_t r=0;;r++) {
int16_t cabid=GETHIGHFLASHW(RMFT2::rosterIdList,r*2); int16_t cabid=GETHIGHFLASHW(RMFT2::rosterIdList,r*2);
if (cabid == INT16_MAX)
break;
if (cabid > 0) if (cabid > 0)
StringFormatter::send(stream,F("]\\[%S}|{%d}|{%c"), StringFormatter::send(stream,F("]\\[%S}|{%d}|{%c"),
RMFT2::getRosterName(cabid),cabid,cabid<128?'S':'L'); RMFT2::getRosterName(cabid),cabid,cabid<128?'S':'L');
else if (cabid == INT16_MAX)
break;
} }
StringFormatter::send(stream,F("\n")); StringFormatter::send(stream,F("\n"));
#else #else
@ -574,12 +574,12 @@ void WiThrottle::sendFunctions(Print* stream, byte loco) {
myLocos[loco].functionToggles=1<<2; // F2 (HORN) is a non-toggle myLocos[loco].functionToggles=1<<2; // F2 (HORN) is a non-toggle
#ifdef EXRAIL_ACTIVE #ifdef EXRAIL_ACTIVE
const char * functionNames=(char *) RMFT2::getRosterFunctions(locoid); const FSH * functionNames= RMFT2::getRosterFunctions(locoid);
if (!functionNames) { if (functionNames == NULL) {
// no roster entry for locoid, try to find default entry // no roster entry for locoid, try to find default entry
functionNames=(char *) RMFT2::getRosterFunctions(0); functionNames= RMFT2::getRosterFunctions(0);
} }
if (!functionNames) { if (functionNames == NULL) {
// no default roster entry either, use non-exrail presets as above // no default roster entry either, use non-exrail presets as above
} }
else if (GETFLASH(functionNames)=='\0') { else if (GETFLASH(functionNames)=='\0') {
@ -595,7 +595,7 @@ void WiThrottle::sendFunctions(Print* stream, byte loco) {
fkeys=0; fkeys=0;
bool firstchar=true; bool firstchar=true;
for (int fx=0;;fx++) { for (int fx=0;;fx++) {
char c=GETFLASH(functionNames+fx); char c=GETFLASH((char *)functionNames+fx);
if (c=='\0') { if (c=='\0') {
fkeys++; fkeys++;
break; break;

View File

@ -4,7 +4,7 @@
#include "StringFormatter.h" #include "StringFormatter.h"
#define VERSION "4.2.54pre1" #define VERSION "4.2.54pre4"
// 4.2.54 - Fix: Pin handling supports pins up to 254 // 4.2.54 - Fix: Pin handling supports pins up to 254
// 4.2.53 - Fix: Fault pin handling made more straight forward // 4.2.53 - Fix: Fault pin handling made more straight forward
// 4.2.52 - Experimental support for sabertooth motor controller on ESP32 // 4.2.52 - Experimental support for sabertooth motor controller on ESP32