38 lines
801 B
C++
38 lines
801 B
C++
|
#include "DualColorLed.h"
|
||
|
|
||
|
#include <Arduino.h>
|
||
|
|
||
|
DualColorLed::DualColorLed(IGpio& redGpio, IGpio& greenGpio):
|
||
|
redGpio(redGpio),
|
||
|
greenGpio(greenGpio),
|
||
|
currentState(State::Off)
|
||
|
{
|
||
|
redGpio.write(false);
|
||
|
greenGpio.write(false);
|
||
|
redGpio.setMode(IGpio::Mode::Output);
|
||
|
greenGpio.setMode(IGpio::Mode::Output);
|
||
|
}
|
||
|
|
||
|
void DualColorLed::setState(DualColorLed::State newState)
|
||
|
{
|
||
|
if(currentState == newState)
|
||
|
return;
|
||
|
|
||
|
currentState = newState;
|
||
|
|
||
|
switch(newState) {
|
||
|
case State::Off:
|
||
|
redGpio.write(false);
|
||
|
greenGpio.write(false);
|
||
|
return;
|
||
|
case State::Red:
|
||
|
redGpio.write(true);
|
||
|
greenGpio.write(false);
|
||
|
return;
|
||
|
case State::Green:
|
||
|
redGpio.write(false);
|
||
|
greenGpio.write(true);
|
||
|
return;
|
||
|
}
|
||
|
}
|