Skip to content
Snippets Groups Projects
Commit 98032bb5 authored by Querejeta Lomas, Leire's avatar Querejeta Lomas, Leire
Browse files

Subir nuevo archivo

parent 8f9eacb8
Branches
No related tags found
No related merge requests found
/**
* @file class_server_main.cpp
* @author Alfonso Dominguez <alfonso.dominguez@tecnalia.com>
* @date 2020
*
* Copyright 2020 Tecnalia Research & Innovation.
* Distributed under the GNU GPL v3.
* For full terms see https://www.gnu.org/licenses/gpl.txt
*
* @brief CLASS server main program
*/
#include <class_server/class_server.hpp>
#include <thread>
#include <memory>
ClassServer server;
void handler( const boost::system::error_code& error , int signal_number )
{
std::cout << "[CLASS server] Handling signal " << signal_number << std::endl;
server.stop();
exit(1);
}
int main (int argc, char *argv[])
{
if (argc != 3)
{
std::cerr << "[CLASS server] ERROR: Executable expects 2 arguments (BT port to connect to CLASS device and UDP port where this server will listen for client msgs)"<< std::endl;
std::cerr << "[CLASS server] Usage example:"<< std::endl;
#ifdef _WINDOWS
std::cerr << "[CLASS server] class_server.exe COM14 50000" << std::endl;
#else
std::cerr << "[CLASS server] ./class_server COM14 50000" << std::endl;
#endif
return 1;
}
std::string bt_port = argv[1];
std::cout << "[CLASS server] Connect to BT port: " << bt_port << std::endl;
std::string udp_port_str = argv[2];
int udp_port = 0;
try
{
udp_port = std::stoi(udp_port_str);
}
catch(const std::exception& e)
{
std::cerr << "2nd parameter is not an integer (" << udp_port_str << "). Exc:" << e.what() << std::endl;
return 1;
}
std::cout << "[CLASS server] Listen in UDP port: " << udp_port << std::endl;
boost::asio::io_service *io_service = new boost::asio::io_service();
boost::asio::signal_set signals(*io_service, SIGINT );
// Start an asynchronous wait for one of the signals to occur.
signals.async_wait( handler );
if(server.start(bt_port, udp_port, io_service) == 0)
{
std::cout << "[CLASS server] Waiting for connections. Ctrl+C for stop" << std::endl;
io_service->run();
}
std::cout << "[CLASS server] Bye" << std::endl;
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment