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_