blink1-control
PatternCommand.hpp
Go to the documentation of this file.
1 
7 #pragma once
8 
9 #include <chrono>
10 
11 #include "blink-lib.hpp"
12 
13 namespace blink1_control::config {
14 
20  struct PatternCommand {
21  virtual ~PatternCommand() = default;
22 
28  virtual void execute(blink1_lib::Blink1Device& device) = 0;
29 
36  friend std::ostream& operator<<(std::ostream& os, const blink1_control::config::PatternCommand& config) {
37  config.output(os);
38  return os;
39  }
40 
41  private:
47  virtual void output(std::ostream& os) const = 0;
48  };
49 
54  struct FadeCommand : public PatternCommand {
55 
59  blink1_lib::PatternLineN fadeParams;
60 
66  explicit FadeCommand(blink1_lib::PatternLineN fadeParams);
67 
73  void execute(blink1_lib::Blink1Device& device) override;
74 
75  private:
81  void output(std::ostream& os) const override {
82  os << "FadeCommand{fadeParams: " << fadeParams << "}";
83  }
84  };
85 
89  struct WaitCommand : public PatternCommand {
90 
94  std::chrono::milliseconds waitTime;
95 
101  explicit WaitCommand(std::chrono::milliseconds waitTime);
102 
108  void execute(blink1_lib::Blink1Device& device) override;
109 
110  private:
116  void output(std::ostream& os) const override {
117  os << "WaitCommand{waitTime: " << waitTime.count() << "ms}";
118  }
119  };
120 
121 }
blink1_control::config::FadeCommand::fadeParams
blink1_lib::PatternLineN fadeParams
Definition: PatternCommand.hpp:59
blink1_control::config::FadeCommand::FadeCommand
FadeCommand(blink1_lib::PatternLineN fadeParams)
blink1_control::config::WaitCommand::execute
void execute(blink1_lib::Blink1Device &device) override
blink1_control::config::PatternCommand::execute
virtual void execute(blink1_lib::Blink1Device &device)=0
blink1_control::config::PatternCommand::operator<<
friend std::ostream & operator<<(std::ostream &os, const blink1_control::config::PatternCommand &config)
Definition: PatternCommand.hpp:36
blink1_control::config::WaitCommand
Definition: PatternCommand.hpp:89
blink1_control::config
Definition: ConditionConfig.hpp:12
blink1_control::config::FadeCommand::execute
void execute(blink1_lib::Blink1Device &device) override
blink1_control::config::WaitCommand::WaitCommand
WaitCommand(std::chrono::milliseconds waitTime)
blink1_control::config::PatternCommand
Definition: PatternCommand.hpp:20
blink1_control::config::WaitCommand::waitTime
std::chrono::milliseconds waitTime
Definition: PatternCommand.hpp:94
blink1_control::config::FadeCommand
Definition: PatternCommand.hpp:54