mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 15:12:06 +00:00 
			
		
		
		
	fixed
This commit is contained in:
		| @@ -425,7 +425,7 @@ message ListEntitiesFanResponse { | ||||
|   bool disabled_by_default = 9; | ||||
|   string icon = 10 [(field_ifdef) = "USE_ENTITY_ICON"]; | ||||
|   EntityCategory entity_category = 11; | ||||
|   repeated string supported_preset_modes = 12 [(container_pointer) = "std::vector"]; | ||||
|   repeated string supported_preset_modes = 12 [(container_pointer) = "FixedVector"]; | ||||
|   uint32 device_id = 13 [(field_ifdef) = "USE_DEVICES"]; | ||||
| } | ||||
| // Deprecated in API version 1.6 - only used in deprecated fields | ||||
|   | ||||
| @@ -725,7 +725,7 @@ class ListEntitiesFanResponse final : public InfoResponseProtoMessage { | ||||
|   bool supports_speed{false}; | ||||
|   bool supports_direction{false}; | ||||
|   int32_t supported_speed_count{0}; | ||||
|   const std::vector<std::string> *supported_preset_modes{}; | ||||
|   const FixedVector<std::string> *supported_preset_modes{}; | ||||
|   void encode(ProtoWriteBuffer buffer) const override; | ||||
|   void calculate_size(ProtoSize &size) const override; | ||||
| #ifdef HAS_PROTO_MESSAGE_DUMP | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| #include <utility> | ||||
| #include <vector> | ||||
| #include "esphome/core/helpers.h" | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| @@ -36,9 +36,14 @@ class FanTraits { | ||||
|   /// Set whether this fan supports changing direction | ||||
|   void set_direction(bool direction) { this->direction_ = direction; } | ||||
|   /// Return the preset modes supported by the fan. | ||||
|   const std::vector<std::string> &supported_preset_modes() const { return this->preset_modes_; } | ||||
|   const FixedVector<std::string> &supported_preset_modes() const { return this->preset_modes_; } | ||||
|   /// Set the preset modes supported by the fan. | ||||
|   void set_supported_preset_modes(const std::vector<std::string> &preset_modes) { this->preset_modes_ = preset_modes; } | ||||
|   template<typename T> void set_supported_preset_modes(const T &preset_modes) { | ||||
|     this->preset_modes_.init(preset_modes.size()); | ||||
|     for (const auto &mode : preset_modes) { | ||||
|       this->preset_modes_.push_back(mode); | ||||
|     } | ||||
|   } | ||||
|   /// Return if preset modes are supported | ||||
|   bool supports_preset_modes() const { return !this->preset_modes_.empty(); } | ||||
|  | ||||
| @@ -50,13 +55,13 @@ class FanTraits { | ||||
|   // It is used by the API to avoid copying data when encoding messages. | ||||
|   // Warning: Do not use this method outside of the API connection code. | ||||
|   // It returns a reference to internal data that can be invalidated. | ||||
|   const std::vector<std::string> &supported_preset_modes_for_api_() const { return this->preset_modes_; } | ||||
|   const FixedVector<std::string> &supported_preset_modes_for_api_() const { return this->preset_modes_; } | ||||
| #endif | ||||
|   bool oscillation_{false}; | ||||
|   bool speed_{false}; | ||||
|   bool direction_{false}; | ||||
|   int speed_count_{}; | ||||
|   std::vector<std::string> preset_modes_{}; | ||||
|   FixedVector<std::string> preset_modes_{}; | ||||
| }; | ||||
|  | ||||
| }  // namespace fan | ||||
|   | ||||
| @@ -21,7 +21,7 @@ class HBridgeFan : public Component, public fan::Fan { | ||||
|   void set_pin_a(output::FloatOutput *pin_a) { pin_a_ = pin_a; } | ||||
|   void set_pin_b(output::FloatOutput *pin_b) { pin_b_ = pin_b; } | ||||
|   void set_enable_pin(output::FloatOutput *enable) { enable_ = enable; } | ||||
|   void set_preset_modes(const std::vector<std::string> &presets) { preset_modes_ = presets; } | ||||
|   void set_preset_modes(const FixedVector<std::string> &presets) { preset_modes_ = presets; } | ||||
|  | ||||
|   void setup() override; | ||||
|   void dump_config() override; | ||||
| @@ -37,7 +37,7 @@ class HBridgeFan : public Component, public fan::Fan { | ||||
|   int speed_count_{}; | ||||
|   DecayMode decay_mode_{DECAY_MODE_SLOW}; | ||||
|   fan::FanTraits traits_; | ||||
|   std::vector<std::string> preset_modes_{}; | ||||
|   FixedVector<std::string> preset_modes_{}; | ||||
|  | ||||
|   void control(const fan::FanCall &call) override; | ||||
|   void write_state_(); | ||||
|   | ||||
| @@ -17,7 +17,7 @@ class SpeedFan : public Component, public fan::Fan { | ||||
|   void set_output(output::FloatOutput *output) { this->output_ = output; } | ||||
|   void set_oscillating(output::BinaryOutput *oscillating) { this->oscillating_ = oscillating; } | ||||
|   void set_direction(output::BinaryOutput *direction) { this->direction_ = direction; } | ||||
|   void set_preset_modes(const std::vector<std::string> &presets) { this->preset_modes_ = presets; } | ||||
|   void set_preset_modes(const FixedVector<std::string> &presets) { this->preset_modes_ = presets; } | ||||
|   fan::FanTraits get_traits() override { return this->traits_; } | ||||
|  | ||||
|  protected: | ||||
| @@ -29,7 +29,7 @@ class SpeedFan : public Component, public fan::Fan { | ||||
|   output::BinaryOutput *direction_{nullptr}; | ||||
|   int speed_count_{}; | ||||
|   fan::FanTraits traits_; | ||||
|   std::vector<std::string> preset_modes_{}; | ||||
|   FixedVector<std::string> preset_modes_{}; | ||||
| }; | ||||
|  | ||||
| }  // namespace speed | ||||
|   | ||||
| @@ -15,7 +15,7 @@ class TemplateFan : public Component, public fan::Fan { | ||||
|   void set_has_direction(bool has_direction) { this->has_direction_ = has_direction; } | ||||
|   void set_has_oscillating(bool has_oscillating) { this->has_oscillating_ = has_oscillating; } | ||||
|   void set_speed_count(int count) { this->speed_count_ = count; } | ||||
|   void set_preset_modes(const std::vector<std::string> &presets) { this->preset_modes_ = presets; } | ||||
|   void set_preset_modes(const FixedVector<std::string> &presets) { this->preset_modes_ = presets; } | ||||
|   fan::FanTraits get_traits() override { return this->traits_; } | ||||
|  | ||||
|  protected: | ||||
| @@ -25,7 +25,7 @@ class TemplateFan : public Component, public fan::Fan { | ||||
|   bool has_direction_{false}; | ||||
|   int speed_count_{0}; | ||||
|   fan::FanTraits traits_; | ||||
|   std::vector<std::string> preset_modes_{}; | ||||
|   FixedVector<std::string> preset_modes_{}; | ||||
| }; | ||||
|  | ||||
| }  // namespace template_ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user