restored OUtputPinController

This commit is contained in:
Jonas Zeunert
2019-05-06 21:31:17 +02:00
parent bc583a5a92
commit 1b90bf7518
12 changed files with 103 additions and 9 deletions

View File

@@ -1,7 +1,8 @@
####################### OPTIONS ######################### ####################### OPTIONS #########################
option(CROSS_COMPILE "Enables crosscompiling for raspberry pi" OFF)
option(BUILD_SHARED_LIB "Build a shared lib instead of a static." OFF) option(BUILD_SHARED_LIB "Build a shared lib instead of a static." OFF)
option(ENABLE_TESTING "Enables testing." ON) 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) option(BUILD_CLI "Makes a basic testing cli" OFF)
#################### CONFIGURATION ###################### #################### CONFIGURATION ######################
@@ -144,19 +145,15 @@ if(NOT CMAKE_THREAD_LIBS_INIT)
endif() endif()
target_link_libraries(${PROJECT_NAME} PRIVATE ${Threads_LIBRARIES}) 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) if(ENABLE_TESTING)
add_subdirectory(tests) add_subdirectory(tests)
endif(ENABLE_TESTING) endif(ENABLE_TESTING)
if(BUILD_NETWORKING)
add_subdirectory(networking)
endif(BUILD_NETWORKING)
if(BUILD_CLI) if(BUILD_CLI)
add_subdirectory(cli) add_subdirectory(cli)
endif(BUILD_CLI) endif(BUILD_CLI)

View File

@@ -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)

View File

@@ -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<std::string, uint8_t>::iterator begin, std::map<std::string, uint8_t>::iterator end)
{
for(; begin != end; begin++)
{
initialize_output_pin(pin_base + begin->second);
}
}
}
}

View File

@@ -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 <map>
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<std::string, uint8_t>::iterator begin, std::map<std::string, uint8_t>::iterator end);
};
}
}
#endif