12 #include <boost/asio.hpp>
13 #include <boost/scoped_ptr.hpp>
14 #include <boost/program_options.hpp>
19 namespace po = boost::program_options;
20 #include "configure.hpp"
27 boost::scoped_ptr<JControlHost>
m_ch;
29 mutable boost::asio::ip::udp::socket
m_input;
36 std::string
const&
name
37 , std::string
const&
server
57 virtual void actionInit(
int length,
const char* buffer) {}
63 std::string(buffer, length)
66 m_input.open(boost::asio::ip::udp::v4());
69 boost::asio::ip::udp::endpoint(
70 boost::asio::ip::udp::v4()
77 conf.get<std::string>(
"out_server_address")
78 , conf.get<
unsigned>(
"out_server_port")
123 static size_t const max_size = 10000;
124 static char buffer[max_size];
126 std::size_t
const size =
m_input.receive(
127 boost::asio::buffer(buffer, max_size)
140 int main(
int argc,
char* argv[])
142 std::string server(
"localhost");
143 std::string logger(
"localhost");
144 std::string client_name(
"MonRouter");
148 po::options_description desc(
"Options");
150 (
"help,h",
"Print this help and exit.")
151 (
"version,v",
"Print the version and exit.")
154 , po::value<std::string>(&server)->default_value(server)
155 ,
"Set the address of the SM server."
159 , po::value<std::string>(&logger)->default_value(logger)
160 ,
"Set the address of the logger server."
164 , po::value<std::string>(&client_name)->default_value(client_name)
165 ,
"Set the address of the client name."
169 , po::value<int>(&port)->required()
170 ,
"Set the UDP port to read data from"
174 , po::value<int>(&
debug)->default_value(
debug)
175 ,
"Set the debug level."
179 po::variables_map vm;
181 po::command_line_parser(argc, argv).options(desc).run(),
185 if (vm.count(
"help")) {
186 std::cout << desc << std::endl;
190 if (vm.count(
"version")) {
196 }
catch (
const po::error& e) {
197 std::cerr <<
"MonRouter: Error: " << e.what() <<
'\n'
198 << desc << std::endl;
200 }
catch (
const std::runtime_error& e) {
201 std::cerr <<
"MonRouter: Error: " << e.what() <<
'\n'
202 << desc << std::endl;
General purpose message reporting.
int getRunNumber() const
Get run number.
JDAQStateMachine::ev_configure_event ev_configure
Auxiliary class for method select.
void set(const int file_descriptor)
Set file descriptor.
bool has(const int file_descriptor) const
Has file descriptor.
Message logging based on ControlHost.
Interface for logging messages.
Control unit client base class.
JSharedPointer< JControlHost > server
message server
void replaceEvent(const JTag &oldTag, const JTag &newTag, JDAQEvent_t &event)
Replace tag of given event in event table.
void run()
Run as run control client following command messages via JNET::JControlHost.
JMessageLogger logger
message logger
virtual bool enter(const JArgs &args)
Enter the state machine.
virtual void actionQuit(int length, const char *buffer)
MonitorRouter(std::string const &name, std::string const &server, JLogger *logger, const int level, int port)
virtual void actionRunning()
This method is repeatedly called when this client machine is in state Running and the clock interval ...
virtual void actionInit(int length, const char *buffer)
virtual void actionSelect(const JFileDescriptorMask &mask)
Action method following last select call.
virtual void actionExit()
virtual void actionReset(int length, const char *buffer)
virtual void actionEnter()
Interface methods for actions corresponding to state transitions.
virtual void setSelect(JFileDescriptorMask &mask) const
Set the file descriptor mask for the select call.
boost::asio::ip::udp::socket m_input
boost::asio::io_service m_service
virtual void actionContinue(int length, const char *buffer)
virtual void actionStart(int length, const char *buffer)
virtual void actionStop(int length, const char *buffer)
virtual void actionPause(int length, const char *buffer)
virtual void actionConfigure(int length, const char *buffer)
boost::scoped_ptr< JControlHost > m_ch
int main(int argc, char *argv[])
void store(const std::string &file_name, const JDetector &detector)
Store detector to output file.
KM3NeT DAQ data structures and auxiliaries.
static const JNET::JTag RC_CMD
static const JNET::JTag RC_MONITORING_ROUTER
static const JNET::JTag IO_MONITORING_DATA
boost::property_tree::ptree parse(std::string str)