28 #ifndef INCLUDE_OLA_RDM_ADVANCEDDIMMERRESPONDER_H_ 29 #define INCLUDE_OLA_RDM_ADVANCEDDIMMERRESPONDER_H_ 34 #include <ola/rdm/ResponderPersonality.h> 35 #include <ola/rdm/ResponderSettings.h> 57 class RDMOps :
public ResponderOps<AdvancedDimmerResponder> {
59 static RDMOps *Instance() {
61 instance =
new RDMOps();
67 static RDMOps *instance;
75 static const Personalities *Instance();
78 explicit Personalities(
const PersonalityList &personalities) :
82 static Personalities *instance;
96 uint16_t min_level_increasing;
97 uint16_t min_level_decreasing;
102 struct preset_playback_s {
108 struct preset_status_s {
110 uint16_t fade_up_time;
111 uint16_t fade_down_time;
124 typedef fail_mode_s startup_mode_s;
135 programmed(PRESET_NOT_PROGRAMMED) {
139 uint16_t fade_up_time;
140 uint16_t fade_down_time;
142 rdm_preset_programmed_mode programmed;
146 bool m_identify_state;
147 uint16_t m_start_address;
149 uint16_t m_maximum_level;
150 min_level_s m_min_level;
151 rdm_identify_mode m_identify_mode;
153 bool m_power_on_self_test;
157 LockManager m_lock_settings;
159 std::vector<Preset> m_presets;
160 uint16_t m_preset_scene;
161 uint8_t m_preset_level;
162 rdm_preset_mergemode m_preset_mergemode;
163 fail_mode_s m_fail_mode;
164 startup_mode_s m_startup_mode;
167 bool ValueBetweenRange(
const uint16_t value,
168 const uint16_t lower,
169 const uint16_t upper);
223 static const uint8_t DIMMER_RESOLUTION;
224 static const uint16_t LOWER_MIN_LEVEL;
225 static const uint16_t UPPER_MIN_LEVEL;
226 static const uint16_t LOWER_MAX_LEVEL;
227 static const uint16_t UPPER_MAX_LEVEL;
228 static const unsigned int PRESET_COUNT;
230 static const uint16_t MIN_FAIL_DELAY_TIME;
231 static const uint16_t MIN_FAIL_HOLD_TIME;
232 static const uint16_t MAX_FAIL_DELAY_TIME;
233 static const uint16_t MAX_FAIL_HOLD_TIME;
234 static const uint16_t MIN_STARTUP_DELAY_TIME;
235 static const uint16_t MIN_STARTUP_HOLD_TIME;
236 static const uint16_t MAX_STARTUP_DELAY_TIME;
237 static const uint16_t MAX_STARTUP_HOLD_TIME;
238 static const uint16_t INFINITE_TIME;
242 static const char* CURVES[];
243 static const char* RESPONSE_TIMES[];
244 static const char* LOCK_STATES[];
256 #endif // INCLUDE_OLA_RDM_ADVANCEDDIMMERRESPONDER_H_
Definitions and Interfaces to implement an RDMController that sends a single message at a time...
Definition: ResponderPersonality.h:65
An RDM Command that represents responses (GET, SET or DISCOVER).
Definition: RDMCommand.h:457
#define PACK(__Declaration__)
Pack structures.
Definition: Macro.h:170
void SendRDMRequest(RDMRequest *request, RDMCallback *callback)
Send a RDM command.
Definition: AdvancedDimmerResponder.cpp:293
AdvancedDimmerResponder(const UID &uid)
Definition: AdvancedDimmerResponder.cpp:255
RDM Commands that represent requests (GET, SET or DISCOVER).
Definition: RDMCommand.h:234
A RDM unique identifier (UID).
The constructor argument for the FrequencyModulationSetting.
Definition: ResponderSettings.h:106
A class which dispatches RDM requests to registered PID handlers.
Definition: ResponderOps.h:60
Definition: AdvancedDimmerResponder.h:47
Definition: ResponderPersonality.h:90
The base class for all 1 argument callbacks.
Definition: Callback.h:982
The interface that can send RDMRequest.
Definition: RDMControllerInterface.h:73
A framework for building RDM responders.
Represents a RDM UID.
Definition: UID.h:57
The namespace containing all OLA symbols.
Definition: Credentials.cpp:44