From 1b90bf7518e42930feca8d89d7a8c28b2f1c0f5d Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Mon, 6 May 2019 21:31:17 +0200 Subject: [PATCH] restored OUtputPinController --- FlippR-Driver/CMakeLists.txt | 15 +++---- FlippR-Driver/networking/CMakeLists.txt | 23 +++++++++++ .../networking/input/SocketHandler.cpp | 0 .../networking/input/SocketHandler.h | 0 .../networking/output/OutputHTTPServer.cpp | 0 .../networking/output/OutputHTTPServer.h | 0 .../output/OutputRequestHandler.cpp | 0 .../networking/output/OutputRequestHandler.h | 0 .../output/OutputRequestHandlerFactory.cpp | 0 .../output/OutputRequestHandlerFactory.h | 0 .../src/output/OutputPinController.cpp | 33 +++++++++++++++ .../src/output/OutputPinController.h | 41 +++++++++++++++++++ 12 files changed, 103 insertions(+), 9 deletions(-) create mode 100644 FlippR-Driver/networking/CMakeLists.txt rename FlippR-Driver/{src/utility => }/networking/input/SocketHandler.cpp (100%) rename FlippR-Driver/{src/utility => }/networking/input/SocketHandler.h (100%) rename FlippR-Driver/{src/utility => }/networking/output/OutputHTTPServer.cpp (100%) rename FlippR-Driver/{src/utility => }/networking/output/OutputHTTPServer.h (100%) rename FlippR-Driver/{src/utility => }/networking/output/OutputRequestHandler.cpp (100%) rename FlippR-Driver/{src/utility => }/networking/output/OutputRequestHandler.h (100%) rename FlippR-Driver/{src/utility => }/networking/output/OutputRequestHandlerFactory.cpp (100%) rename FlippR-Driver/{src/utility => }/networking/output/OutputRequestHandlerFactory.h (100%) create mode 100644 FlippR-Driver/src/output/OutputPinController.cpp create mode 100644 FlippR-Driver/src/output/OutputPinController.h diff --git a/FlippR-Driver/CMakeLists.txt b/FlippR-Driver/CMakeLists.txt index 119b909..c40cd5e 100644 --- a/FlippR-Driver/CMakeLists.txt +++ b/FlippR-Driver/CMakeLists.txt @@ -1,7 +1,8 @@ ####################### OPTIONS ######################### +option(CROSS_COMPILE "Enables crosscompiling for raspberry pi" OFF) option(BUILD_SHARED_LIB "Build a shared lib instead of a static." OFF) option(ENABLE_TESTING "Enables testing." ON) -option(CROSS_COMPILE "Enables crosscompiling for raspberry pi" OFF) +option(BUILD_NETWORKING "Build socket communication executable." ON) option(BUILD_CLI "Makes a basic testing cli" OFF) #################### CONFIGURATION ###################### @@ -144,19 +145,15 @@ if(NOT CMAKE_THREAD_LIBS_INIT) endif() target_link_libraries(${PROJECT_NAME} PRIVATE ${Threads_LIBRARIES}) -####################### POCO ############################## -find_package(Poco REQUIRED COMPONENTS Foundation Net JSON ) - -if(NOT Poco_FOUND) - message(FATAL_ERROR, "Could not find libPoco") -endif() -target_link_libraries(${PROJECT_NAME} PUBLIC Poco::Foundation Poco::Net Poco::JSON) - if(ENABLE_TESTING) add_subdirectory(tests) endif(ENABLE_TESTING) +if(BUILD_NETWORKING) + add_subdirectory(networking) +endif(BUILD_NETWORKING) + if(BUILD_CLI) add_subdirectory(cli) endif(BUILD_CLI) diff --git a/FlippR-Driver/networking/CMakeLists.txt b/FlippR-Driver/networking/CMakeLists.txt new file mode 100644 index 0000000..6b02abb --- /dev/null +++ b/FlippR-Driver/networking/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.6.2) +project(flippR_driver_networking) + +set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/${OUTPUT_PATH}/cli) +set(SOURCES + input/SocketHandler.cpp + output/OutputRequestHandler.cpp + output/OutputRequestHandlerFactory.cpp + ) + +add_executable(${PROJECT_NAME} ${SOURCES}) + +target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/include) +target_link_libraries(${PROJECT_NAME} PRIVATE FlippR-Driver) + +####################### POCO ############################## +find_package(Poco REQUIRED COMPONENTS Foundation Net JSON ) + +if(NOT Poco_FOUND) + message(FATAL_ERROR, "Could not find libPoco") +endif() + +target_link_libraries(${PROJECT_NAME} PUBLIC Poco::Foundation Poco::Net Poco::JSON) diff --git a/FlippR-Driver/src/utility/networking/input/SocketHandler.cpp b/FlippR-Driver/networking/input/SocketHandler.cpp similarity index 100% rename from FlippR-Driver/src/utility/networking/input/SocketHandler.cpp rename to FlippR-Driver/networking/input/SocketHandler.cpp diff --git a/FlippR-Driver/src/utility/networking/input/SocketHandler.h b/FlippR-Driver/networking/input/SocketHandler.h similarity index 100% rename from FlippR-Driver/src/utility/networking/input/SocketHandler.h rename to FlippR-Driver/networking/input/SocketHandler.h diff --git a/FlippR-Driver/src/utility/networking/output/OutputHTTPServer.cpp b/FlippR-Driver/networking/output/OutputHTTPServer.cpp similarity index 100% rename from FlippR-Driver/src/utility/networking/output/OutputHTTPServer.cpp rename to FlippR-Driver/networking/output/OutputHTTPServer.cpp diff --git a/FlippR-Driver/src/utility/networking/output/OutputHTTPServer.h b/FlippR-Driver/networking/output/OutputHTTPServer.h similarity index 100% rename from FlippR-Driver/src/utility/networking/output/OutputHTTPServer.h rename to FlippR-Driver/networking/output/OutputHTTPServer.h diff --git a/FlippR-Driver/src/utility/networking/output/OutputRequestHandler.cpp b/FlippR-Driver/networking/output/OutputRequestHandler.cpp similarity index 100% rename from FlippR-Driver/src/utility/networking/output/OutputRequestHandler.cpp rename to FlippR-Driver/networking/output/OutputRequestHandler.cpp diff --git a/FlippR-Driver/src/utility/networking/output/OutputRequestHandler.h b/FlippR-Driver/networking/output/OutputRequestHandler.h similarity index 100% rename from FlippR-Driver/src/utility/networking/output/OutputRequestHandler.h rename to FlippR-Driver/networking/output/OutputRequestHandler.h diff --git a/FlippR-Driver/src/utility/networking/output/OutputRequestHandlerFactory.cpp b/FlippR-Driver/networking/output/OutputRequestHandlerFactory.cpp similarity index 100% rename from FlippR-Driver/src/utility/networking/output/OutputRequestHandlerFactory.cpp rename to FlippR-Driver/networking/output/OutputRequestHandlerFactory.cpp diff --git a/FlippR-Driver/src/utility/networking/output/OutputRequestHandlerFactory.h b/FlippR-Driver/networking/output/OutputRequestHandlerFactory.h similarity index 100% rename from FlippR-Driver/src/utility/networking/output/OutputRequestHandlerFactory.h rename to FlippR-Driver/networking/output/OutputRequestHandlerFactory.h diff --git a/FlippR-Driver/src/output/OutputPinController.cpp b/FlippR-Driver/src/output/OutputPinController.cpp new file mode 100644 index 0000000..2ba095f --- /dev/null +++ b/FlippR-Driver/src/output/OutputPinController.cpp @@ -0,0 +1,33 @@ +/* + * OutputGPIOInterface.h + * + * Created on: May 31, 2018 + * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert + */ + +#include "OutputPinController.h" + +#include "utility/config.h" + +#include "wiringPi/mcp23017.h" + +namespace flippR_driver +{ +namespace output +{ + +void OutputPinController::initialize_i2c_address(uint8_t i2c_address, uint8_t pin_base) +{ + mcp23017Setup(pin_base, i2c_address); +} + +void OutputPinController::initialize_pins_output(uint8_t pin_base, std::map::iterator begin, std::map::iterator end) +{ + for(; begin != end; begin++) + { + initialize_output_pin(pin_base + begin->second); + } +} + +} +} diff --git a/FlippR-Driver/src/output/OutputPinController.h b/FlippR-Driver/src/output/OutputPinController.h new file mode 100644 index 0000000..c58e6bb --- /dev/null +++ b/FlippR-Driver/src/output/OutputPinController.h @@ -0,0 +1,41 @@ +/* + * OutputGPIOInterface.h + * + * Created on: May 31, 2018 + * Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert + */ + +#ifndef SRC_UTILITIES_OUTPUTGPIOINTERFACE_H_ +#define SRC_UTILITIES_OUTPUTGPIOINTERFACE_H_ + +#include "PinController.h" + +#include + +namespace flippR_driver +{ +namespace output +{ + +namespace items +{ + class DriverBoardItem; +} +class OutputPinController : public PinController +{ + +public: + virtual ~OutputPinController() = default; + + virtual void activate(items::DriverBoardItem &driver_board_item) = 0; + virtual void deactivate(items::DriverBoardItem &driver_board_item) = 0; + +protected: + static void initialize_i2c_address(uint8_t i2c_address, uint8_t pin_base); + static void initialize_pins_output(uint8_t pin_base, std::map::iterator begin, std::map::iterator end); +}; + +} +} + +#endif