written output item logic
This commit is contained in:
@@ -10,9 +10,13 @@
|
||||
|
||||
#include "GPIOInterface.h"
|
||||
|
||||
#include "output/items/IOutputItem.h"
|
||||
#include "output/items/IItem.h"
|
||||
#include "output/items/IDriverBoardItem.h"
|
||||
#include "output/items/ISound.h"
|
||||
#include "output/items/IDisplay.h"
|
||||
|
||||
#include "json/json.hpp"
|
||||
|
||||
#include <mcp23017.h>
|
||||
#include <mutex>
|
||||
#include <map>
|
||||
@@ -23,7 +27,6 @@ namespace utility
|
||||
|
||||
class OutputGPIOInterface : public GPIOInterface
|
||||
{
|
||||
using namespace nlohmann;
|
||||
|
||||
public:
|
||||
OutputGPIOInterface(std::istream &output_config_stream);
|
||||
@@ -31,26 +34,29 @@ public:
|
||||
virtual ~OutputGPIOInterface() = default;
|
||||
|
||||
void activate(output::items::ISound *sound);
|
||||
void activate(output::items::ILamp *lamp);
|
||||
void activate(output::items::ISolenoid *solenoid);
|
||||
void activate(output::items::IDriverBoardItem *driver_board_item);
|
||||
|
||||
void deactivate(output::items::ISound *sound);
|
||||
void deactivate(output::items::ILamp *lamp);
|
||||
void deactivate(output::items::ISolenoid *solenoid);
|
||||
void deactivate(output::items::IDriverBoardItem *driver_board_item);
|
||||
|
||||
void write_display(output::items::IDisplay &display);
|
||||
|
||||
private:
|
||||
void parse_output_config(json &output_config);
|
||||
void parse_pins_driver_board(json &driver_board_config);
|
||||
void parse_pins_sound(json &sound_board_config);
|
||||
void parse_pins_display(json &display_board_config);
|
||||
void parse_output_config(nlohmann::json &output_config);
|
||||
void parse_pins_driver_board(nlohmann::json &driver_board_config);
|
||||
void parse_pins_sound(nlohmann::json &sound_board_config);
|
||||
void parse_pins_display(nlohmann::json &display_board_config);
|
||||
|
||||
void initialize_i2c_addresses();
|
||||
|
||||
void initialize_pins();
|
||||
void initialize_all_pins(u_int8_t pin_base);
|
||||
|
||||
void write_sound_address(u_int8_t address);
|
||||
void write_driver_board_address(u_int8_t address);
|
||||
|
||||
void write_data(bool data);
|
||||
|
||||
private:
|
||||
std::mutex output_item_mutex;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user