refactored soo much for el
This commit is contained in:
@@ -3,22 +3,28 @@
|
|||||||
//
|
//
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
#include "DriverFactory.h"
|
#include "DriverFactory.h"
|
||||||
#include "IInputDriver.h"
|
#include "IInputDriver.h"
|
||||||
|
|
||||||
|
using namespace FlippR_Driver;
|
||||||
|
|
||||||
int main (int argc, char *argv[])
|
int main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
if(argc != 2)
|
if(argc != 3)
|
||||||
{
|
{
|
||||||
std::cout << "Usage: " << argv[0] << " <config_file>";
|
std::cout << "Usage: " << argv[0] << " <input_config_file> <matrix_config_file>";
|
||||||
}
|
}
|
||||||
std::string config_file = argv[1];
|
std::string input_config_file = argv[1];
|
||||||
|
std::string matrix_config_file = argv[2];
|
||||||
|
|
||||||
std::ifstream config;
|
std::ifstream input_config;
|
||||||
|
std::ifstream matrix_config;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
config.open(config_file);
|
input_config.open(input_config_file);
|
||||||
|
matrix_config.open(matrix_config_file);
|
||||||
}
|
}
|
||||||
catch(const std::exception& e)
|
catch(const std::exception& e)
|
||||||
{
|
{
|
||||||
@@ -26,6 +32,6 @@ int main (int argc, char *argv[])
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<Input::IInputDriver> driver = FlippR_Driver::get_InputDriver(input_config, matrix_config);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
namespace FlippR_Driver
|
namespace FlippR_Driver
|
||||||
{
|
{
|
||||||
static std::shared_ptr<FlippR_Driver::Input::IInputDriver> get_InputDriver(std::istream& input_config_stream, std::istream& matrix_config_stream);
|
std::shared_ptr<Input::IInputDriver> get_InputDriver(std::istream& input_config_stream, std::istream& matrix_config_stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif //FLIPPR_DRIVER_DRIVERFACTORY_H
|
#endif //FLIPPR_DRIVER_DRIVERFACTORY_H
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
namespace FlippR_Driver
|
namespace FlippR_Driver
|
||||||
{
|
{
|
||||||
static std::shared_ptr<FlippR_Driver::Input::IInputDriver> get_InputDriver(std::istream& input_config_stream, std::istream& matrix_config_stream)
|
std::shared_ptr<Input::IInputDriver> get_InputDriver(std::istream& input_config_stream, std::istream& matrix_config_stream)
|
||||||
{
|
{
|
||||||
return FlippR_Driver::Input::InputDriverFactory::get_InputDriver(input_config_stream, matrix_config_stream);
|
return FlippR_Driver::Input::InputDriverFactory::get_InputDriver(input_config_stream, matrix_config_stream);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht
|
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht
|
||||||
*/
|
*/
|
||||||
#include "EventHandler.h"
|
#include "EventHandler.h"
|
||||||
|
#include "utilities/config.h"
|
||||||
|
|
||||||
namespace FlippR_Driver::Input
|
namespace FlippR_Driver::Input
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -15,7 +15,6 @@
|
|||||||
#include "IInputDriver.h"
|
#include "IInputDriver.h"
|
||||||
|
|
||||||
#include "IEventHandler.h"
|
#include "IEventHandler.h"
|
||||||
#include "utilities/config.h"
|
|
||||||
#include "Event.h"
|
#include "Event.h"
|
||||||
|
|
||||||
namespace FlippR_Driver::Input
|
namespace FlippR_Driver::Input
|
||||||
|
|||||||
@@ -4,9 +4,12 @@
|
|||||||
* Created on: Jun 15, 2018
|
* Created on: Jun 15, 2018
|
||||||
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht
|
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht
|
||||||
*/
|
*/
|
||||||
#include <input/ErrorEvent.hpp>
|
|
||||||
#include "InputDriver.h"
|
#include "InputDriver.h"
|
||||||
|
|
||||||
|
#include "utilities/config.h"
|
||||||
|
|
||||||
|
#include <input/ErrorEvent.hpp>
|
||||||
|
|
||||||
namespace FlippR_Driver::Input
|
namespace FlippR_Driver::Input
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
#ifndef SRC_INPUT_INPUTDRIVER_H_
|
#ifndef SRC_INPUT_INPUTDRIVER_H_
|
||||||
#define SRC_INPUT_INPUTDRIVER_H_
|
#define SRC_INPUT_INPUTDRIVER_H_
|
||||||
|
|
||||||
#include "utilities/config.h"
|
#include <map>
|
||||||
|
|
||||||
#include "IEventNotifier.h"
|
#include "IEventNotifier.h"
|
||||||
#include "IInputDriver.h"
|
#include "IInputDriver.h"
|
||||||
|
|||||||
@@ -7,60 +7,60 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "InputDriverFactory.h"
|
#include "InputDriverFactory.h"
|
||||||
|
|
||||||
|
#include "utilities/config.h"
|
||||||
|
|
||||||
|
#include "utilities/LoggerFactory.h"
|
||||||
|
|
||||||
#include "InputDriver.h"
|
#include "InputDriver.h"
|
||||||
#include "utilities/LoggerFactory.hpp"
|
|
||||||
#include "EventNotifier.h"
|
#include "EventNotifier.h"
|
||||||
|
|
||||||
using namespace nlohmann;
|
using namespace nlohmann;
|
||||||
|
|
||||||
|
|
||||||
namespace FlippR_Driver::Input
|
namespace FlippR_Driver::Input {
|
||||||
{
|
|
||||||
|
|
||||||
std::shared_ptr<IInputDriver> InputDriverFactory::get_InputDriver(std::istream& input_config_stream, std::istream& matrix_config_stream)
|
std::shared_ptr<IInputDriver>
|
||||||
{
|
InputDriverFactory::get_InputDriver(std::istream &input_config_stream, std::istream &matrix_config_stream) {
|
||||||
LoggerFactory::CreateInputLogger();
|
LoggerFactory::CreateInputLogger();
|
||||||
|
|
||||||
IBlockingQueue<Event>* event_queue = new BlockingQueue<Event>;
|
IBlockingQueue<Event> *event_queue = new BlockingQueue<Event>;
|
||||||
|
|
||||||
json matrix_config;
|
json matrix_config;
|
||||||
matrix_config_stream >> matrix_config;
|
matrix_config_stream >> matrix_config;
|
||||||
|
|
||||||
std::map<char, std::shared_ptr<Event>> address_event_map;
|
std::map<char, std::shared_ptr<Event>> address_event_map;
|
||||||
std::map<std::string, std::shared_ptr<Event>> name_event_map;
|
std::map<std::string, std::shared_ptr<Event>> name_event_map;
|
||||||
create_input_events(matrix_config, address_event_map, name_event_map);
|
create_input_events(matrix_config, address_event_map, name_event_map);
|
||||||
|
|
||||||
std::shared_ptr<IEventNotifier> event_notifier(new EventNotifier(event_queue));
|
std::shared_ptr<IEventNotifier> event_notifier(new EventNotifier(event_queue));
|
||||||
std::unique_ptr<IInputGPIOInterface> input_gpio_interface(new InputGPIOInterface(input_config_stream));
|
std::unique_ptr<IInputGPIOInterface> input_gpio_interface(new InputGPIOInterface(input_config_stream));
|
||||||
std::unique_ptr<IDetector> detector(new Detector(std::move(input_gpio_interface), address_event_map, event_notifier));
|
std::unique_ptr<IDetector> detector(
|
||||||
|
new Detector(std::move(input_gpio_interface), address_event_map, event_notifier));
|
||||||
|
|
||||||
return std::shared_ptr<InputDriver>(new InputDriver(event_notifier, std::move(detector), name_event_map));
|
return std::shared_ptr<InputDriver>(new InputDriver(event_notifier, std::move(detector), name_event_map));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InputDriverFactory::create_input_events(json matrix_config, std::map<char, std::shared_ptr<Event>> address_event_map, std::map<std::string, std::shared_ptr<Event>> name_event_map)
|
void
|
||||||
{
|
InputDriverFactory::create_input_events(json matrix_config, std::map<char, std::shared_ptr<Event>> address_event_map,
|
||||||
for(auto& json_event : matrix_config)
|
std::map<std::string, std::shared_ptr<Event>> name_event_map) {
|
||||||
{
|
for (auto &json_event : matrix_config) {
|
||||||
|
|
||||||
try
|
try {
|
||||||
{
|
std::string name = json_event.at("name");
|
||||||
std::string name = json_event.at("name");
|
char address = json_event.at("address").get<json::number_integer_t>();
|
||||||
char address = json_event.at("address").get<json::number_integer_t>();
|
int priority = json_event.at("priority").get<json::number_integer_t>();
|
||||||
int priority = json_event.at("priority").get<json::number_integer_t>();
|
|
||||||
|
|
||||||
std::shared_ptr<Event> event_ptr(new Event(address, priority, name));
|
std::shared_ptr<Event> event_ptr(new Event(address, priority, name));
|
||||||
|
|
||||||
address_event_map.emplace(address, event_ptr);
|
address_event_map.emplace(address, event_ptr);
|
||||||
name_event_map.emplace(name, event_ptr);
|
name_event_map.emplace(name, event_ptr);
|
||||||
}
|
}
|
||||||
catch(json::exception& e)
|
catch (json::exception &e) {
|
||||||
{
|
CLOG(ERROR, INPUT_LOGGER) << "Matrix config-file corrupted: " << e.what();
|
||||||
CLOG(ERROR, INPUT_LOGGER) << "Matrix config-file corrupted: " << e.what();
|
exit(EXIT_FAILURE);
|
||||||
exit(EXIT_FAILURE);
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -15,15 +15,9 @@
|
|||||||
#include "IInputDriver.h"
|
#include "IInputDriver.h"
|
||||||
|
|
||||||
#include "utilities/InputGPIOInterface.h"
|
#include "utilities/InputGPIOInterface.h"
|
||||||
#include "utilities/config.h"
|
|
||||||
#include "json/json.hpp"
|
#include "json/json.hpp"
|
||||||
#include "easylogging/easylogging++.h"
|
|
||||||
#include "IEventNotifier.h"
|
#include "IEventNotifier.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
INITIALIZE_EASYLOGGINGPP
|
|
||||||
|
|
||||||
namespace FlippR_Driver::Input
|
namespace FlippR_Driver::Input
|
||||||
{
|
{
|
||||||
class InputDriverFactory
|
class InputDriverFactory
|
||||||
@@ -34,7 +28,6 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
static void create_input_events(nlohmann::json matrix_config, std::map<char, std::shared_ptr<Event>> address_event_map, std::map<std::string, std::shared_ptr<Event>> name_event_map);
|
static void create_input_events(nlohmann::json matrix_config, std::map<char, std::shared_ptr<Event>> address_event_map, std::map<std::string, std::shared_ptr<Event>> name_event_map);
|
||||||
static void ConfigureLogger();
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
#endif /* INPUTFACTORY_H_ */
|
#endif /* INPUTFACTORY_H_ */
|
||||||
|
|||||||
@@ -15,7 +15,8 @@
|
|||||||
|
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include "config.h"
|
//#include "config.h"
|
||||||
|
|
||||||
class GPIOInterface
|
class GPIOInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
/*
|
//
|
||||||
* LoggerFactory.hpp
|
// Created by rhetenor on 13.09.18.
|
||||||
*
|
//
|
||||||
* Created on: Jun 19, 2018
|
|
||||||
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef SRC_UTILITIES_LOGGERFACTORY_HPP_
|
#include "LoggerFactory.h"
|
||||||
#define SRC_UTILITIES_LOGGERFACTORY_HPP_
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
#ifndef EASYLOGGING_IS_INITIALIZED
|
||||||
|
#define EASYLOGGING_IS_INITIALIZED
|
||||||
|
INITIALIZE_EASYLOGGINGPP
|
||||||
|
#endif
|
||||||
namespace LoggerFactory
|
namespace LoggerFactory
|
||||||
{
|
{
|
||||||
static void CreateInputTestLogger()
|
void CreateInputTestLogger()
|
||||||
{
|
{
|
||||||
el::Loggers::getLogger(INPUT_LOGGER);
|
el::Loggers::getLogger(INPUT_LOGGER);
|
||||||
el::Configurations conf;
|
el::Configurations conf;
|
||||||
@@ -25,7 +25,7 @@ namespace LoggerFactory
|
|||||||
el::Loggers::reconfigureAllLoggers(conf);
|
el::Loggers::reconfigureAllLoggers(conf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CreateInputLogger()
|
void CreateInputLogger()
|
||||||
{
|
{
|
||||||
el::Loggers::getLogger(INPUT_LOGGER);
|
el::Loggers::getLogger(INPUT_LOGGER);
|
||||||
|
|
||||||
@@ -39,7 +39,3 @@ namespace LoggerFactory
|
|||||||
el::Loggers::reconfigureLogger(INPUT_LOGGER, conf);
|
el::Loggers::reconfigureLogger(INPUT_LOGGER, conf);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* SRC_UTILITIES_LOGGERFACTORY_HPP_ */
|
|
||||||
18
FlippR-Driver/src/utilities/LoggerFactory.h
Normal file
18
FlippR-Driver/src/utilities/LoggerFactory.h
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* LoggerFactory.hpp
|
||||||
|
*
|
||||||
|
* Created on: Jun 19, 2018
|
||||||
|
* Author: Andreas Schneider, Johannes Wendel, Jonas Zeunert, Rafael Vinci, Dr. Franca Rupprecht
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef SRC_UTILITIES_LOGGERFACTORY_HPP_
|
||||||
|
#define SRC_UTILITIES_LOGGERFACTORY_HPP_
|
||||||
|
|
||||||
|
namespace LoggerFactory
|
||||||
|
{
|
||||||
|
void CreateInputTestLogger();
|
||||||
|
|
||||||
|
void CreateInputLogger();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /* SRC_UTILITIES_LOGGERFACTORY_HPP_ */
|
||||||
@@ -7,13 +7,14 @@
|
|||||||
|
|
||||||
#include "easylogging++.h"
|
#include "easylogging++.h"
|
||||||
|
|
||||||
|
// initialize easylogging once
|
||||||
|
|
||||||
#define INPUT_LOGGER "driver_logger"
|
#define INPUT_LOGGER "driver_logger"
|
||||||
#define OUTPUT_LOGGER "output_logger"
|
#define OUTPUT_LOGGER "output_logger"
|
||||||
|
|
||||||
#define LOGGER_FILE "input_driver.log"
|
#define LOGGER_FILE "input_driver.log"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define DRIVER_CONF_FILE "/var/log/flippr_driver.conf"
|
#define DRIVER_CONF_FILE "/var/log/flippr_driver.conf"
|
||||||
|
|
||||||
#define HIGH_VERBOSITY 10
|
#define HIGH_VERBOSITY 10
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
#include "input/IEventNotifier.h"
|
#include "input/IEventNotifier.h"
|
||||||
#include "Event.h"
|
#include "Event.h"
|
||||||
#include "input/Detector.h"
|
#include "input/Detector.h"
|
||||||
#include "utilities/LoggerFactory.hpp"
|
#include "utilities/LoggerFactory.h"
|
||||||
#include "utilities/InputGPIOInterface.h"
|
#include "utilities/InputGPIOInterface.h"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
#include "catch.hpp"
|
#include "catch.hpp"
|
||||||
#include "fakeit.hpp"
|
#include "fakeit.hpp"
|
||||||
|
|
||||||
#include "utilities/LoggerFactory.hpp"
|
#include "utilities/LoggerFactory.h"
|
||||||
#include "input/EventHandler.h"
|
#include "input/EventHandler.h"
|
||||||
#include "IInputDriver.h"
|
#include "IInputDriver.h"
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
#include "fakeit.hpp"
|
#include "fakeit.hpp"
|
||||||
|
|
||||||
|
|
||||||
#include "utilities/LoggerFactory.hpp"
|
#include "utilities/LoggerFactory.h"
|
||||||
#include "IEventHandler.h"
|
#include "IEventHandler.h"
|
||||||
#include "utilities/IBlockingQueue.h"
|
#include "utilities/IBlockingQueue.h"
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
#include "catch.hpp"
|
#include "catch.hpp"
|
||||||
#include "fakeit.hpp"
|
#include "fakeit.hpp"
|
||||||
#include "utilities/LoggerFactory.hpp"
|
#include "utilities/LoggerFactory.h"
|
||||||
|
|
||||||
// testing purposes
|
// testing purposes
|
||||||
#define private public
|
#define private public
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
#include "catch.hpp"
|
#include "catch.hpp"
|
||||||
#include "fakeit.hpp"
|
#include "fakeit.hpp"
|
||||||
|
|
||||||
#include "utilities/LoggerFactory.hpp"
|
#include "utilities/LoggerFactory.h"
|
||||||
|
|
||||||
|
|
||||||
// testing purposes
|
// testing purposes
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
#include "catch.hpp"
|
#include "catch.hpp"
|
||||||
#include "fakeit.hpp"
|
#include "fakeit.hpp"
|
||||||
|
|
||||||
#include "utilities/LoggerFactory.hpp"
|
#include "utilities/LoggerFactory.h"
|
||||||
|
|
||||||
|
|
||||||
// testing purposes
|
// testing purposes
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
#include "catch.hpp"
|
#include "catch.hpp"
|
||||||
#include "fakeit.hpp"
|
#include "fakeit.hpp"
|
||||||
|
|
||||||
#include "utilities/LoggerFactory.hpp"
|
#include "utilities/LoggerFactory.h"
|
||||||
|
|
||||||
|
|
||||||
// testing purposes
|
// testing purposes
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
#include "catch.hpp"
|
#include "catch.hpp"
|
||||||
#include "fakeit.hpp"
|
#include "fakeit.hpp"
|
||||||
|
|
||||||
#include "utilities/LoggerFactory.hpp"
|
#include "utilities/LoggerFactory.h"
|
||||||
|
|
||||||
|
|
||||||
// testing purposes
|
// testing purposes
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
#include "catch.hpp"
|
#include "catch.hpp"
|
||||||
#include "fakeit.hpp"
|
#include "fakeit.hpp"
|
||||||
|
|
||||||
#include "utilities/LoggerFactory.hpp"
|
#include "utilities/LoggerFactory.h"
|
||||||
|
|
||||||
|
|
||||||
// testing purposes
|
// testing purposes
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
#include "catch.hpp"
|
#include "catch.hpp"
|
||||||
#include "fakeit.hpp"
|
#include "fakeit.hpp"
|
||||||
|
|
||||||
#include "utilities/LoggerFactory.hpp"
|
#include "utilities/LoggerFactory.h"
|
||||||
|
|
||||||
|
|
||||||
// testing purposes
|
// testing purposes
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
#include "catch.hpp"
|
#include "catch.hpp"
|
||||||
#include "fakeit.hpp"
|
#include "fakeit.hpp"
|
||||||
|
|
||||||
#include "utilities/LoggerFactory.hpp"
|
#include "utilities/LoggerFactory.h"
|
||||||
|
|
||||||
|
|
||||||
// testing purposes
|
// testing purposes
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
#include "catch.hpp"
|
#include "catch.hpp"
|
||||||
#include "fakeit.hpp"
|
#include "fakeit.hpp"
|
||||||
|
|
||||||
#include "utilities/LoggerFactory.hpp"
|
#include "utilities/LoggerFactory.h"
|
||||||
|
|
||||||
|
|
||||||
// testing purposes
|
// testing purposes
|
||||||
|
|||||||
Reference in New Issue
Block a user