This commit is contained in:
Jonas Zeunert
2018-05-31 19:24:00 +02:00
3 changed files with 32 additions and 10 deletions

View File

@@ -17,8 +17,6 @@
#include <thread>
#include <map>
#include "../lib/easylogging/easylogging++.h"
#include "../utilities/InputGPIOInterface.h"
#include "Event.hpp"
#include "EventNotifier.h"

View File

@@ -8,6 +8,11 @@
#include <fstream>
#include "InputGPIOInterface.h"
#include "../lib/json/json.hpp"
#include "../lib/easylogging/easylogging++.h"
#include "config.h"
using namespace nlohmann;
bool InputGPIOInterface::read_input_data(char pin)
{
@@ -23,16 +28,16 @@ bool InputGPIOInterface::read_input_data(char pin)
void InputGPIOInterface::write_input_row(char data)
{
write_pin(this->input_row_address, data & 0b001);
write_pin(this->input_row_address, data & 0b010);
write_pin(this->input_row_address, data & 0b100);
write_pin(this->input_row_address_A, data & 0b001);
write_pin(this->input_row_address_B, data & 0b010);
write_pin(this->input_row_address_C, data & 0b100);
}
void InputGPIOInterface::write_input_col(char data)
{
write_pin(this->input_col_address, data & 0b001);
write_pin(this->input_col_address, data & 0b010);
write_pin(this->input_col_address, data & 0b100);
write_pin(this->input_col_address_A, data & 0b001);
write_pin(this->input_col_address_B, data & 0b010);
write_pin(this->input_col_address_C, data & 0b100);
}
@@ -41,4 +46,19 @@ InputGPIOInterface::InputGPIOInterface()
std::ifstream matrix_config_stream(matrix_config_path);
json matrix_config;
matrix_config << matrix_config_stream;
try {
json matrix_config_input = matrix_config.at("input");
input_row_address_A = matrix_config.at("row").at("A");
input_row_address_B = matrix_config.at("row").at("B");
input_row_address_C = matrix_config.at("row").at("C");
input_col_address_A = matrix_config.at("col").at("A");
input_col_address_B = matrix_config.at("col").at("B");
input_col_address_C = matrix_config.at("col").at("C");
input_data_address = matrix_config.at("data");
} catch (json::type_error& e) {
CLOG(ERROR, INPUT_LOGGER) << "ERROR";
} catch (json::out_of_range& e) {
CLOG(ERROR, INPUT_LOGGER) << "ANOTHER ERROR!";
}
}

View File

@@ -25,8 +25,12 @@ private:
void write_input_col(char data);
private:
char input_row_address;
char input_col_address;
char input_row_address_A;
char input_row_address_B;
char input_row_address_C;
char input_col_address_A;
char input_col_address_B;
char input_col_address_C;
char input_data_address;
};