nearly compiling
This commit is contained in:
@@ -18,6 +18,7 @@ namespace items
|
||||
|
||||
class IDriverBoardItem : public IItem
|
||||
{
|
||||
public:
|
||||
virtual ~IDriverBoardItem(){};
|
||||
};
|
||||
|
||||
|
||||
@@ -22,16 +22,6 @@ uint8_t Item::get_address()
|
||||
return this->address;
|
||||
}
|
||||
|
||||
void Item::activate()
|
||||
{
|
||||
gpio_interface->activate(this);
|
||||
}
|
||||
|
||||
void Item::deactivate()
|
||||
{
|
||||
gpio_interface->deactivate(this);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ public:
|
||||
private:
|
||||
std::chrono::milliseconds deactivation_time;
|
||||
|
||||
std::future<void> play_task;
|
||||
private:
|
||||
virtual void playTask();
|
||||
};
|
||||
|
||||
@@ -28,7 +28,7 @@ public:
|
||||
virtual void deactivate(output::items::IDriverBoardItem *driver_board_item) = 0;
|
||||
virtual void deactivate(output::items::ISoundItem *sound) = 0;
|
||||
|
||||
virtual void write_display(output::items::IDisplay *display) = 0;
|
||||
virtual void write_display(std::shared_ptr<output::items::IDisplay> display) = 0;
|
||||
//Display gpio interface!
|
||||
|
||||
};
|
||||
|
||||
@@ -97,16 +97,11 @@ void OutputGPIOInterface::initialize_i2c_addresses()
|
||||
mcp23017Setup(pins_display["pin_base"], pins_display["i2c_address"]);
|
||||
}
|
||||
|
||||
void OutputGPIOInterface::write_display(IDisplay &display)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void OutputGPIOInterface::activate(output::items::ISound *sound)
|
||||
void OutputGPIOInterface::activate(output::items::ISoundItem *sound)
|
||||
{
|
||||
std::lock_guard<std::mutex> guard(output_item_mutex);
|
||||
|
||||
write_sound_address(sound->);
|
||||
write_sound_address(sound->get_address());
|
||||
|
||||
fire_sound(1);
|
||||
}
|
||||
@@ -129,11 +124,11 @@ void OutputGPIOInterface::deactivate(output::items::IDriverBoardItem *driver_boa
|
||||
write_data(0);
|
||||
}
|
||||
|
||||
void OutputGPIOInterface::deactivate(output::items::ISound *sound)
|
||||
void OutputGPIOInterface::deactivate(output::items::ISoundItem *sound)
|
||||
{
|
||||
std::lock_guard<std::mutex> guard(output_item_mutex);
|
||||
|
||||
write_sound_address(sound->address);
|
||||
write_sound_address(sound->get_address());
|
||||
|
||||
fire_sound(0);
|
||||
}
|
||||
@@ -164,9 +159,9 @@ 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["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);
|
||||
|
||||
}
|
||||
|
||||
@@ -177,20 +172,20 @@ void OutputGPIOInterface::write_data(bool 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["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);
|
||||
}
|
||||
|
||||
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["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);
|
||||
}
|
||||
|
||||
void OutputGPIOInterface::fire_sound(bool fire)
|
||||
|
||||
@@ -62,9 +62,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}};
|
||||
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}};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user