Program Listing for File config_to_flx.cpp
↰ Return to documentation for file (config/config_to_flx.cpp
)
#include "config.hpp"
ConfigToFlx::ConfigToFlx() : Config()
{
resource.toflx = true;
}
//ConfigToFlx::~ConfigToFlx() {}
std::ostream& ConfigToFlx::format(std::ostream& os) const
{
os << "ConfigToFlx" << std::endl;
os << "cmem_buffersize: " << resource.cmem_buffersize << std::endl;
os << "unbuffered: " << unbuffered << std::endl;
os << std::endl;
return Config::format(os);
}
std::ostream& operator<<(std::ostream& os, const ConfigToFlx& c) {
return c.format(os);
}
std::string ConfigToFlx::usage()
{
return
R"(felix-toflx - FELIX central data acquisition application
Usage:
felix-toflx [options --device=<device>... --cid=<cid>...]
)";
}
std::string ConfigToFlx::options()
{
return Config::options() +
R"(
ToFlx Options:
-c, --cmem=SIZE CMEM buffer size in MB. [default: 20]
-p, --port=PORT Send data to port PORT. [calculated: 53200 + 10*device + dma]
-u, --unbuffered Use unbuffered mode
-t, --trickle Use trickle mode
)";
}
void ConfigToFlx::handle_cmd_line(std::map<std::string, docopt::value> args)
{
Config::handle_cmd_line(args);
resource.cmem_buffersize = args["--cmem"].asLong() * 1024 * 1024;
int base_port = args["--port"] ? args["--port"].asLong() : PORT_TOFLX_OFFSET;
for(auto dev : resource.device){
network.ports.emplace(dev, PORT(base_port, dev, 0));
}
unbuffered = args["--unbuffered"].asBool();
trickle = args["--trickle"].asBool();
}