#include #include #include using namespace CTA::ACTL::CDTS; int main(int argc, char* argv[]) { int fargc = 1; TApplication app("UCTSSimulator", &fargc, argv); typedef std::vector Strings; typedef std::vector Ports; Strings hosts; Ports ports; double frequency; double rms; ProgramOptions options(false); options.GetOptions().add_options() // ("ip,i", boost::program_options::value(&hosts)->multitoken(), "IP addresses of UCTS board") // ("port,p", boost::program_options::value(&ports)->multitoken(), "port numbers of ZMQ server") // ("frequency,f", boost::program_options::value(&frequency)->default_value(1000.), "expected frequency in Hz") // ("rms,r", boost::program_options::value(&rms)->default_value(1e2), "rms of the delta t distribution in picoseconds"); if (!options.Parse(argc, argv)) return 0; if (hosts.size() != ports.size()) { std::cerr << "Please specify the same amount of hosts and ports!" << std::endl; return -2; } if (hosts.empty()) { hosts.push_back("127.0.0.1"); ports.push_back(6666); } zmq::context_t context(1); std::vector simulators; for (std::size_t index = 0u, end = hosts.size(); index < end; ++index) { Socket_ptr publisher = Socket_ptr(new Socket(context, ZMQ_PUB)); publisher->AddTCPConnection(hosts[index], ports[index]); if (!publisher->Connect()) return -1; Simulator_ptr simulator = std::make_shared(std::move(publisher), frequency, rms); simulators.push_back(simulator); } SimulatorViewer viewer(simulators); app.Run(kTRUE); return 0; }