class LightController { protected: int bjtCount; 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); public: LightController(int *bjtPins, __SIZE_TYPE__ bjtCount); void updateState(const char data[], __SIZE_TYPE__ dataLength, int steps); int getBjtCount(); int *getBjtPins(); int *getBjtState(); };