16#include <nsm2/belle2nsm.h>
19#include "daq/rfarm/manager/RFConf.h"
26void ok_handler(
NSMmsg* , NSMcontext*)
32void error_handler(
NSMmsg* , NSMcontext*)
35 printf(
"ERROR received\n");
38int main(
int argc,
const char** argv)
43 printf(
"Usage : rfcommand nodename command\n");
47 const char* conffile = argv[1];
48 const char* nodename = argv[2];
49 const char* command = argv[3];
51 char* confdir = getenv(
"RFARM_CONFDIR");
52 string confpath = string(confdir) +
"/" + string(conffile) +
".conf";
54 RFConf conf(confpath.c_str());
55 int port = conf.getconfi(
"system",
"nsmport");
59 if (! b2nsm_init2(
"COMMANDER", 1, 0, port, 0)) {
60 printf(
"rfcommand : initialization error %s\n", b2nsm_strerror());
66 if (b2nsm_callback(
"OK", ok_handler) < 0) {
67 printf(
"rfcommand : error to hook CALLBACK(OK) %s", b2nsm_strerror());
70 if (b2nsm_callback(
"ERROR", ok_handler) < 0) {
71 printf(
"rfcommand : error to hook CALLBACK(ERROR) %s", b2nsm_strerror());
79 b2nsm_sendreq(nodename, command, 0, pars);
80 while (done_flag == 0) usleep(1000);
Abstract base class for different kinds of events.