finished server but not tested
This commit is contained in:
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
#include "FlippRServer.h"
|
#include "FlippRServer.h"
|
||||||
#include "output/OutputRequestHandlerFactory.h"
|
#include "output/OutputRequestHandlerFactory.h"
|
||||||
|
#include "input/InputSocketHandlerFactory.h"
|
||||||
#include "DriverFactory.h"
|
#include "DriverFactory.h"
|
||||||
|
|
||||||
#include <Poco/Net/SocketAddress.h>
|
#include <Poco/Net/SocketAddress.h>
|
||||||
@@ -77,13 +78,43 @@ void FlippRServer::initialize(Application &self)
|
|||||||
|
|
||||||
|
|
||||||
this->initialize_output_driver();
|
this->initialize_output_driver();
|
||||||
//Todo initialize input server
|
this->initialize_input_driver();
|
||||||
|
|
||||||
//https://gist.github.com/NIPE-SYSTEMS/5a06428c0880ed7ff3cc4304be436e3e
|
//https://gist.github.com/NIPE-SYSTEMS/5a06428c0880ed7ff3cc4304be436e3e
|
||||||
ServerApplication::initialize(self);
|
ServerApplication::initialize(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FlippRServer::initialize_output_driver()
|
void FlippRServer::initialize_output_driver()
|
||||||
|
{
|
||||||
|
std::ifstream output_pin_config_stream;
|
||||||
|
std::ifstream lamp_config_stream;
|
||||||
|
std::ifstream solenoid_config_stream;
|
||||||
|
std::ifstream sound_config_stream;
|
||||||
|
std::ifstream display_config_stream;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
output_pin_config_stream.open(this->output_pin_config);
|
||||||
|
lamp_config_stream.open(this->lamp_config);
|
||||||
|
solenoid_config_stream.open(this->solenoid_config);
|
||||||
|
sound_config_stream.open(this->sound_config);
|
||||||
|
display_config_stream.open(this->display_config);
|
||||||
|
}
|
||||||
|
catch(const std::exception& e)
|
||||||
|
{
|
||||||
|
logger().error(e.what());
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
|
//todo linking errors
|
||||||
|
this->output_driver = flippR_driver::get_OutputDriver(output_pin_config_stream,
|
||||||
|
lamp_config_stream,
|
||||||
|
solenoid_config_stream,
|
||||||
|
sound_config_stream,
|
||||||
|
display_config_stream);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FlippRServer::initialize_input_driver()
|
||||||
{
|
{
|
||||||
std::ifstream input_config_stream;
|
std::ifstream input_config_stream;
|
||||||
std::ifstream matrix_config_stream;
|
std::ifstream matrix_config_stream;
|
||||||
@@ -99,7 +130,8 @@ void FlippRServer::initialize_output_driver()
|
|||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
//todo linking errors
|
|
||||||
|
//todo linking errors
|
||||||
this->input_driver = flippR_driver::get_InputDriver(input_config_stream, matrix_config_stream);
|
this->input_driver = flippR_driver::get_InputDriver(input_config_stream, matrix_config_stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -140,7 +172,7 @@ TCPServer* FlippRServer::build_input_server()
|
|||||||
SocketAddress address("/tmp/flippR_driver/S.flippR_driver");
|
SocketAddress address("/tmp/flippR_driver/S.flippR_driver");
|
||||||
ServerSocket server_socket(address);
|
ServerSocket server_socket(address);
|
||||||
|
|
||||||
|
return new TCPServer(new input::InputSocketHandlerFactory(this->input_driver), port);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void initialize_output_driver();
|
void initialize_output_driver();
|
||||||
|
void initialize_input_driver();
|
||||||
void parse_server_config_file();
|
void parse_server_config_file();
|
||||||
|
|
||||||
Poco::Net::HTTPServer* build_output_server();
|
Poco::Net::HTTPServer* build_output_server();
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ namespace networking
|
|||||||
namespace input
|
namespace input
|
||||||
{
|
{
|
||||||
|
|
||||||
class InputSocketHandlerFactory : Poco::Net::TCPServerConnectionFactory
|
class InputSocketHandlerFactory : public Poco::Net::TCPServerConnectionFactory
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit InputSocketHandlerFactory(std::shared_ptr<flippR_driver::input::InputDriver> inputDriver);
|
explicit InputSocketHandlerFactory(std::shared_ptr<flippR_driver::input::InputDriver> inputDriver);
|
||||||
|
|||||||
Reference in New Issue
Block a user