compiling
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 */
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user