compiling

This commit is contained in:
Jonas Zeunert
2018-12-07 16:15:54 +01:00
parent d25c030152
commit d32b651f72
5 changed files with 41 additions and 41 deletions

View File

@@ -23,7 +23,6 @@ EventHandler::EventHandler(std::shared_ptr<IInputDriver> input_driver) :
EventHandler::~EventHandler() EventHandler::~EventHandler()
{ {
this->input_driver->unregister_event_handler(this); this->input_driver->unregister_event_handler(this);
this->input_driver = nullptr;
} }
// This function is intended to be non pure, if it is called when the derived class doesn't exist anymore // This function is intended to be non pure, if it is called when the derived class doesn't exist anymore

View File

@@ -42,7 +42,7 @@ private:
void notify(); void notify();
private: private:
const utility::IBlockingQueue<Event>* event_queue; utility::IBlockingQueue<Event>* event_queue;
std::set<IEventHandler*> event_handlers; std::set<IEventHandler*> event_handlers;
bool is_running; bool is_running;

View File

@@ -58,25 +58,26 @@ std::vector<std::shared_ptr<ISolenoid>> OutputDriver::get_solenoids()
return solenoids; return solenoids;
} }
std::shared_ptr<ISound> OutputDriver::get_sound(std::string name) boost::optional<std::shared_ptr<items::ILamp>> OutputDriver::get_lamp(std::string name)
{ {
return this->sounds.find(name)->second; return this->lamps.find(name)->second;
} }
std::shared_ptr<IDisplay> OutputDriver::get_display(char number) boost::optional<std::shared_ptr<items::ISolenoid>> OutputDriver::get_solenoid(std::string name)
{
return this->displays.find(number)->second;
}
std::shared_ptr<ILamp> OutputDriver::get_lamp(std::string name)
{
return this->lamps.find(name)->second;
}
std::shared_ptr<ISolenoid> OutputDriver::get_solenoid(std::string name)
{ {
return this->solenoids.find(name)->second; return this->solenoids.find(name)->second;
} }
boost::optional<std::shared_ptr<items::ISound>> OutputDriver::get_sound(std::string name)
{
return this->sounds.find(name)->second;
}
boost::optional<std::shared_ptr<items::IDisplay>> OutputDriver::get_display(char number)
{
return this->displays.find(number)->second;
}
} /* namespace output */ } /* namespace output */
} }

View File

@@ -25,9 +25,9 @@ OutputGPIOInterface::OutputGPIOInterface(std::map<std::string, uint8_t> pins_dri
void OutputGPIOInterface::initialize_pins() void OutputGPIOInterface::initialize_pins()
{ {
// Since this are all outputs we just initialize everything as output conveniently // Since this are all outputs we just initialize everything as output conveniently
initialize_all_pins(pins_driver_board["pin_base"]); initialize_all_pins(pins_driver_board.at("pin_base"));
initialize_all_pins(pins_sound["pin_base"]); initialize_all_pins(pins_sound.at("pin_base"));
initialize_all_pins(pins_display["pin_base"]); initialize_all_pins(pins_display.at("pin_base"));
} }
void OutputGPIOInterface::initialize_all_pins(uint8_t pin_base) void OutputGPIOInterface::initialize_all_pins(uint8_t pin_base)
@@ -40,9 +40,9 @@ void OutputGPIOInterface::initialize_all_pins(uint8_t pin_base)
void OutputGPIOInterface::initialize_i2c_addresses() void OutputGPIOInterface::initialize_i2c_addresses()
{ {
mcp23017Setup(pins_driver_board["pin_base"], pins_driver_board["i2c_address"]); mcp23017Setup(pins_driver_board.at("pin_base"), pins_driver_board.at("i2c_address"));
mcp23017Setup(pins_sound["pin_base"], pins_sound["i2c_address"]); mcp23017Setup(pins_sound.at("pin_base"), pins_sound.at("i2c_address"));
mcp23017Setup(pins_display["pin_base"], pins_display["i2c_address"]); mcp23017Setup(pins_display.at("pin_base"), pins_display.at("i2c_address"));
} }
void OutputGPIOInterface::activate(output::items::ISoundItem *sound) void OutputGPIOInterface::activate(output::items::ISoundItem *sound)
@@ -97,8 +97,8 @@ void OutputGPIOInterface::select_mux(uint8_t latch)
{ {
bool mux1 = latch / 8; bool mux1 = latch / 8;
write_pin(pins_driver_board["mux1"], mux1); write_pin(pins_driver_board.at("mux1"), mux1);
write_pin(pins_driver_board["mux2"], !mux1); write_pin(pins_driver_board.at("mux2"), !mux1);
} }
void OutputGPIOInterface::select_latch(uint8_t latch) void OutputGPIOInterface::select_latch(uint8_t latch)
@@ -107,38 +107,38 @@ void OutputGPIOInterface::select_latch(uint8_t latch)
if(latch > 8) if(latch > 8)
latch -= 8; latch -= 8;
write_pin(pins_driver_board["latch-select-A"], latch & 0b001); write_pin(pins_driver_board.at("latch-select-A"), latch & 0b001);
write_pin(pins_driver_board["latch-select-B"], latch & 0b010); write_pin(pins_driver_board.at("latch-select-B"), latch & 0b010);
write_pin(pins_driver_board["latch-select-C"], latch & 0b100); write_pin(pins_driver_board.at("latch-select-C"), latch & 0b100);
} }
void OutputGPIOInterface::write_data(bool data) void OutputGPIOInterface::write_data(bool data)
{ {
write_pin(pins_driver_board["data"], data); write_pin(pins_driver_board.at("data"), data);
} }
void OutputGPIOInterface::select_pin(uint8_t pin) void OutputGPIOInterface::select_pin(uint8_t pin)
{ {
write_pin(pins_driver_board["pin-select-A"], pin & 0b001); write_pin(pins_driver_board.at("pin-select-A"), pin & 0b001);
write_pin(pins_driver_board["pin-select-B"], pin & 0b010); write_pin(pins_driver_board.at("pin-select-B"), pin & 0b010);
write_pin(pins_driver_board["pin-select-C"], pin & 0b100); write_pin(pins_driver_board.at("pin-select-C"), pin & 0b100);
} }
void OutputGPIOInterface::write_sound_address(uint8_t address) void OutputGPIOInterface::write_sound_address(uint8_t address)
{ {
write_pin(pins_sound["A"], address & 0b0000001); write_pin(pins_sound.at("A"), address & 0b0000001);
write_pin(pins_sound["B"], address & 0b0000010); write_pin(pins_sound.at("B"), address & 0b0000010);
write_pin(pins_sound["C"], address & 0b0000100); write_pin(pins_sound.at("C"), address & 0b0000100);
write_pin(pins_sound["D"], address & 0b0001000); write_pin(pins_sound.at("D"), address & 0b0001000);
write_pin(pins_sound["E"], address & 0b0010000); write_pin(pins_sound.at("E"), address & 0b0010000);
write_pin(pins_sound["F"], address & 0b0100000); write_pin(pins_sound.at("F"), address & 0b0100000);
write_pin(pins_sound["G"], address & 0b1000000); write_pin(pins_sound.at("G"), address & 0b1000000);
} }
void OutputGPIOInterface::fire_sound(bool fire) void OutputGPIOInterface::fire_sound(bool fire)
{ {
GPIOInterface::write_pin(pins_sound["fire"], fire); GPIOInterface::write_pin(pins_sound.at("fire"), fire);
} }
void OutputGPIOInterface::write_display(std::shared_ptr<output::items::IDisplay> display) void OutputGPIOInterface::write_display(std::shared_ptr<output::items::IDisplay> display)

View File

@@ -57,9 +57,9 @@ private:
private: private:
std::mutex output_item_mutex; std::mutex output_item_mutex;
std::map<std::string, uint8_t> pins_driver_board;// {{"i2c_address", 0}, {"pin_base", 0}, {"data", 0}, {"CL", 0}, {"latch-select-A", "0"}, {"latch-select-B", "0"}, {"latch-select-C", 0}, {"mux1", 0}, {"mux2", 0}, {"pin-select-A", 0}, {"pin-select-B", 0}, {"pin-select-C", 0}}; const std::map<std::string, uint8_t> pins_driver_board;
std::map<std::string, uint8_t> pins_sound;// {{"i2c_address", 0}, {"pin_base", 0}, {"fire", 0}, {"A", 0}, {"B", "0"}, {"C", "0"}, {"D", 0}, {"E", 0}, {"F", 0}, {"G", 0}}; const std::map<std::string, uint8_t> pins_sound;
std::map<std::string, uint8_t> pins_display;// {{"i2c_address", 0}, {"pin_base", 0}, {"fire", 0}, {"A", 0}, {"B", "0"}, {"C", "0"}, {"D", 0}, {"E", 0}, {"F", 0}, {"G", 0}}; const std::map<std::string, uint8_t> pins_display;
}; };
} }