17#include "sensorring/platform/SensorringExport.hpp"
60 virtual void setLight(
LightMode mode, std::uint8_t r = 0, std::uint8_t g = 0, std::uint8_t b = 0) = 0;
73 static void setAllLights(
const std::vector<Light*>& devices,
LightMode mode, std::uint8_t red, std::uint8_t green, std::uint8_t blue);
Base class for all concrete sensor/actuator devices.
LightMode
Light mode enumeration.
Definition LightMode.hpp:24
Parameter structure for the Light.
Device(DeviceID id, com::ComInterface *interface, com::ComEndpoint target)
Construct the device with identity and communication link.
virtual void setLight(LightMode mode, std::uint8_t r=0, std::uint8_t g=0, std::uint8_t b=0)=0
Set the light mode and color.
Light(DeviceID id, com::ComInterface *interface, com::ComEndpoint target)
Construct a Light with Device params.
virtual const LightParams & getParams() const =0
Get the current light parameters.
static void setAllLights(const std::vector< Light * > &devices, LightMode mode, std::uint8_t red, std::uint8_t green, std::uint8_t blue)
Broadcast a mode+color command to ALL WS2812b devices on ALL interfaces.
~Light() override=default
Virtual destructor.
Uniquely identifies a communication endpoint as a (Direction, BoardAddress, DeviceId) tuple.
Definition ComEndpoint.hpp:37
Identifier for a device: type, human-readable name, and index.
Definition DeviceID.hpp:27
Parameter structure of the Light.
Definition LightParams.hpp:30