Merge branch 'master' of https://github.com/swinginbird/flippr-code
This commit is contained in:
3
FlippR-Driver/.idea/dictionaries/rhetenor.xml
generated
3
FlippR-Driver/.idea/dictionaries/rhetenor.xml
generated
@@ -1,3 +0,0 @@
|
||||
<component name="ProjectDictionaryState">
|
||||
<dictionary name="rhetenor" />
|
||||
</component>
|
||||
@@ -1,11 +1,18 @@
|
||||
{
|
||||
"deactivation_time_milliseconds" : 10,
|
||||
"solenoids" :
|
||||
"flippers" :
|
||||
[
|
||||
{ // todo is this solenoid?
|
||||
{
|
||||
"address" : 61,
|
||||
"name" : "Flipper Relay"
|
||||
},
|
||||
{
|
||||
"address" : 91,
|
||||
"name" : "Top Flipper Relay"
|
||||
}
|
||||
],
|
||||
"solenoids" :
|
||||
[
|
||||
{
|
||||
"address" : 79,
|
||||
"name" : "Out Hole",
|
||||
@@ -15,10 +22,6 @@
|
||||
"address" : 82,
|
||||
"name" : "Bottom Right Pop"
|
||||
},
|
||||
{ // todo
|
||||
"address" : 91,
|
||||
"name" : "Top Flipper Relay"
|
||||
},
|
||||
{
|
||||
"address" : 92,
|
||||
"name" : "Right Kicker"
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
#include <boost/range/algorithm/copy.hpp>
|
||||
#include <boost/range/adaptor/map.hpp>
|
||||
#include <output/items/Flipper.h>
|
||||
#include <output/items/detail/Flipper.h>
|
||||
#include "OutputDriverFactory.h"
|
||||
|
||||
#include "utility/LoggerFactory.h"
|
||||
@@ -179,6 +181,51 @@ std::map<std::string, std::shared_ptr<items::Solenoid>> create_solenoids(std::is
|
||||
return solenoids;
|
||||
}
|
||||
|
||||
std::map<std::string, std::shared_ptr<items::Flipper>> create_flippers(std::istream &flipper_config, std::shared_ptr<DriverBoardPinController> &output_gpio_interface)
|
||||
{
|
||||
std::map<std::string, std::shared_ptr<items::Flipper>> flippers;
|
||||
|
||||
json flipper_config_json;
|
||||
flipper_config >> flipper_config_json;
|
||||
|
||||
json flippers_json;
|
||||
|
||||
try
|
||||
{
|
||||
flippers_json = flipper_config_json.at("flippers");
|
||||
}
|
||||
catch(json::exception &e)
|
||||
{
|
||||
CLOG(ERROR, OUTPUT_LOGGER) << "Output solenoids config file corrupted: Key \"flippers\" of type array needed. \n" << e.what();
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
for(auto &flipper_json : flippers_json)
|
||||
{
|
||||
auto flipper = create_flipper(flipper_json, output_gpio_interface);
|
||||
flippers.emplace(flipper->get_name(), flipper);
|
||||
}
|
||||
|
||||
return flippers;
|
||||
}
|
||||
|
||||
std::shared_ptr<items::detail::Flipper> create_flipper(nlohmann::json &flipper_json, std::shared_ptr<DriverBoardPinController> &pin_controller)
|
||||
{
|
||||
try
|
||||
{
|
||||
std::string name = flipper_json.at("name");
|
||||
auto address = flipper_json.at("address").get<uint8_t>();
|
||||
|
||||
return std::make_shared<items::detail::Flipper>(pin_controller, address, name);
|
||||
}
|
||||
catch(json::exception &e)
|
||||
{
|
||||
CLOG(ERROR, OUTPUT_LOGGER) << "Output solenoid config file corrupted: " << e.what();
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
std::map<std::string, std::shared_ptr<items::Lamp>> create_lamps(std::istream &lamp_config, std::shared_ptr<DriverBoardPinController> &output_gpio_interface)
|
||||
{
|
||||
std::map<std::string, std::shared_ptr<items::Lamp>> lamps;
|
||||
|
||||
@@ -14,7 +14,7 @@ namespace detail
|
||||
{
|
||||
|
||||
Item::Item(uint8_t address, std::string name) :
|
||||
address(address), name(std::move(name))
|
||||
address(address), name(std::move(name))
|
||||
{}
|
||||
|
||||
uint8_t Item::get_address() const
|
||||
|
||||
Reference in New Issue
Block a user