10 #include "DCCpp_Uno.h" 11 #include "CurrentMonitor.h" 16 void CurrentMonitor::begin(
int pin,
const char *msg,
float inSampleMax)
21 this->currentSampleMax = inSampleMax;
24 boolean CurrentMonitor::checkTime()
26 if(millis( ) - sampleTime < CURRENT_SAMPLE_TIME)
28 sampleTime = millis();
32 void CurrentMonitor::check()
34 if (this->pin == UNDEFINED_PIN)
36 this->current = (float) (analogRead(this->pin) * CURRENT_SAMPLE_SMOOTHING + this->current * (1.0-CURRENT_SAMPLE_SMOOTHING));
37 int signalPin = DCCppConfig::SignalEnablePinProg;
38 if (signalPin == UNDEFINED_PIN)
39 signalPin = DCCppConfig::SignalEnablePinMain;
42 if (this->current > this->currentSampleMax && digitalRead(signalPin) == HIGH)
44 if (DCCppConfig::SignalEnablePinProg != UNDEFINED_PIN)
45 digitalWrite(DCCppConfig::SignalEnablePinProg, LOW);
46 if (DCCppConfig::SignalEnablePinMain != UNDEFINED_PIN)
47 digitalWrite(DCCppConfig::SignalEnablePinMain, LOW);
48 INTERFACE.print(this->msg);
49 #if !defined(USE_ETHERNET) 50 INTERFACE.println(
"");
55 long int CurrentMonitor::sampleTime=0;