diff --git a/FlippR-Driver/contrib/json_example/output/Lamp_Config.json b/FlippR-Driver/contrib/json_example/output/Lamp_Config.json index 5564b84..74da4a5 100644 --- a/FlippR-Driver/contrib/json_example/output/Lamp_Config.json +++ b/FlippR-Driver/contrib/json_example/output/Lamp_Config.json @@ -106,397 +106,314 @@ { "address" : 0, "name" : "Special 100000 Points", - "extender" : "extender_1" }, { "address" : 1, "name" : "Special 200000 Points", - "extender" : "extender_1" }, { "address" : 2, "name" : "Woman Speech Lamp", - "extender" : "extender_1" }, { "address" : 3, "name" : "Highest Score", - "extender" : "extender_1" }, { "address" : 4, "name" : "Pop 2+4", - "extender" : "extender_1" }, { "address" : 5, "name" : "Special 300000 Points", - "extender" : "extender_1" }, { "address" : 6, "name" : "Pop 1+3", - "extender" : "extender_1" }, { "address" : 7, "name" : "Special Orange", - "extender" : "extender_1" }, { "address" : 8, "name" : "Down", - "extender" : "extender_1" }, { "address" : 9, "name" : "Lamp 30 Sec", - "extender" : "extender_1" }, { "address" : 10, "name" : "Lamp 20 Sec", - "extender" : "extender_1" }, { "address" : 11, "name" : "Lamp 10 Sec", - "extender" : "extender_1" }, { "address" : 12, "name" : "Lamp 5 Sec", - "extender" : "extender_1" }, { "address" : 13, "name" : "Can Play 4", - "extender" : "extender_1" }, { "address" : 14, "name" : "Can Play 3", - "extender" : "extender_1" }, { "address" : 15, "name" : "P Of Champ", - "extender" : "extender_1" }, { "address" : 16, "name" : "M Of Champ", - "extender" : "extender_1" }, { "address" : 17, "name" : "A Of Champ", - "extender" : "extender_1" }, { "address" : 18, "name" : "Can Play 2", - "extender" : "extender_1" }, { "address" : 19, "name" : "Big Bonus 20000", - "extender" : "extender_1" }, { "address" : 20, "name" : "Can Play 1", - "extender" : "extender_1" }, { "address" : 21, "name" : "H Of Champ", - "extender" : "extender_1" }, { "address" : 22, "name" : "C Of Champ", - "extender" : "extender_1" }, { "address" : 23, "name" : "Special Red", - "extender" : "extender_1" }, { "address" : 24, "name" : "Super Bonus", - "extender" : "extender_1" }, { "address" : 25, "name" : "Bonus 20000", - "extender" : "extender_1" }, { "address" : 26, "name" : "2nd Kicker Lamp", - "extender" : "extender_1" }, { "address" : 27, "name" : "Bonus 18000", - "extender" : "extender_1" }, { "address" : 28, "name" : "Bonus 17000", - "extender" : "extender_1" }, { "address" : 29, "name" : "Bonus 16000", - "extender" : "extender_1" }, { "address" : 30, "name" : "Man Speech Lamp", - "extender" : "extender_1" }, { "address" : 31, "name" : "Bonus 15000", - "extender" : "extender_1" }, { "address" : 32, "name" : "Bonus 14000", - "extender" : "extender_1" }, { "address" : 33, "name" : "Bonus 13000", - "extender" : "extender_1" }, { "address" : 34, "name" : "Bonus 12000", - "extender" : "extender_1" }, { "address" : 35, "name" : "Ball", - "extender" : "extender_1" }, { "address" : 36, "name" : "Bonus 11000", - "extender" : "extender_1" }, { "address" : 37, "name" : "Bonus 10000", - "extender" : "extender_1" }, { "address" : 38, "name" : "Bonus 9000", - "extender" : "extender_1" }, { "address" : 39, "name" : "Bonus 8000", - "extender" : "extender_1" }, { "address" : 40, "name" : "Bonus 7000", - "extender" : "extender_1" }, { "address" : 41, "name" : "Bonus 6000", - "extender" : "extender_1" }, { "address" : 42, "name" : "Bonus 5000", - "extender" : "extender_1" }, { "address" : 43, "name" : "Pop 5 Head Lamp", - "extender" : "extender_1" }, { "address" : 44, "name" : "Bonus 3000", - "extender" : "extender_1" }, { "address" : 45, "name" : "Bonus 2000", - "extender" : "extender_1" }, { "address" : 46, "name" : "Bonus 1000", - "extender" : "extender_1" }, { "address" : 47, "name" : "Bonus 4000", - "extender" : "extender_1" }, { "address" : 48, "name" : "Right Advance Time", - "extender" : "extender_1" }, { "address" : 49, "name" : "UP", - "extender" : "extender_1" }, { "address" : 50, "name" : "Bonux Multiplier x50", - "extender" : "extender_1" }, { "address" : 51, "name" : "Bonus Multiplier x20", - "extender" : "extender_1" }, { "address" : 52, "name" : "Bonus Multiplier x10", - "extender" : "extender_1" }, { "address" : 53, "name" : "Credit", - "extender" : "extender_1" }, { "address" : 54, "name" : "Bonus 19000", - "extender" : "extender_1" }, { "address" : 55, "name" : "5th Button", - "extender" : "extender_1" }, { "address" : 56, "name" : "4th Button", - "extender" : "extender_1" }, { "address" : 57, "name" : "3rd Button", - "extender" : "extender_1" }, { "address" : 58, "name" : "2nd Button", - "extender" : "extender_1" }, { "address" : 59, "name" : "1st Button", - "extender" : "extender_1" - }, - { "todo" : "whatever", - "address" : 60, - "name" : "Flipper Relay", - "extender" : "extender_1" }, { "address" : 61, "name" : "Lamp 5", - "extender" : "extender_1" }, { "address" : 62, "name" : "Lamp 4", - "extender" : "extender_1" }, { "address" : 63, "name" : "Ball To Play", - "extender" : "extender_1" }, { "address" : 64, "name" : "Tunnel Lamp 20000 Points", - "extender" : "extender_1" }, { "address" : 65, "name" : "Tunnel Lamp 30000 Points", - "extender" : "extender_1" }, { "address" : 66, "name" : "Tunnel Lamp 50000 Points", - "extender" : "extender_1" }, { "address" : 67, "name" : "Match", - "extender" : "extender_1" }, { "address" : 68, "name" : "Lamp 3", - "extender" : "extender_1" }, { "address" : 69, "name" : "Lamp 2", - "extender" : "extender_1" }, { "address" : 70, "name" : "1st Kicker Lamp", - "extender" : "extender_1" }, { "address" : 71, "name" : "Lamp 1", - "extender" : "extender_1" }, { "address" : 72, "name" : "Left Advance Time", - "extender" : "extender_1" }, { "address" : 73, "name" : "Tilt", - "extender" : "extender_1" }, { "address" : 74, "name" : "Game Over", - "extender" : "extender_1" }, { "address" : 75, "name" : "500000 Points", - "extender" : "extender_1" }, { "address" : 76, "name" : "200000 Points", - "extender" : "extender_1" }, { "address" : 77, "name" : "150000 Points", - "extender" : "extender_1" }, { "address" : 78, "name" : "100000 Points", - "extender" : "extender_1" } ] } diff --git a/FlippR-Driver/contrib/json_example/output/Solenoid_Config.json b/FlippR-Driver/contrib/json_example/output/Solenoid_Config.json index 2322dee..a7ebcda 100644 --- a/FlippR-Driver/contrib/json_example/output/Solenoid_Config.json +++ b/FlippR-Driver/contrib/json_example/output/Solenoid_Config.json @@ -11,14 +11,12 @@ "flippers" : [ { - "address" : 61, + "address" : 60, "name" : "Flipper Relay", - "extender" : "extender_0" }, { "address" : 91, "name" : "Top Flipper Relay", - "extender" : "extender_0" } ], "solenoids" : @@ -28,57 +26,46 @@ "address" : 79, "name" : "Out Hole", "deactivation_time_milliseconds" : 15, - "extender" : "extender_0" }, { "address" : 82, "name" : "Bottom Right Pop", - "extender" : "extender_0" }, { "address" : 92, "name" : "Right Kicker", - "extender" : "extender_0" }, { "address" : 94, "name" : "Top Central Bank", - "extender" : "extender_0" }, { "address" : 95, "name" : "Coin Mechanism Coil", - "extender" : "extender_0" }, { "address" : 96, "name" : "Top Left Pop", - "extender" : "extender_0" }, { "address" : 97, "name" : "Bottom Right Bank", - "extender" : "extender_0" }, { "address" : 98, "name" : "Bottom Left Bank", - "extender" : "extender_0" }, { "address" : 99, "name" : "Knocker", - "extender" : "extender_0" }, { "address" : 100, "name" : "Right Flap", - "extender" : "extender_0" }, { "address" : 101, "name" : "Left Flap", - "extender" : "extender_0" } ] } diff --git a/FlippR-Driver/src/output/DriverBoardPinController.h b/FlippR-Driver/src/output/DriverBoardPinController.h index e0a6a72..5a0e45f 100644 --- a/FlippR-Driver/src/output/DriverBoardPinController.h +++ b/FlippR-Driver/src/output/DriverBoardPinController.h @@ -24,6 +24,8 @@ public: virtual void activate(items::DriverBoardItem &driver_board_item) = 0; virtual void deactivate(items::DriverBoardItem &driver_board_item) = 0; + virtual void clear() = 0; + }; } diff --git a/FlippR-Driver/src/output/OutputDriverFactory.cpp b/FlippR-Driver/src/output/OutputDriverFactory.cpp index 19bd676..183f424 100644 --- a/FlippR-Driver/src/output/OutputDriverFactory.cpp +++ b/FlippR-Driver/src/output/OutputDriverFactory.cpp @@ -41,6 +41,7 @@ std::shared_ptr get_OutputDriver(const std::string & solenoid_conf auto solenoids = get_items(solenoid_config_path, driver_board_pin_controller); auto lamps = get_items(lamp_config_path, driver_board_pin_controller); + driver_board_pin_controller->clear(); auto sound_board_pin_controller = std::make_shared(output_pin_mutex); auto sounds = get_items(sound_config_path, sound_board_pin_controller); diff --git a/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp b/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp index 30bf7ad..9bf1b34 100644 --- a/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp +++ b/FlippR-Driver/src/output/detail/DriverBoardPinController.cpp @@ -98,6 +98,20 @@ void DriverBoardPinController::deselect_all_muxes() } } +void DriverBoardPinController::clear() +{ + for(auto mux : mux_enable_pins) + { + for(uint8_t i = 0; i<8; i++) + { + select_mux(mux); + select_adress(i); + write_pin(data_pin, 0); + } + } + +} + } } } \ No newline at end of file diff --git a/FlippR-Driver/src/output/detail/DriverBoardPinController.h b/FlippR-Driver/src/output/detail/DriverBoardPinController.h index 19c495d..6035ab3 100644 --- a/FlippR-Driver/src/output/detail/DriverBoardPinController.h +++ b/FlippR-Driver/src/output/detail/DriverBoardPinController.h @@ -27,6 +27,7 @@ public: void activate(items::DriverBoardItem & driver_board_item); void deactivate(items::DriverBoardItem & driver_board_item); + void clear(); void set_address_pins(std::array address_pins); void set_mux_pins(std::array mux_enable_pins);