mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	Fix XOR condition (#5567)
This commit is contained in:
		| @@ -52,12 +52,12 @@ template<typename... Ts> class XorCondition : public Condition<Ts...> { | |||||||
|  public: |  public: | ||||||
|   explicit XorCondition(const std::vector<Condition<Ts...> *> &conditions) : conditions_(conditions) {} |   explicit XorCondition(const std::vector<Condition<Ts...> *> &conditions) : conditions_(conditions) {} | ||||||
|   bool check(Ts... x) override { |   bool check(Ts... x) override { | ||||||
|     bool xor_state = false; |     size_t result = 0; | ||||||
|     for (auto *condition : this->conditions_) { |     for (auto *condition : this->conditions_) { | ||||||
|       xor_state = xor_state ^ condition->check(x...); |       result += condition->check(x...); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     return xor_state; |     return result == 1; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  protected: |  protected: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user