Bug fixes:
Telnet spy would not work in AP only mode LVC would not allow start when in warning mode, and LVC warning always started at 12/24V Added "No GPIO" option for new boards with C6 fitted as a 0R
This commit is contained in:
parent
c9298656fa
commit
c76490481d
4 changed files with 24 additions and 5 deletions
|
@ -545,7 +545,13 @@ void TelnetSpy::handle() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!listening) {
|
if (!listening) {
|
||||||
if (WiFi.status() != WL_CONNECTED) {
|
|
||||||
|
wifi_mode_t currentMode = WiFi.getMode();
|
||||||
|
bool isAPEnabled = ((currentMode & WIFI_MODE_AP) != 0);
|
||||||
|
bool isSTAconnected = WiFi.status() == WL_CONNECTED;
|
||||||
|
|
||||||
|
// if (WiFi.status() != WL_CONNECTED && !isAPEnabled) {
|
||||||
|
if (!isSTAconnected && !isAPEnabled) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
telnetServer = new WiFiServer(port);
|
telnetServer = new WiFiServer(port);
|
||||||
|
|
|
@ -1043,7 +1043,8 @@ bool validateFrame(const CProtocol& frame, const char* name)
|
||||||
|
|
||||||
int requestOn(bool checkTemp)
|
int requestOn(bool checkTemp)
|
||||||
{
|
{
|
||||||
if(bHasHtrData && (0 == SmartError.checkVolts(FilteredSamples.FastipVolts.getValue(), FilteredSamples.FastGlowAmps.getValue()))) {
|
bool LVCOK = SmartError.checkVolts(FilteredSamples.FastipVolts.getValue(), FilteredSamples.FastGlowAmps.getValue()) != 2;
|
||||||
|
if(bHasHtrData && LVCOK) {
|
||||||
RTC_Store.setCyclicEngaged(true); // for cyclic mode
|
RTC_Store.setCyclicEngaged(true); // for cyclic mode
|
||||||
RTC_Store.setFrostOn(false); // cancel frost mode
|
RTC_Store.setFrostOn(false); // cancel frost mode
|
||||||
if(!preemptCyclicMode()) { // only start if below cyclic threshold when enabled
|
if(!preemptCyclicMode()) { // only start if below cyclic threshold when enabled
|
||||||
|
|
|
@ -131,7 +131,11 @@ CSmartError::checkVolts(float ipVolts, float glowI, bool throwfault)
|
||||||
|
|
||||||
// loom compenstaion, allow 1V drop for 10A current (bit naive but better than no compensation)
|
// loom compenstaion, allow 1V drop for 10A current (bit naive but better than no compensation)
|
||||||
float cableComp = glowI * 0.1;
|
float cableComp = glowI * 0.1;
|
||||||
float threshLVC = NVstore.getHeaterTuning().getLVC() - cableComp; // NVstore
|
float usrLVC = NVstore.getHeaterTuning().getLVC();
|
||||||
|
if(usrLVC == 0) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
float threshLVC = usrLVC - cableComp; // NVstore
|
||||||
|
|
||||||
// test low voltage cutout
|
// test low voltage cutout
|
||||||
if(ipVolts < threshLVC) {
|
if(ipVolts < threshLVC) {
|
||||||
|
@ -144,6 +148,7 @@ CSmartError::checkVolts(float ipVolts, float glowI, bool throwfault)
|
||||||
|
|
||||||
// warning threshold
|
// warning threshold
|
||||||
float threshWarn = threshLVC + 0.5; // nominally create a warning threshold, 0.5V over LVC threhsold
|
float threshWarn = threshLVC + 0.5; // nominally create a warning threshold, 0.5V over LVC threhsold
|
||||||
|
/*
|
||||||
float alertlimit; // but always introduce it if below system voltage
|
float alertlimit; // but always introduce it if below system voltage
|
||||||
if(NVstore.getHeaterTuning().sysVoltage == 120) {
|
if(NVstore.getHeaterTuning().sysVoltage == 120) {
|
||||||
alertlimit = 12.0 - cableComp;
|
alertlimit = 12.0 - cableComp;
|
||||||
|
@ -154,6 +159,7 @@ CSmartError::checkVolts(float ipVolts, float glowI, bool throwfault)
|
||||||
if(threshWarn < alertlimit) {
|
if(threshWarn < alertlimit) {
|
||||||
threshWarn = alertlimit;
|
threshWarn = alertlimit;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
if(ipVolts < threshWarn) {
|
if(ipVolts < threshWarn) {
|
||||||
return 1; // LVC OK, but below warning threshold, return code = 1
|
return 1; // LVC OK, but below warning threshold, return code = 1
|
||||||
|
|
|
@ -56,8 +56,9 @@
|
||||||
// unmodified V2.0 LOW HIGH LOW - digital only (V2 PCB)
|
// unmodified V2.0 LOW HIGH LOW - digital only (V2 PCB)
|
||||||
// modified V2.0 LOW LOW HIGH - full GPIO (V2 or V3 PCB)
|
// modified V2.0 LOW LOW HIGH - full GPIO (V2 or V3 PCB)
|
||||||
// V2.1 LOW LOW HIGH - digital only (modified V2 PCB)
|
// V2.1 LOW LOW HIGH - digital only (modified V2 PCB)
|
||||||
// No GPIO V2.0 HIGH LOW HIGH - no GPIO (V2 or V3 PCB, 0R in C6)
|
// No GPIO V2.0 HIGH LOW HIGH - no GPIO (V2 PCB, 0R in C6)
|
||||||
// V2.1 LOW LOW LOW - digital only (V3 PCB, 0R in C6)
|
// V2.1 LOW LOW LOW - digital only (V3 PCB, 0R in C6)
|
||||||
|
// No GPIO V3.x HIGH HIGH LOW - no GPIO (V3.x PCB, 0R in C6)
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// ****************************************************************************************
|
// ****************************************************************************************
|
||||||
|
@ -125,6 +126,11 @@ int BoardDetect()
|
||||||
revision = BRD_V2_NOGPIO;
|
revision = BRD_V2_NOGPIO;
|
||||||
DebugPort.println("Board detect: digital input test reveals V2.2 PCB - no GPIO (V2.0 userID) ");
|
DebugPort.println("Board detect: digital input test reveals V2.2 PCB - no GPIO (V2.0 userID) ");
|
||||||
}
|
}
|
||||||
|
// V3.x PCB, pin 33 grounded via 0R instead of 100n cap, digio transistors not fitted dig in pins pull high
|
||||||
|
else if((pin33 == LOW) && (pin26 == HIGH) && (pin25 == HIGH)) {
|
||||||
|
revision = BRD_V2_NOGPIO;
|
||||||
|
DebugPort.println("Board detect: digital input test reveals V3.x PCB - no GPIO (V2.0 userID) ");
|
||||||
|
}
|
||||||
// modified V2 PCB or new V2.1PCB, pins 25 & 33 swapped, Alg routed to usuable pin 33 // cap, dig inputs pulled low by transistors
|
// modified V2 PCB or new V2.1PCB, pins 25 & 33 swapped, Alg routed to usuable pin 33 // cap, dig inputs pulled low by transistors
|
||||||
else if((pin33 == HIGH) && (pin26 == LOW) && (pin25 == LOW)) {
|
else if((pin33 == HIGH) && (pin26 == LOW) && (pin25 == LOW)) {
|
||||||
revision = BRD_V2_FULLGPIO;
|
revision = BRD_V2_FULLGPIO;
|
||||||
|
|
Loading…
Reference in a new issue