mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2024-11-28 10:36:14 +01:00
Compare commits
6 Commits
117cb8900a
...
b9c4dc2227
Author | SHA1 | Date | |
---|---|---|---|
|
b9c4dc2227 | ||
|
8b8e9e4919 | ||
|
bef4b2ec35 | ||
|
9333beda49 | ||
|
46289fa78c | ||
|
b3cafd126e |
|
@ -121,7 +121,7 @@ Once a new OPCODE is decided upon, update this list.
|
||||||
for (int16_t i=0;;i+=sizeof(flashList[0])) { \
|
for (int16_t i=0;;i+=sizeof(flashList[0])) { \
|
||||||
int16_t value=GETHIGHFLASHW(flashList,i); \
|
int16_t value=GETHIGHFLASHW(flashList,i); \
|
||||||
if (value==INT16_MAX) break; \
|
if (value==INT16_MAX) break; \
|
||||||
if (value != 0) StringFormatter::send(stream,F(" %d"),value); \
|
StringFormatter::send(stream,F(" %d"),value); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -729,10 +729,14 @@ void DCCEXParser::parseOne(Print *stream, byte *com, RingStream * ringStream)
|
||||||
SENDFLASHLIST(stream,RMFT2::rosterIdList)
|
SENDFLASHLIST(stream,RMFT2::rosterIdList)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const FSH * functionNames= RMFT2::getRosterFunctions(id);
|
auto rosterName= RMFT2::getRosterName(id);
|
||||||
|
if (!rosterName) rosterName=F("");
|
||||||
|
|
||||||
|
auto functionNames= RMFT2::getRosterFunctions(id);
|
||||||
|
if (!functionNames) functionNames=RMFT2::getRosterFunctions(0);
|
||||||
|
if (!functionNames) functionNames=F("");
|
||||||
StringFormatter::send(stream,F(" %d \"%S\" \"%S\""),
|
StringFormatter::send(stream,F(" %d \"%S\" \"%S\""),
|
||||||
id, RMFT2::getRosterName(id),
|
id, rosterName, functionNames);
|
||||||
functionNames == NULL ? RMFT2::getRosterFunctions(0) : functionNames);
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
StringFormatter::send(stream, F(">\n"));
|
StringFormatter::send(stream, F(">\n"));
|
||||||
|
@ -985,7 +989,7 @@ bool DCCEXParser::parseD(Print *stream, int16_t params, int16_t p[])
|
||||||
|
|
||||||
case HASH_KEYWORD_RAM: // <D RAM>
|
case HASH_KEYWORD_RAM: // <D RAM>
|
||||||
StringFormatter::send(stream, F("Free memory=%d\n"), DCCTimer::getMinimumFreeMemory());
|
StringFormatter::send(stream, F("Free memory=%d\n"), DCCTimer::getMinimumFreeMemory());
|
||||||
break;
|
return true;
|
||||||
|
|
||||||
#ifndef DISABLE_PROG
|
#ifndef DISABLE_PROG
|
||||||
case HASH_KEYWORD_ACK: // <D ACK ON/OFF> <D ACK [LIMIT|MIN|MAX|RETRY] Value>
|
case HASH_KEYWORD_ACK: // <D ACK ON/OFF> <D ACK [LIMIT|MIN|MAX|RETRY] Value>
|
||||||
|
|
|
@ -200,7 +200,21 @@ wifiSerialState WifiInterface::setup2(const FSH* SSid, const FSH* password,
|
||||||
|
|
||||||
// Display the AT version information
|
// Display the AT version information
|
||||||
StringFormatter::send(wifiStream, F("AT+GMR\r\n"));
|
StringFormatter::send(wifiStream, F("AT+GMR\r\n"));
|
||||||
checkForOK(2000, true, false); // Makes this visible on the console
|
if (checkForOK(2000, F("AT version:"), true, false)) {
|
||||||
|
char version[] = "0.0.0.0";
|
||||||
|
for (int i=0; i<8;i++) {
|
||||||
|
while(!wifiStream->available());
|
||||||
|
version[i]=wifiStream->read();
|
||||||
|
StringFormatter::printEscape(version[i]);
|
||||||
|
if ((version[0] == '0') ||
|
||||||
|
(version[0] == '2' && version[2] == '0') ||
|
||||||
|
(version[0] == '2' && version[2] == '2' && version[4] == '0' && version[6] == '0')) {
|
||||||
|
SSid = F("DCCEX_SAYS_BROKEN_FIRMWARE");
|
||||||
|
forceAP = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
checkForOK(2000, true, false);
|
||||||
|
|
||||||
#ifdef DONT_TOUCH_WIFI_CONF
|
#ifdef DONT_TOUCH_WIFI_CONF
|
||||||
DIAG(F("DONT_TOUCH_WIFI_CONF was set: Using existing config"));
|
DIAG(F("DONT_TOUCH_WIFI_CONF was set: Using existing config"));
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
//#include "IO_TouchKeypad.h // Touch keypad with 16 keys
|
//#include "IO_TouchKeypad.h // Touch keypad with 16 keys
|
||||||
//#include "IO_EXTurntable.h" // Turntable-EX turntable controller
|
//#include "IO_EXTurntable.h" // Turntable-EX turntable controller
|
||||||
//#include "IO_EXFastClock.h" // FastClock driver
|
//#include "IO_EXFastClock.h" // FastClock driver
|
||||||
|
//#include "IO_PCA9555.h" // 16-bit I/O expander (NXP & Texas Instruments).
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
// The function halSetup() is invoked from CS if it exists within the build.
|
// The function halSetup() is invoked from CS if it exists within the build.
|
||||||
|
@ -51,7 +52,7 @@ void halSetup() {
|
||||||
// Create a 20x4 LCD display device as display number 2
|
// Create a 20x4 LCD display device as display number 2
|
||||||
// (line 0 is written by EX-RAIL 'SCREEN(2, 0, "text")').
|
// (line 0 is written by EX-RAIL 'SCREEN(2, 0, "text")').
|
||||||
|
|
||||||
// HALDisplay<LiquidCrystal>(2, 0x27, 20, 4);
|
// HALDisplay<LiquidCrystal>::create(2, 0x27, 20, 4);
|
||||||
|
|
||||||
|
|
||||||
//=======================================================================
|
//=======================================================================
|
||||||
|
|
|
@ -3,7 +3,9 @@
|
||||||
|
|
||||||
#include "StringFormatter.h"
|
#include "StringFormatter.h"
|
||||||
|
|
||||||
#define VERSION "5.0.2"
|
#define VERSION "5.0.4"
|
||||||
|
// 5.0.4 - Bugfix: <JR> misses default roster.
|
||||||
|
// 5.0.3 - Check bad AT firmware version
|
||||||
// 5.0.2 - Bugfix: ESP32 30ms off time
|
// 5.0.2 - Bugfix: ESP32 30ms off time
|
||||||
// 5.0.1 - Bugfix: execute 30ms off time before rejoin
|
// 5.0.1 - Bugfix: execute 30ms off time before rejoin
|
||||||
// 5.0.0 - Make 4.2.69 the 5.0.0 release
|
// 5.0.0 - Make 4.2.69 the 5.0.0 release
|
||||||
|
|
Loading…
Reference in New Issue
Block a user