#ifndef __DCSBIOS_LEDS_74HC595_H
#define __DCSBIOS_LEDS_74HC595_H
#include "Arduino.h"
#include "ExportStreamListener.h"
#include <ShiftRegister74HC595.h>
namespace DcsBios {
class LED74HC595 : public Int16Buffer {
private:
ShiftRegister74HC595<1> &sr;
unsigned int mask;
unsigned char pin;
public:
LED74HC595(unsigned int address, unsigned int mask, unsigned char pin, ShiftRegister74HC595<1> &sr) : Int16Buffer(address), mask(mask), pin(pin), sr(sr) {
sr.setNoUpdate(pin, LOW);
}
virtual void loop() {
if (hasUpdatedData()) {
if (getData() & mask) {
sr.setNoUpdate(pin, HIGH);
} else {
sr.setNoUpdate(pin, LOW);
}
}
}
};
}
#endif