mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 15:12:06 +00:00 
			
		
		
		
	add save_mode optional config, defaulting to 0
This commit is contained in:
		| @@ -5,10 +5,14 @@ from esphome.const import CONF_ID | |||||||
| dynamic_lamp_ns = cg.esphome_ns.namespace('dynamic_lamp') | dynamic_lamp_ns = cg.esphome_ns.namespace('dynamic_lamp') | ||||||
| DynamicLamp = dynamic_lamp_ns.class_('DynamicLamp', cg.Component) | DynamicLamp = dynamic_lamp_ns.class_('DynamicLamp', cg.Component) | ||||||
|  |  | ||||||
|  | CONF_SAVE_MODE = 'save_mode' | ||||||
| CONFIG_SCHEMA = cv.Schema({ | CONFIG_SCHEMA = cv.Schema({ | ||||||
|     cv.GenerateID(): cv.declare_id(DynamicLamp) |     cv.GenerateID(): cv.declare_id(DynamicLamp), | ||||||
|  |     cv.Optional(CONF_SAVE_MODE, default=0): cv.int_range(0, 1), | ||||||
| }).extend(cv.COMPONENT_SCHEMA) | }).extend(cv.COMPONENT_SCHEMA) | ||||||
|  |  | ||||||
| def to_code(config): |  | ||||||
|  | async def to_code(config): | ||||||
|     var = cg.new_Pvariable(config[CONF_ID]) |     var = cg.new_Pvariable(config[CONF_ID]) | ||||||
|     yield cg.register_component(var, config) |     await cg.register_component(var, config) | ||||||
|  |     cg.add(var.set_save_mode(config[CONF_SAVE_MODE])) | ||||||
|   | |||||||
| @@ -9,8 +9,6 @@ static const char *TAG = "dynamic_lamp"; | |||||||
| void DynamicLamp::setup() { | void DynamicLamp::setup() { | ||||||
|   uint8_t i = 0; |   uint8_t i = 0; | ||||||
|   bool valid = true; |   bool valid = true; | ||||||
|   this->save_mode_ = SAVE_MODE_NONE; //Currently only none & fram supported |  | ||||||
|  |  | ||||||
|   if(this->save_mode_ == 0) { |   if(this->save_mode_ == 0) { | ||||||
|    for (i=0; i < 16; i++) { |    for (i=0; i < 16; i++) { | ||||||
|      this->active_lamps_[i].active = false; |      this->active_lamps_[i].active = false; | ||||||
| @@ -40,6 +38,10 @@ void DynamicLamp::dump_config(){ | |||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void DynamicLamp::set_save_mode(uint8_t save_mode) { | ||||||
|  |   this->save_mode_ = save_mode; | ||||||
|  | } | ||||||
|  |  | ||||||
| void DynamicLamp::set_lamp_count(uint8_t lamp_count) { | void DynamicLamp::set_lamp_count(uint8_t lamp_count) { | ||||||
|  |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,57 +0,0 @@ | |||||||
| #include "esphome/core/log.h" |  | ||||||
| #include "dynamic_lamp.h" |  | ||||||
|  |  | ||||||
| namespace esphome { |  | ||||||
| namespace dynamic_lamp { |  | ||||||
|  |  | ||||||
| static const char *TAG = "dynamic_lamp"; |  | ||||||
|  |  | ||||||
| void DynamicLamp::setup() { |  | ||||||
|   uint8_t i = 0; |  | ||||||
|   bool valid = true; |  | ||||||
|   this->save_mode_ = SAVE_MODE_NONE; //Currently only none & fram supported |  | ||||||
|  |  | ||||||
|   if(this->save_mode_ == 0) { |  | ||||||
|    for (i=0; i < 16; i++) { |  | ||||||
|      this->active_lamps_[i].active = false; |  | ||||||
|    } |  | ||||||
|   } else { |  | ||||||
|     while(i < 16) { |  | ||||||
|       this->restore_lamp_values_(i); |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void DynamicLamp::loop() { |  | ||||||
|  |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void DynamicLamp::dump_config(){ |  | ||||||
|   ESP_LOGCONFIG(TAG, "Dynamic Lamp feature loaded"); |  | ||||||
|   switch(this->save_mode_) { |  | ||||||
|     case SAVE_MODE_NONE: |  | ||||||
|       ESP_LOGCONFIG(TAG, "Save mode set to NONE"); |  | ||||||
|     case SAVE_MODE_FRAM: |  | ||||||
|       ESP_LOGCONFIG(TAG, "Save mode set to FRAM"); |  | ||||||
|       break; |  | ||||||
|     default: |  | ||||||
|       ESP_LOGCONFIG(TAG, "Currently only NONE(0) && FRAM(1) save modes supported, ignoring value %" PRIu8 " and defaulting to NONE!", this->save_mode_); |  | ||||||
|       this->save_mode_ = 0; |  | ||||||
|   } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void DynamicLamp::set_lamp_count(uint8_t lamp_count) { |  | ||||||
|  |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void DynamicLamp::set_lamp_values_(uint8_t lamp_number, bool active, uint16_t selected_outputs, uint8_t mode, uint8_t mode_value) { |  | ||||||
|  |  | ||||||
| } |  | ||||||
|  |  | ||||||
| void DynamicLamp::restore_lamp_values_(uint8_t lamp_number) { |  | ||||||
|   switch(this->save_mode_) |  | ||||||
|   this->active_lamps_[lamp_number].active = false; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| }  // namespace dynamic_lamp |  | ||||||
| }  // namespace esphome |  | ||||||
| @@ -36,6 +36,7 @@ class DynamicLamp : public Component { | |||||||
|   void loop() override; |   void loop() override; | ||||||
|   void dump_config() override; |   void dump_config() override; | ||||||
|   void set_lamp_count(uint8_t lamp_count); |   void set_lamp_count(uint8_t lamp_count); | ||||||
|  |   void set_save_mode(uint8_t save_mode); | ||||||
|  |  | ||||||
|  protected: |  protected: | ||||||
|   void restore_lamp_values_(uint8_t lamp_number); |   void restore_lamp_values_(uint8_t lamp_number); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user