consting things
This commit is contained in:
@@ -25,7 +25,7 @@ public:
|
|||||||
virtual void register_event_handler(EventHandler* handler) = 0;
|
virtual void register_event_handler(EventHandler* handler) = 0;
|
||||||
virtual void unregister_event_handler(EventHandler* handler) = 0;
|
virtual void unregister_event_handler(EventHandler* handler) = 0;
|
||||||
|
|
||||||
virtual void distribute_event(Event &event) = 0;
|
virtual void distribute_event(const Event &event) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ class InputPinController
|
|||||||
public:
|
public:
|
||||||
virtual ~InputPinController() = default;
|
virtual ~InputPinController() = default;
|
||||||
|
|
||||||
virtual bool read_data(uint8_t pin) const = 0;
|
virtual bool read_data(const uint8_t &pin) const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ Detector::~Detector()
|
|||||||
this->detect_thread.join();
|
this->detect_thread.join();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Detector::detect()
|
void Detector::detect() const
|
||||||
{
|
{
|
||||||
while(this->is_running)
|
while(this->is_running)
|
||||||
{
|
{
|
||||||
@@ -42,7 +42,7 @@ void Detector::detect()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Detector::check_inputs()
|
void Detector::check_inputs() const
|
||||||
{
|
{
|
||||||
for(auto &event : events)
|
for(auto &event : events)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -40,8 +40,8 @@ public:
|
|||||||
~Detector() override;
|
~Detector() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void detect();
|
void detect() const;
|
||||||
void check_inputs();
|
void check_inputs() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const std::unique_ptr<input::InputPinController> input_gpio_interface;
|
const std::unique_ptr<input::InputPinController> input_gpio_interface;
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ void EventNotifier::unregister_event_handler(EventHandler *handler)
|
|||||||
this->event_handlers.erase(handler);
|
this->event_handlers.erase(handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventNotifier::distribute_event(Event &event)
|
void EventNotifier::distribute_event(const Event &event)
|
||||||
{
|
{
|
||||||
this->event_queue->push(event);
|
this->event_queue->push(event);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public:
|
|||||||
void register_event_handler(EventHandler *handler) override;
|
void register_event_handler(EventHandler *handler) override;
|
||||||
void unregister_event_handler(EventHandler *handler) override;
|
void unregister_event_handler(EventHandler *handler) override;
|
||||||
|
|
||||||
void distribute_event(Event &event) override;
|
void distribute_event(const Event &event) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void notify();
|
void notify();
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ InputPinController::InputPinController(std::map<std::string, uint8_t> pins)
|
|||||||
init_pins();
|
init_pins();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool InputPinController::read_data(uint8_t pin) const
|
bool InputPinController::read_data(const uint8_t &pin) const
|
||||||
{
|
{
|
||||||
// setting address to read
|
// setting address to read
|
||||||
write_row(pin / INPUT_MATRIX_SIZE);
|
write_row(pin / INPUT_MATRIX_SIZE);
|
||||||
@@ -40,14 +40,14 @@ bool InputPinController::read_data(uint8_t pin) const
|
|||||||
return read_pin(this->pins.at("data_address"));
|
return read_pin(this->pins.at("data_address"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void InputPinController::write_row(u_int8_t data) const
|
void InputPinController::write_row(const u_int8_t &data) const
|
||||||
{
|
{
|
||||||
write_pin(this->pins.at("row_address_A"), data & 0b001u);
|
write_pin(this->pins.at("row_address_A"), data & 0b001u);
|
||||||
write_pin(this->pins.at("row_address_B"), data & 0b010u);
|
write_pin(this->pins.at("row_address_B"), data & 0b010u);
|
||||||
write_pin(this->pins.at("row_address_C"), data & 0b100u);
|
write_pin(this->pins.at("row_address_C"), data & 0b100u);
|
||||||
}
|
}
|
||||||
|
|
||||||
void InputPinController::write_col(uint8_t data) const
|
void InputPinController::write_col(const uint8_t &data) const
|
||||||
{
|
{
|
||||||
write_pin(this->pins.at("col_address_A"), data & 0b001u);
|
write_pin(this->pins.at("col_address_A"), data & 0b001u);
|
||||||
write_pin(this->pins.at("col_address_B"), data & 0b010u);
|
write_pin(this->pins.at("col_address_B"), data & 0b010u);
|
||||||
|
|||||||
@@ -26,12 +26,12 @@ class InputPinController : public input::InputPinController, public PinControlle
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit InputPinController(std::map<std::string, uint8_t> pins);
|
explicit InputPinController(std::map<std::string, uint8_t> pins);
|
||||||
bool read_data(uint8_t pin) const override;
|
bool read_data(const uint8_t &pin) const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void init_pins() const;
|
void init_pins() const;
|
||||||
void write_row(u_int8_t data) const;
|
void write_row(const u_int8_t &data) const;
|
||||||
void write_col(uint8_t data) const;
|
void write_col(const uint8_t &data) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const std::map<std::string, uint8_t> pins;
|
const std::map<std::string, uint8_t> pins;
|
||||||
|
|||||||
@@ -17,10 +17,10 @@ class DisplayBoardPinController
|
|||||||
public:
|
public:
|
||||||
virtual ~DisplayBoardPinController() = default;
|
virtual ~DisplayBoardPinController() = default;
|
||||||
|
|
||||||
virtual void activate_displays() = 0;
|
virtual void activate_displays() const = 0;
|
||||||
virtual void deactivate_displays() = 0;
|
virtual void deactivate_displays() const = 0;
|
||||||
|
|
||||||
virtual void write_display(items::Display &display) = 0;
|
virtual void write_display(const items::Display &display) const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,17 +20,17 @@ DisplayBoardPinController::DisplayBoardPinController(std::map<std::string, uint8
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DisplayBoardPinController::activate_displays()
|
void DisplayBoardPinController::activate_displays() const
|
||||||
{
|
{
|
||||||
write_pin(pins_display_board.at("run"), 1);
|
write_pin(pins_display_board.at("run"), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DisplayBoardPinController::deactivate_displays()
|
void DisplayBoardPinController::deactivate_displays() const
|
||||||
{
|
{
|
||||||
write_pin(pins_display_board.at("run"), 0);
|
write_pin(pins_display_board.at("run"), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DisplayBoardPinController::write_display(items::Display &display)
|
void DisplayBoardPinController::write_display(const items::Display &display) const
|
||||||
{
|
{
|
||||||
std::vector<char> content = display.get_content();
|
std::vector<char> content = display.get_content();
|
||||||
|
|
||||||
|
|||||||
@@ -24,10 +24,10 @@ public:
|
|||||||
explicit DisplayBoardPinController(std::map<std::string, uint8_t> pins_display);
|
explicit DisplayBoardPinController(std::map<std::string, uint8_t> pins_display);
|
||||||
~DisplayBoardPinController() override = default;
|
~DisplayBoardPinController() override = default;
|
||||||
|
|
||||||
void activate_displays() override;
|
void activate_displays() const override;
|
||||||
void deactivate_displays() override;
|
void deactivate_displays() const override;
|
||||||
|
|
||||||
void write_display(items::Display &display) override;
|
void write_display(const items::Display &display) const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void write_display_digit(const uint8_t display_address, const char &content, const uint8_t &position);
|
void write_display_digit(const uint8_t display_address, const char &content, const uint8_t &position);
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ DisplayController::~DisplayController()
|
|||||||
this->display_cycle_thread.join();
|
this->display_cycle_thread.join();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DisplayController::cycle_displays()
|
void DisplayController::cycle_displays() const
|
||||||
{
|
{
|
||||||
while(is_running)
|
while(is_running)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,15 +30,14 @@ public:
|
|||||||
~DisplayController() override;
|
~DisplayController() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void cycle_displays();
|
void cycle_displays() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<std::shared_ptr<items::Display>> displays;
|
const std::vector<std::shared_ptr<items::Display>> displays;
|
||||||
|
|
||||||
|
const std::shared_ptr<DisplayBoardPinController> pin_controller;
|
||||||
|
|
||||||
std::thread display_cycle_thread;
|
std::thread display_cycle_thread;
|
||||||
|
|
||||||
std::shared_ptr<DisplayBoardPinController> pin_controller;
|
|
||||||
|
|
||||||
bool is_running;
|
bool is_running;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ void DriverBoardPinController::deactivate(items::DriverBoardItem &driver_board_i
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DriverBoardPinController::write_driver_board_address(uint8_t address)
|
void DriverBoardPinController::write_driver_board_address(const uint8_t address) const
|
||||||
{
|
{
|
||||||
int latch = address / 8;
|
int latch = address / 8;
|
||||||
int pin = address % 8;
|
int pin = address % 8;
|
||||||
@@ -48,7 +48,7 @@ void DriverBoardPinController::write_driver_board_address(uint8_t address)
|
|||||||
select_pin(pin);
|
select_pin(pin);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DriverBoardPinController::select_mux(uint8_t latch)
|
void DriverBoardPinController::select_mux(const uint8_t latch)const
|
||||||
{
|
{
|
||||||
bool mux1 = latch / 8;
|
bool mux1 = latch / 8;
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ void DriverBoardPinController::select_mux(uint8_t latch)
|
|||||||
write_pin(pins_driver_board.at("mux2"), !mux1);
|
write_pin(pins_driver_board.at("mux2"), !mux1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DriverBoardPinController::select_latch(uint8_t latch)
|
void DriverBoardPinController::select_latch(uint8_t latch) const
|
||||||
{
|
{
|
||||||
// todo not nice
|
// todo not nice
|
||||||
if(latch > 8)
|
if(latch > 8)
|
||||||
@@ -68,19 +68,19 @@ void DriverBoardPinController::select_latch(uint8_t latch)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DriverBoardPinController::write_data(bool data)
|
void DriverBoardPinController::write_data(const bool data) const
|
||||||
{
|
{
|
||||||
write_pin(pins_driver_board.at("data"), data);
|
write_pin(pins_driver_board.at("data"), data);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DriverBoardPinController::select_pin(uint8_t pin)
|
void DriverBoardPinController::select_pin(const uint8_t pin) const
|
||||||
{
|
{
|
||||||
write_pin(pins_driver_board.at("pin-select-A"), pin & 0b001u);
|
write_pin(pins_driver_board.at("pin-select-A"), pin & 0b001u);
|
||||||
write_pin(pins_driver_board.at("pin-select-B"), pin & 0b010u);
|
write_pin(pins_driver_board.at("pin-select-B"), pin & 0b010u);
|
||||||
write_pin(pins_driver_board.at("pin-select-C"), pin & 0b100u);
|
write_pin(pins_driver_board.at("pin-select-C"), pin & 0b100u);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DriverBoardPinController::write_pin(uint8_t pin, bool value)
|
void DriverBoardPinController::write_pin(const uint8_t pin, const bool value) const
|
||||||
{
|
{
|
||||||
PinController::write_pin(pins_driver_board.at("pin_base") + pin, value);
|
PinController::write_pin(pins_driver_board.at("pin_base") + pin, value);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,13 +31,13 @@ public:
|
|||||||
void deactivate(items::DriverBoardItem &driver_board_item) override;
|
void deactivate(items::DriverBoardItem &driver_board_item) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void write_driver_board_address(uint8_t address);
|
void write_driver_board_address(const uint8_t address) const;
|
||||||
void select_mux(uint8_t latch);
|
void select_mux(const uint8_t latch) const;
|
||||||
void select_latch(uint8_t latch);
|
void select_latch(uint8_t latch) const;
|
||||||
void select_pin(uint8_t pin);
|
void select_pin(const uint8_t pin) const;
|
||||||
void write_data(bool data);
|
void write_data(const bool data) const;
|
||||||
|
|
||||||
void write_pin(uint8_t pin, bool value);
|
void write_pin(const uint8_t pin, const bool value) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::shared_ptr<std::mutex> output_item_mutex;
|
std::shared_ptr<std::mutex> output_item_mutex;
|
||||||
|
|||||||
@@ -59,22 +59,22 @@ std::vector<std::shared_ptr<Solenoid>> OutputDriver::get_solenoids()
|
|||||||
return solenoids;
|
return solenoids;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::optional<std::shared_ptr<items::Lamp>> OutputDriver::get_lamp(std::string name)
|
boost::optional<std::shared_ptr<items::Lamp>> OutputDriver::get_lamp(const std::string &name) const
|
||||||
{
|
{
|
||||||
return this->lamps.find(name)->second;
|
return this->lamps.find(name)->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::optional<std::shared_ptr<items::Solenoid>> OutputDriver::get_solenoid(std::string name)
|
boost::optional<std::shared_ptr<items::Solenoid>> OutputDriver::get_solenoid(const std::string &name) const
|
||||||
{
|
{
|
||||||
return this->solenoids.find(name)->second;
|
return this->solenoids.find(name)->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::optional<std::shared_ptr<items::Sound>> OutputDriver::get_sound(std::string name)
|
boost::optional<std::shared_ptr<items::Sound>> OutputDriver::get_sound(const std::string &name) const
|
||||||
{
|
{
|
||||||
return this->sounds.find(name)->second;
|
return this->sounds.find(name)->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::optional<std::shared_ptr<items::Display>> OutputDriver::get_display(char number)
|
boost::optional<std::shared_ptr<items::Display>> OutputDriver::get_display(const char &number) const
|
||||||
{
|
{
|
||||||
return this->displays.find(number)->second;
|
return this->displays.find(number)->second;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,10 +32,10 @@ public:
|
|||||||
std::vector<std::shared_ptr<items::Sound>> get_sounds() override;
|
std::vector<std::shared_ptr<items::Sound>> get_sounds() override;
|
||||||
std::vector<std::shared_ptr<items::Display>> get_displays() override;
|
std::vector<std::shared_ptr<items::Display>> get_displays() override;
|
||||||
|
|
||||||
boost::optional<std::shared_ptr<items::Lamp>> get_lamp(std::string name) override;
|
boost::optional<std::shared_ptr<items::Lamp>> get_lamp(const std::string &name) override;
|
||||||
boost::optional<std::shared_ptr<items::Solenoid>> get_solenoid(std::string name) override;
|
boost::optional<std::shared_ptr<items::Solenoid>> get_solenoid(const std::&string name) override;
|
||||||
boost::optional<std::shared_ptr<items::Sound>> get_sound(std::string name) override;
|
boost::optional<std::shared_ptr<items::Sound>> get_sound(const std::string &name) override;
|
||||||
boost::optional<std::shared_ptr<items::Display>> get_display(char number) override;
|
boost::optional<std::shared_ptr<items::Display>> get_display(const char &number) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<output::DisplayController> display_controller;
|
std::unique_ptr<output::DisplayController> display_controller;
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ class Display
|
|||||||
public:
|
public:
|
||||||
virtual ~Display() = default;
|
virtual ~Display() = default;
|
||||||
|
|
||||||
virtual uint8_t get_address() = 0;
|
virtual uint8_t get_address() const = 0;
|
||||||
virtual std::vector<char> get_content() = 0;
|
virtual std::vector<char> get_content() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,8 +31,8 @@ public:
|
|||||||
virtual void write_score(int score);
|
virtual void write_score(int score);
|
||||||
virtual void write_content(std::array<char, DigitCount> content);
|
virtual void write_content(std::array<char, DigitCount> content);
|
||||||
|
|
||||||
std::vector<char> get_content() override;
|
std::vector<char> get_content() const override;
|
||||||
uint8_t get_address() override;
|
uint8_t get_address() const override;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
std::array<char, DigitCount> content;
|
std::array<char, DigitCount> content;
|
||||||
|
|||||||
@@ -32,12 +32,12 @@ public:
|
|||||||
void trigger() override;
|
void trigger() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::chrono::milliseconds deactivation_time;
|
virtual void triggerTask();
|
||||||
|
|
||||||
std::future<void> trigger_task;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void triggerTask();
|
const std::chrono::milliseconds deactivation_time;
|
||||||
|
|
||||||
|
std::future<void> trigger_task;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -40,9 +40,9 @@ public:
|
|||||||
void play() override;
|
void play() override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
const std::shared_ptr<SoundBoardPinController> pin_controller;
|
const std::chrono::milliseconds deactivation_time;
|
||||||
|
|
||||||
std::chrono::milliseconds deactivation_time;
|
const std::shared_ptr<SoundBoardPinController> pin_controller;
|
||||||
|
|
||||||
std::future<void> play_task;
|
std::future<void> play_task;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user