#pragma once // STL includes #include // jsoncpp includes #include // Hyperion-Leddevice includes #include class LedDevicePiBlaster : public LedDevice { public: /// /// Constructs specific LedDevice /// /// @param deviceConfig json device config /// LedDevicePiBlaster(const Json::Value &deviceConfig); virtual ~LedDevicePiBlaster(); /// /// Sets configuration /// /// @param deviceConfig the json device config /// @return true if success bool setConfig(const Json::Value &deviceConfig); /// constructs leddevice static LedDevice* construct(const Json::Value &deviceConfig); /// /// Attempts to open the piblaster-device. This will only succeed if the device is not yet open /// and the device is available. /// /// @return Zero on succes else negative /// int open(); /// /// Writes the colors to the PiBlaster device /// /// @param ledValues The color value for each led /// /// @return Zero on success else negative /// int write(const std::vector &ledValues); /// /// Switches off the leds /// /// @return Zero on success else negative /// int switchOff(); private: /// The name of the output device (very likely '/dev/pi-blaster') std::string _deviceName; int _gpio_to_led[64]; char _gpio_to_color[64]; /// File-Pointer to the PiBlaster device FILE * _fid; };