class LightController
{
protected:
int bjtCount;
const int *bjtPins;
int *bjtState;
private:
void setAbsoluteState(const char data[], int index);
void parseRelativeState(const char data[], int index, int steps);
int clampState(int stateValue);
void commitState(int index);
void commitPinState(int index);
public:
LightController(const int bjtPins[], int bjtCount);
void updateState(const char data[], int steps);
int getBjtCount();
const int *getBjtPins();
int *getBjtState();
};