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()
{
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

View File

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

View File

@@ -58,25 +58,26 @@ std::vector<std::shared_ptr<ISolenoid>> OutputDriver::get_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)
{
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)
boost::optional<std::shared_ptr<items::ISolenoid>> OutputDriver::get_solenoid(std::string name)
{
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 */
}

View File

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

View File

@@ -57,9 +57,9 @@ private:
private:
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}};
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}};
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_driver_board;
const std::map<std::string, uint8_t> pins_sound;
const std::map<std::string, uint8_t> pins_display;
};
}