diff --git a/DCCEX.h b/DCCEX.h index fb4baef..d89d581 100644 --- a/DCCEX.h +++ b/DCCEX.h @@ -10,7 +10,9 @@ #include "DCCEXParser.h" #include "version.h" #include "WifiInterface.h" +#if ETHERNET_ON == true #include "EthernetInterface.h" +#endif #include "LCD_Implementation.h" #include "freeMemory.h" #include diff --git a/DCCEXParser.cpp b/DCCEXParser.cpp index 3d3bed6..e4949ce 100644 --- a/DCCEXParser.cpp +++ b/DCCEXParser.cpp @@ -272,7 +272,8 @@ void DCCEXParser::parse(Print *stream, byte *com, bool blocking) else break; - // Convert JMRI bizarre -1=emergency stop, 0-126 as speeds + // Convert DCC-EX protocol speed steps where + // -1=emergency stop, 0-126 as speeds // to DCC 0=stop, 1= emergency stop, 2-127 speeds if (tspeed > 126 || tspeed < -1) break; // invalid JMRI speed code @@ -434,7 +435,7 @@ void DCCEXParser::parse(Print *stream, byte *com, bool blocking) return; case 'c': // READ CURRENT - StringFormatter::send(stream, F(""), DCCWaveform::mainTrack.getLastCurrent()); + StringFormatter::send(stream, F(""), DCCWaveform::mainTrack.get1024Current()); return; case 'Q': // SENSORS diff --git a/DCCWaveform.h b/DCCWaveform.h index c658577..b51e79f 100644 --- a/DCCWaveform.h +++ b/DCCWaveform.h @@ -57,6 +57,11 @@ class DCCWaveform { POWERMODE getPowerMode(); void checkPowerOverload(); int getLastCurrent(); + inline int get1024Current() { + if (powerMode == POWERMODE::ON) + return (int)(lastCurrent*(long int)1024/motorDriver->getRawCurrentTripValue()); + return 0; + } void schedulePacket(const byte buffer[], byte byteCount, byte repeats); volatile bool packetPending; volatile byte sentResetsSincePacket; diff --git a/EthernetInterface.cpp b/EthernetInterface.cpp index 6251bac..1cc41b8 100644 --- a/EthernetInterface.cpp +++ b/EthernetInterface.cpp @@ -18,6 +18,9 @@ * */ +#include "config.h" +#include "defines.h" // This should be changed to DCCEX.h when possible +#if ETHERNET_ON == true #include "EthernetInterface.h" #include "DIAG.h" #include "CommandDistributor.h" @@ -166,8 +169,6 @@ void EthernetInterface::loop() if (Diag::ETHERNET) DIAG(F("Ethernet reply socket=%d, count=:%d\n"), socketOut,count); for(;count>0;count--) clients[socketOut].write(outboundRing->read()); clients[socketOut].flush(); //maybe - } - } - - +} +#endif diff --git a/LCD_Implementation.h b/LCD_Implementation.h index 1da344e..45e0429 100644 --- a/LCD_Implementation.h +++ b/LCD_Implementation.h @@ -25,6 +25,8 @@ // which libraray is involved. //////////////////////////////////////////////////////////////////////////////////// +#ifndef LCD_Implementation_h +#define LCD_Implementation_h #include "config.h" #include #include "LCDDisplay.h" @@ -50,6 +52,5 @@ LCDDisplay * LCDDisplay::lcdDisplay=0; #include "LCD_NONE.h" #define CONDITIONAL_LCD_START if (false) /* NO LCD CONFIG */ #endif - - +#endif // LCD_Implementation_h diff --git a/config.example.h b/config.example.h index 174e590..0c2d137 100644 --- a/config.example.h +++ b/config.example.h @@ -76,6 +76,14 @@ The configuration file for DCC++ EX Command Station // //#define WIFI_CONNECT_TIMEOUT 14000 +///////////////////////////////////////////////////////////////////////////////////// +// +// ENABLE_ETHERNET: Set to true if you have an Arduino Ethernet card (wired). This +// is not for Wifi. You will then need the Arduino Ethernet library as well +// +//#define ENABLE_ETHERNET true + + ///////////////////////////////////////////////////////////////////////////////////// // // DEFINE STATIC IP ADDRESS *OR* COMMENT OUT TO USE DHCP diff --git a/version.h b/version.h index d0c09b9..e60dd91 100644 --- a/version.h +++ b/version.h @@ -4,7 +4,7 @@ #include "StringFormatter.h" // const char VERSION[] PROGMEM ="0.2.0"; -#define VERSION "3.0.0" +#define VERSION "3.0.1" #endif