diff --git a/FlippR-Driver/CMakeLists.txt b/FlippR-Driver/CMakeLists.txt index 9608a45..7972bc2 100644 --- a/FlippR-Driver/CMakeLists.txt +++ b/FlippR-Driver/CMakeLists.txt @@ -15,6 +15,10 @@ set(CMAKE_CXX_STANDARD 14) # Boost configuration set(BOOST_COMPONENTS program_options thread timer chrono) +IF(NOT_PI) + add_definitions(-DNOT_PI) + message("Compiling not for Pi") +ENDIF() project(FlippR-Driver) diff --git a/FlippR-Driver/contrib/json_example/output/Sound_Config.json b/FlippR-Driver/contrib/json_example/output/Sound_Config.json index 6cd37bd..ebda109 100644 --- a/FlippR-Driver/contrib/json_example/output/Sound_Config.json +++ b/FlippR-Driver/contrib/json_example/output/Sound_Config.json @@ -2,17 +2,11 @@ "deactivation_time_milliseconds" : 10, "port_extenders" : [ -<<<<<<< HEAD { "name" : "extender_0", "i2c_address" : 33, "pin_base" : 81 } -======= - "name" : "extender_0", - "i2c_address" : 33, - "pin_base" : 81 ->>>>>>> aa1d6409ea18cff1ad4b0ef06804fcf5a521dee9 ], "fire_pin" : { diff --git a/FlippR-Driver/networking/FlippRServer.cpp b/FlippR-Driver/networking/FlippRServer.cpp index c0f6b75..9b70795 100644 --- a/FlippR-Driver/networking/FlippRServer.cpp +++ b/FlippR-Driver/networking/FlippRServer.cpp @@ -121,10 +121,10 @@ void FlippRServer::initialize_output_driver() exit(EXIT_FAILURE); } - this->output_driver = flippR_driver::get_OutputDriver(lamp_config_stream, - solenoid_config_stream, - sound_config_stream, - display_config_stream); + this->output_driver = flippR_driver::get_OutputDriver(solenoid_config_stream, + lamp_config_stream, + sound_config_stream, + display_config_stream); } void FlippRServer::initialize_input_driver() @@ -156,6 +156,8 @@ int FlippRServer::main(const std::vector& args) std::unique_ptr input_server(this->build_input_server()); + logger().information("Server running!"); + waitForTerminationRequest(); this->output_driver->deactivate_all_lamps(); this->output_driver->deactivate_displays(); diff --git a/FlippR-Driver/src/DriverFactory.cpp b/FlippR-Driver/src/DriverFactory.cpp index 291e3ec..80fe739 100644 --- a/FlippR-Driver/src/DriverFactory.cpp +++ b/FlippR-Driver/src/DriverFactory.cpp @@ -4,6 +4,8 @@ #include "DriverFactory.h" +#include "utility/LoggerFactory.h" + #include "input/InputDriverFactory.h" #include "output/OutputDriverFactory.h" diff --git a/FlippR-Driver/src/PinController.cpp b/FlippR-Driver/src/PinController.cpp index 69b1dd9..fe1146a 100644 --- a/FlippR-Driver/src/PinController.cpp +++ b/FlippR-Driver/src/PinController.cpp @@ -8,12 +8,12 @@ #include "PinController.h" #include "utility/config.h" - +#define NOT_PI #ifndef NOT_PI #include "wiringPi/wiringPi.h" #include "wiringPi/mcp23017.h" #endif - + #ifdef NOT_PI #include "utility/wiringPiTesting.hpp" #endif diff --git a/FlippR-Driver/src/output/OutputDriverFactory.cpp b/FlippR-Driver/src/output/OutputDriverFactory.cpp index 89d4354..1bf0b4f 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.cpp +++ b/FlippR-Driver/src/output/OutputDriverFactory.cpp @@ -53,6 +53,7 @@ std::shared_ptr get_OutputDriver(std::istream& solenoid_config, std::map> create_solenoids(std::istream & solenoid_config, std::shared_ptr &pin_controller) { + solenoid_config.clear(); json solenoid_config_json; solenoid_config >> solenoid_config_json; @@ -74,6 +75,7 @@ std::map> create_solenoids(std::is std::shared_ptr create_solenoid(nlohmann::json &solenoid_json, nlohmann::json &port_extenders, std::shared_ptr &pin_controller, std::chrono::milliseconds deactivation_time) { + solenoid_json.clear(); std::string config_file_name = "solenoid_config.json"; uint8_t pin_base = get_pin_base(solenoid_json, port_extenders, config_file_name); @@ -91,6 +93,7 @@ std::shared_ptr create_solenoid(nlohmann::json &solenoi std::map> create_flippers(std::istream &solenoid_config, std::shared_ptr &pin_controller) { + solenoid_config.clear(); json solenoid_config_json; solenoid_config >> solenoid_config_json; @@ -121,6 +124,7 @@ std::shared_ptr create_flipper(nlohmann::json &flipper_j std::map> create_lamps(std::istream &lamp_config, std::shared_ptr &pin_controller) { + lamp_config.clear(); json lamp_config_json; lamp_config >> lamp_config_json; @@ -152,6 +156,7 @@ std::shared_ptr create_lamp(json &lamp_json, json & port_ex std::map> create_sounds(std::istream &sound_config, std::shared_ptr &pin_controller) { + sound_config.clear(); json sound_config_json; sound_config >> sound_config_json; @@ -186,6 +191,7 @@ std::shared_ptr create_sound(json &sound_json, json &port_ uint8_t get_sound_fire_address(std::istream &sound_config) { + sound_config.clear(); json sound_config_json; sound_config >> sound_config_json; @@ -200,6 +206,7 @@ uint8_t get_sound_fire_address(std::istream &sound_config) std::map parse_pins_display_board(std::istream &display_config) { + display_config.clear(); std::string config_file = "display_config.json"; json display_config_json; @@ -233,7 +240,7 @@ std::map parse_pins_display_board(std::istream &display_co std::vector> create_displays(std::istream &display_config) { - + display_config.clear(); json display_config_json; display_config >> display_config_json; @@ -259,7 +266,7 @@ std::shared_ptr create_display(json & display_json) return std::make_shared(address, id); else if(digits == 7) - return std::make_shared(address, id); + return std::make_shared(address, id); else throw new std::logic_error("Display digits can either be 7 or 8"); @@ -314,7 +321,6 @@ json get_element(const std::string & name, json & object, const std::string & fi try { sub_object = object.at(name); - return sub_object; } catch(json::exception &e) { @@ -322,21 +328,23 @@ json get_element(const std::string & name, json & object, const std::string & fi exit(EXIT_FAILURE); } + return sub_object; } template type get_value(const std::string & name, json & object, const std::string & file_name) { + type element; try { - type element = object.at(name).get(); - return element; + element = object.at(name).get(); } catch(json::exception &e) { CLOG(ERROR, OUTPUT_LOGGER) << "File " << file_name << " seems to be corrupted at " << name << ": " << e.what(); exit(EXIT_FAILURE); } + return element; } }