From fffaa9ccc891053112f38aa7414e90a9b27ba5c0 Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Thu, 31 May 2018 16:11:46 +0200 Subject: [PATCH] reworked inputgpiointerface --- FlippR-Driver/src/utilities/GPIOInterface.hpp | 4 ++-- FlippR-Driver/src/utilities/InputGPIOInterface.cpp | 6 +++++- FlippR-Driver/src/utilities/InputGPIOInterface.h | 4 +++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/FlippR-Driver/src/utilities/GPIOInterface.hpp b/FlippR-Driver/src/utilities/GPIOInterface.hpp index 43db3e2..cac0b82 100644 --- a/FlippR-Driver/src/utilities/GPIOInterface.hpp +++ b/FlippR-Driver/src/utilities/GPIOInterface.hpp @@ -23,8 +23,8 @@ using namespace nlohmann; class GPIOInterface { public: - GPIOInterface(std::string config_path) = 0; - ~GPIOInterface(); + GPIOInterface(std::string config_path); + virtual ~GPIOInterface(); static void write_pin(char address, char data) { diff --git a/FlippR-Driver/src/utilities/InputGPIOInterface.cpp b/FlippR-Driver/src/utilities/InputGPIOInterface.cpp index db57142..e83d63d 100644 --- a/FlippR-Driver/src/utilities/InputGPIOInterface.cpp +++ b/FlippR-Driver/src/utilities/InputGPIOInterface.cpp @@ -10,8 +10,12 @@ class InputGPIOInterface { -bool InputGPIOInterface::read_input_data() +bool InputGPIOInterface::read_input_data(char pin) { + // setting address to read + write_input_row(pin / MATRIX_SIZE); + write_input_col(pin % MATRIX_SIZE); + return read_pin(this->input_data_address); } diff --git a/FlippR-Driver/src/utilities/InputGPIOInterface.h b/FlippR-Driver/src/utilities/InputGPIOInterface.h index 0c8cabe..59124d8 100644 --- a/FlippR-Driver/src/utilities/InputGPIOInterface.h +++ b/FlippR-Driver/src/utilities/InputGPIOInterface.h @@ -10,13 +10,15 @@ #include "GPIOInterface.hpp" +#define MATRIX_SIZE 8 class InputGPIOInterface : GPIOInterface { public: + bool read_input_data(); +private: void write_input_row(char data); void write_input_col(char data); - bool read_input_data(); private: char input_row_address;