40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
// Copyright (2019-2022) Paul Scherrer Institute
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
#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 <IP> <UDP port>");
|
|
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);
|
|
}
|
|
} |