diff --git a/.idea/.name b/.idea/.name
new file mode 100644
index 0000000..822a8be
--- /dev/null
+++ b/.idea/.name
@@ -0,0 +1 @@
+flippr_code
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..15a15b2
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/flippr-code.iml b/.idea/flippr-code.iml
new file mode 100644
index 0000000..f08604b
--- /dev/null
+++ b/.idea/flippr-code.iml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..8822db8
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..3707f36
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..a3473c1
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,670 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1548684807717
+
+
+ 1548684807717
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ file://$PROJECT_DIR$/FlippR-Driver/src/utility/OutputRequestHandler.cpp
+ 170
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..168dfa2
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,200 @@
+cmake_minimum_required(VERSION 3.13)
+project(flippr_code)
+
+set(CMAKE_CXX_STANDARD 14)
+
+include_directories(FlippR-Driver/include)
+include_directories(FlippR-Driver/include/input)
+include_directories(FlippR-Driver/include/output)
+include_directories(FlippR-Driver/include/output/items)
+include_directories(FlippR-Driver/lib/easylogging)
+include_directories(FlippR-Driver/lib/json)
+include_directories(FlippR-Driver/lib/wiringPi)
+include_directories(FlippR-Driver/src)
+include_directories(FlippR-Driver/src/input)
+include_directories(FlippR-Driver/src/input/detail)
+include_directories(FlippR-Driver/src/output)
+include_directories(FlippR-Driver/src/output/detail)
+include_directories(FlippR-Driver/src/output/items)
+include_directories(FlippR-Driver/src/output/items/detail)
+include_directories(FlippR-Driver/src/utility)
+include_directories(FlippR-Driver/tests)
+
+add_executable(flippr_code
+ FlippR-Driver/cli/main.cpp
+ FlippR-Driver/cli/PrintHandler.cpp
+ FlippR-Driver/cli/PrintHandler.h
+ FlippR-Driver/contrib/json_example/input/Input_Matrix_Config.json
+ FlippR-Driver/contrib/json_example/input/Input_Pin_Config.json
+ FlippR-Driver/contrib/json_example/output/Display_Config.json
+ FlippR-Driver/contrib/json_example/output/Lamp_Config.json
+ FlippR-Driver/contrib/json_example/output/Output_Pin_Config.json
+ FlippR-Driver/contrib/json_example/output/Solenoid_Config.json
+ FlippR-Driver/contrib/json_example/output/Sound_Config.json
+ FlippR-Driver/contrib/uml/output_umldiagramm.puml
+ FlippR-Driver/contrib/uml/OutputItem_SequenceDiagram.puml
+ FlippR-Driver/contrib/uml/uml.puml
+ FlippR-Driver/contrib/ideen.txt
+ FlippR-Driver/include/input/Event.h
+ FlippR-Driver/include/input/EventHandler.h
+ FlippR-Driver/include/input/InputDriver.h
+ FlippR-Driver/include/output/items/Display.h
+ FlippR-Driver/include/output/items/EightDigitDisplay.h
+ FlippR-Driver/include/output/items/Lamp.h
+ FlippR-Driver/include/output/items/SevenDigitDisplay.h
+ FlippR-Driver/include/output/items/Solenoid.h
+ FlippR-Driver/include/output/items/Sound.h
+ FlippR-Driver/include/output/OutputDriver.h
+ FlippR-Driver/include/DriverFactory.h
+ FlippR-Driver/lib/easylogging/easylogging++.cc
+ FlippR-Driver/lib/easylogging/easylogging++.h
+ FlippR-Driver/lib/json/json.hpp
+ FlippR-Driver/lib/wiringPi/ads1115.c
+ FlippR-Driver/lib/wiringPi/ads1115.h
+ FlippR-Driver/lib/wiringPi/bmp180.c
+ FlippR-Driver/lib/wiringPi/bmp180.h
+ FlippR-Driver/lib/wiringPi/drcNet.c
+ FlippR-Driver/lib/wiringPi/drcNet.h
+ FlippR-Driver/lib/wiringPi/drcSerial.c
+ FlippR-Driver/lib/wiringPi/drcSerial.h
+ FlippR-Driver/lib/wiringPi/ds18b20.c
+ FlippR-Driver/lib/wiringPi/ds18b20.h
+ FlippR-Driver/lib/wiringPi/htu21d.c
+ FlippR-Driver/lib/wiringPi/htu21d.h
+ FlippR-Driver/lib/wiringPi/max31855.c
+ FlippR-Driver/lib/wiringPi/max31855.h
+ FlippR-Driver/lib/wiringPi/max5322.c
+ FlippR-Driver/lib/wiringPi/max5322.h
+ FlippR-Driver/lib/wiringPi/mcp23008.c
+ FlippR-Driver/lib/wiringPi/mcp23008.h
+ FlippR-Driver/lib/wiringPi/mcp23016.c
+ FlippR-Driver/lib/wiringPi/mcp23016.h
+ FlippR-Driver/lib/wiringPi/mcp23016reg.h
+ FlippR-Driver/lib/wiringPi/mcp23017.c
+ FlippR-Driver/lib/wiringPi/mcp23017.h
+ FlippR-Driver/lib/wiringPi/mcp23s08.c
+ FlippR-Driver/lib/wiringPi/mcp23s08.h
+ FlippR-Driver/lib/wiringPi/mcp23s17.c
+ FlippR-Driver/lib/wiringPi/mcp23s17.h
+ FlippR-Driver/lib/wiringPi/mcp23x08.h
+ FlippR-Driver/lib/wiringPi/mcp23x0817.h
+ FlippR-Driver/lib/wiringPi/mcp3002.c
+ FlippR-Driver/lib/wiringPi/mcp3002.h
+ FlippR-Driver/lib/wiringPi/mcp3004.c
+ FlippR-Driver/lib/wiringPi/mcp3004.h
+ FlippR-Driver/lib/wiringPi/mcp3422.c
+ FlippR-Driver/lib/wiringPi/mcp3422.h
+ FlippR-Driver/lib/wiringPi/mcp4802.c
+ FlippR-Driver/lib/wiringPi/mcp4802.h
+ FlippR-Driver/lib/wiringPi/pcf8574.c
+ FlippR-Driver/lib/wiringPi/pcf8574.h
+ FlippR-Driver/lib/wiringPi/pcf8591.c
+ FlippR-Driver/lib/wiringPi/pcf8591.h
+ FlippR-Driver/lib/wiringPi/piHiPri.c
+ FlippR-Driver/lib/wiringPi/piThread.c
+ FlippR-Driver/lib/wiringPi/pseudoPins.c
+ FlippR-Driver/lib/wiringPi/pseudoPins.h
+ FlippR-Driver/lib/wiringPi/rht03.c
+ FlippR-Driver/lib/wiringPi/rht03.h
+ FlippR-Driver/lib/wiringPi/sn3218.c
+ FlippR-Driver/lib/wiringPi/sn3218.h
+ FlippR-Driver/lib/wiringPi/softPwm.c
+ FlippR-Driver/lib/wiringPi/softPwm.h
+ FlippR-Driver/lib/wiringPi/softServo.c
+ FlippR-Driver/lib/wiringPi/softServo.h
+ FlippR-Driver/lib/wiringPi/softTone.c
+ FlippR-Driver/lib/wiringPi/softTone.h
+ FlippR-Driver/lib/wiringPi/sr595.c
+ FlippR-Driver/lib/wiringPi/sr595.h
+ FlippR-Driver/lib/wiringPi/wiringPi.c
+ FlippR-Driver/lib/wiringPi/wiringPi.h
+ FlippR-Driver/lib/wiringPi/wiringPiI2C.c
+ FlippR-Driver/lib/wiringPi/wiringPiI2C.h
+ FlippR-Driver/lib/wiringPi/wiringPiSPI.c
+ FlippR-Driver/lib/wiringPi/wiringPiSPI.h
+ FlippR-Driver/lib/wiringPi/wiringSerial.c
+ FlippR-Driver/lib/wiringPi/wiringSerial.h
+ FlippR-Driver/lib/wiringPi/wiringShift.c
+ FlippR-Driver/lib/wiringPi/wiringShift.h
+ FlippR-Driver/lib/wiringPi/wpiExtensions.c
+ FlippR-Driver/lib/wiringPi/wpiExtensions.h
+ FlippR-Driver/src/input/detail/Detector.cpp
+ FlippR-Driver/src/input/detail/Detector.h
+ FlippR-Driver/src/input/detail/EventHandler.cpp
+ FlippR-Driver/src/input/detail/EventHandler.h
+ FlippR-Driver/src/input/detail/EventNotifier.cpp
+ FlippR-Driver/src/input/detail/EventNotifier.h
+ FlippR-Driver/src/input/detail/InputDriver.cpp
+ FlippR-Driver/src/input/detail/InputDriver.h
+ FlippR-Driver/src/input/detail/InputPinController.cpp
+ FlippR-Driver/src/input/detail/InputPinController.h
+ FlippR-Driver/src/input/Detector.h
+ FlippR-Driver/src/input/DistributingEvent.cpp
+ FlippR-Driver/src/input/DistributingEvent.h
+ FlippR-Driver/src/input/Event.cpp
+ FlippR-Driver/src/input/EventNotifier.h
+ FlippR-Driver/src/input/InputDriverFactory.cpp
+ FlippR-Driver/src/input/InputDriverFactory.h
+ FlippR-Driver/src/input/InputPinController.h
+ FlippR-Driver/src/output/detail/DisplayBoardPinController.cpp
+ FlippR-Driver/src/output/detail/DisplayBoardPinController.h
+ FlippR-Driver/src/output/detail/DisplayController.cpp
+ FlippR-Driver/src/output/detail/DisplayController.h
+ FlippR-Driver/src/output/detail/DriverBoardPinController.cpp
+ FlippR-Driver/src/output/detail/DriverBoardPinController.h
+ FlippR-Driver/src/output/detail/OutputDriver.cpp
+ FlippR-Driver/src/output/detail/OutputDriver.h
+ FlippR-Driver/src/output/detail/SoundBoardPinController.cpp
+ FlippR-Driver/src/output/detail/SoundBoardPinController.h
+ FlippR-Driver/src/output/items/detail/Display.cpp
+ FlippR-Driver/src/output/items/detail/Display.h
+ FlippR-Driver/src/output/items/detail/EightDigitDisplay.h
+ FlippR-Driver/src/output/items/detail/Item.cpp
+ FlippR-Driver/src/output/items/detail/Item.h
+ FlippR-Driver/src/output/items/detail/Lamp.cpp
+ FlippR-Driver/src/output/items/detail/Lamp.h
+ FlippR-Driver/src/output/items/detail/SevenDigitDisplay.h
+ FlippR-Driver/src/output/items/detail/Solenoid.cpp
+ FlippR-Driver/src/output/items/detail/Solenoid.h
+ FlippR-Driver/src/output/items/detail/Sound.cpp
+ FlippR-Driver/src/output/items/detail/Sound.h
+ FlippR-Driver/src/output/items/DriverBoardItem.h
+ FlippR-Driver/src/output/items/Item.h
+ FlippR-Driver/src/output/items/OutputDisplay.h
+ FlippR-Driver/src/output/DisplayBoardPinController.h
+ FlippR-Driver/src/output/DisplayController.h
+ FlippR-Driver/src/output/DriverBoardPinController.h
+ FlippR-Driver/src/output/OutputDriverFactory.cpp
+ FlippR-Driver/src/output/OutputDriverFactory.h
+ FlippR-Driver/src/output/OutputPinController.cpp
+ FlippR-Driver/src/output/OutputPinController.h
+ FlippR-Driver/src/output/SoundBoardPinController.h
+ FlippR-Driver/src/utility/BlockingQueue.hpp
+ FlippR-Driver/src/utility/config.h
+ FlippR-Driver/src/utility/IBlockingQueue.h
+ FlippR-Driver/src/utility/InputSocketHandler.cpp
+ FlippR-Driver/src/utility/InputSocketHandler.h
+ FlippR-Driver/src/utility/LoggerFactory.cpp
+ FlippR-Driver/src/utility/LoggerFactory.h
+ FlippR-Driver/src/utility/OutputSocketHandler.cpp
+ FlippR-Driver/src/utility/OutputSocketHandler.h
+ FlippR-Driver/src/utility/SocketHandler.cpp
+ FlippR-Driver/src/utility/SocketHandler.h
+ FlippR-Driver/src/DriverFactory.cpp
+ FlippR-Driver/src/PinController.cpp
+ FlippR-Driver/src/PinController.h
+ FlippR-Driver/tests/input/TestDetector.cpp
+ FlippR-Driver/tests/input/TestEventHandler.cpp
+ FlippR-Driver/tests/input/TestEventNotifier.cpp
+ FlippR-Driver/tests/input/TestInputDriver.cpp
+ FlippR-Driver/tests/output/TestDisplay.cpp
+ FlippR-Driver/tests/output/TestDisplayController.cpp
+ FlippR-Driver/tests/output/TestLamp.cpp
+ FlippR-Driver/tests/output/TestOutputDriver.cpp
+ FlippR-Driver/tests/output/TestOutputItem.cpp
+ FlippR-Driver/tests/output/TestSolenoid.cpp
+ FlippR-Driver/tests/output/TestSound.cpp
+ FlippR-Driver/tests/catch.hpp
+ FlippR-Driver/tests/fakeit.hpp
+ FlippR-Driver/tests/main.cpp
+ FlippR-Driver/CMakeLists.txt FlippR-Driver/src/utility/OutputRequestHandler.cpp FlippR-Driver/src/utility/OutputRequestHandler.h FlippR-Driver/src/utility/OutputRequestHandlerFactory.cpp FlippR-Driver/src/utility/OutputRequestHandlerFactory.h FlippR-Driver/src/utility/OutputHTTPServer.cpp FlippR-Driver/src/utility/OutputHTTPServer.h)
diff --git a/FlippR-Driver/src/utility/OutputHTTPServer.cpp b/FlippR-Driver/src/utility/OutputHTTPServer.cpp
new file mode 100644
index 0000000..899f9fb
--- /dev/null
+++ b/FlippR-Driver/src/utility/OutputHTTPServer.cpp
@@ -0,0 +1,19 @@
+//
+// Created by rhetenor on 4/15/19.
+//
+
+#include "OutputHTTPServer.h"
+#include "OutputRequestHandlerFactory.h"
+#include
+namespace flippR_driver
+{
+namespace utility
+{
+using namespace Poco::Net;
+
+OutputHTTPServer::OutputHTTPServer(std::shared_ptr output_driver, Socket &socket) :
+HTTPServer(new OutputRequestHandlerFactory(output_driver), socket, new HTTPServerParams())
+{}
+
+}
+}
diff --git a/FlippR-Driver/src/utility/OutputHTTPServer.h b/FlippR-Driver/src/utility/OutputHTTPServer.h
new file mode 100644
index 0000000..10983ad
--- /dev/null
+++ b/FlippR-Driver/src/utility/OutputHTTPServer.h
@@ -0,0 +1,27 @@
+//
+// Created by rhetenor on 4/15/19.
+//
+
+#ifndef FLIPPR_CODE_OUTPUTHTTPSERVER_H
+#define FLIPPR_CODE_OUTPUTHTTPSERVER_H
+
+#include
+#include
+#include