1
0
mirror of https://github.com/DCC-EX/CommandStation-EX.git synced 2024-11-26 17:46:14 +01:00

show current from main on LDC every 2 sec

This commit is contained in:
Harald Barth 2021-11-14 20:37:24 +01:00
parent fb97ba11de
commit f7861e5103
3 changed files with 17 additions and 9 deletions

View File

@ -34,6 +34,8 @@ int DCCWaveform::progTripValue=0;
volatile uint8_t DCCWaveform::numAckGaps=0; volatile uint8_t DCCWaveform::numAckGaps=0;
volatile uint8_t DCCWaveform::numAckSamples=0; volatile uint8_t DCCWaveform::numAckSamples=0;
uint8_t DCCWaveform::trailingEdgeCounter=0; uint8_t DCCWaveform::trailingEdgeCounter=0;
static unsigned long lastLCDCurrentDisplay=0;
#define LCD_SAMPLE_PERIOD 2000 // milliseconds
void DCCWaveform::begin(MotorDriver * mainDriver, MotorDriver * progDriver) { void DCCWaveform::begin(MotorDriver * mainDriver, MotorDriver * progDriver) {
mainTrack.motorDriver=mainDriver; mainTrack.motorDriver=mainDriver;
@ -119,8 +121,9 @@ void DCCWaveform::setPowerMode(POWERMODE mode) {
void DCCWaveform::checkPowerOverload(bool ackManagerActive) { void DCCWaveform::checkPowerOverload(bool ackManagerActive) {
if (millis() - lastSampleTaken < sampleDelay) return; unsigned long now = millis();
lastSampleTaken = millis(); if (now - lastSampleTaken < sampleDelay) return;
lastSampleTaken = now;
int tripValue= motorDriver->getRawCurrentTripValue(); int tripValue= motorDriver->getRawCurrentTripValue();
if (!isMainTrack && !ackManagerActive && !progTrackSyncMain && !progTrackBoosted) if (!isMainTrack && !ackManagerActive && !progTrackSyncMain && !progTrackBoosted)
tripValue=progTripValue; tripValue=progTripValue;
@ -181,6 +184,10 @@ void DCCWaveform::checkPowerOverload(bool ackManagerActive) {
default: default:
sampleDelay = 999; // cant get here..meaningless statement to avoid compiler warning. sampleDelay = 999; // cant get here..meaningless statement to avoid compiler warning.
} }
if (isMainTrack && now - lastLCDCurrentDisplay > LCD_SAMPLE_PERIOD) {
lastLCDCurrentDisplay=now;
LCD(2,F("I= %dmA"), mainTrack.getCurrentmA());
}
} }
// For each state of the wave nextState=stateTransform[currentState] // For each state of the wave nextState=stateTransform[currentState]
const WAVE_STATE DCCWaveform::stateTransform[]={ const WAVE_STATE DCCWaveform::stateTransform[]={

View File

@ -1 +1 @@
#define GITHUB_SHA "ee5db61" #define GITHUB_SHA "LDC-show-current 2021114-20:14"

View File

@ -50,12 +50,13 @@ void StringFormatter::lcd(byte row, const FSH* input...) {
va_list args; va_list args;
// Issue the LCD as a diag first // Issue the LCD as a diag first
send(diagSerial,F("<* LCD%d:"),row); if (!LCDDisplay::lcdDisplay) {
va_start(args, input); send(diagSerial,F("<* LCD%d:"),row);
send2(diagSerial,input,args); va_start(args, input);
send(diagSerial,F(" *>\n")); send2(diagSerial,input,args);
send(diagSerial,F(" *>\n"));
if (!LCDDisplay::lcdDisplay) return; return;
}
LCDDisplay::lcdDisplay->setRow(row); LCDDisplay::lcdDisplay->setRow(row);
va_start(args, input); va_start(args, input);
send2(LCDDisplay::lcdDisplay,input,args); send2(LCDDisplay::lcdDisplay,input,args);