// Copyright (2019-2023) Paul Scherrer Institute #include "LinuxSocketDevice.h" #include "../common/NetworkAddressConvert.h" int main(int argc, char **argv) { DiffractionExperiment experiment(DetectorGeometry(4)); experiment.Mode(DetectorMode::Raw); experiment.ImagesPerTrigger(1000); Logger logger("jfjoch_lxsocket_test"); logger.Verbose(true); if (argc != 3) { logger.Error("Usage ./jfjoch_lxsocket_test "); exit(EXIT_FAILURE); } uint32_t ipv4 = IPv4AddressFromStr(argv[1]); uint16_t udp = std::strtol(argv[2], nullptr, 10); try { LinuxSocketDevice dev(ipv4, udp, 0, 4096); logger.Info("Mac addr {}", dev.GetMACAddress()); dev.EnableLogging(&logger); dev.StartAction(experiment); dev.WaitForActionComplete(); logger.Info("Bytes received {}", dev.GetBytesReceived()); JFJochProtoBuf::AcquisitionDeviceStatistics statistics; dev.SaveStatistics(experiment, statistics); logger.Info("{} {}", statistics.efficiency(), statistics.packets_received_per_module(0)); } catch (std::exception &e) { logger.ErrorException(e); exit(EXIT_FAILURE); } }