added udp functions to matterhornserver

This commit is contained in:
2026-04-16 11:47:33 +02:00
parent a1ab556a0b
commit d264734925
5 changed files with 64 additions and 9 deletions
+1 -1
View File
@@ -32,7 +32,7 @@ if(NOT CMAKE_USE_PTHREADS_INIT)
message(FATAL_ERROR "A POSIX threads (pthread) implementation is required, but was not found.")
endif()
set(SLS_LOG_MAX_REPORTING_LEVEL sls::TLogLevel::logINFO CACHE STRING "set logging level")
option(SLS_LOG_MAX_REPORTING_LEVEL "Set the maximum logging level for the project" "sls::TLogLevel::logINFO")
option(SLS_USE_SYSTEM_ZMQ "Use system installed libzmq" OFF)
@@ -1,3 +1,5 @@
# TODO: should be different executable if not simulators on !!
add_executable(matterhornDetectorServer_virtual
${CMAKE_CURRENT_SOURCE_DIR}/src/MatterhornApp.cpp
@@ -52,6 +52,16 @@ template <typename DerivedServer> class BaseMatterhornServer {
ReturnCode get_source_udp_mac(ServerInterface &socket);
ReturnCode get_source_udp_ip(ServerInterface &socket);
ReturnCode get_source_udp_port(ServerInterface &socket);
ReturnCode get_destination_udp_mac(ServerInterface &socket);
ReturnCode get_destination_udp_ip(ServerInterface &socket);
ReturnCode get_destination_udp_port(ServerInterface &socket);
protected:
size_t num_udp_interfaces() const;
@@ -89,8 +99,25 @@ template <typename DerivedServer> class BaseMatterhornServer {
[this](ServerInterface &si) {
return static_cast<DerivedServer *>(this)->get_update_mode(si);
}},
{detFuncs::F_GET_SOURCE_UDP_MAC, [this](ServerInterface &si) {
{detFuncs::F_GET_SOURCE_UDP_MAC,
[this](ServerInterface &si) {
return this->get_source_udp_mac(si);
}},
{detFuncs::F_GET_SOURCE_UDP_IP,
[this](ServerInterface &si) {
return this->get_source_udp_ip(si);
}},
{detFuncs::F_GET_DEST_UDP_MAC,
[this](ServerInterface &si) {
return this->get_destination_udp_mac(si);
}},
{detFuncs::F_GET_DEST_UDP_IP,
[this](ServerInterface &si) {
return this->get_destination_udp_ip(si);
}},
{detFuncs::F_GET_DEST_UDP_PORT, [this](ServerInterface &si) {
return this->get_destination_udp_port(si);
}}};
};
@@ -149,8 +176,38 @@ ReturnCode BaseMatterhornServer<DerivedServer>::get_num_udp_interfaces(
template <typename DerivedServer>
ReturnCode BaseMatterhornServer<DerivedServer>::get_source_udp_mac(
ServerInterface &socket) {
uint64_t srcMac = udpDetails[0].srcmac;
return static_cast<ReturnCode>(socket.sendResult(srcMac));
return static_cast<ReturnCode>(socket.sendResult(udpDetails[0].srcmac));
}
template <typename DerivedServer>
ReturnCode BaseMatterhornServer<DerivedServer>::get_source_udp_ip(
ServerInterface &socket) {
return static_cast<ReturnCode>(socket.sendResult(udpDetails[0].srcip));
}
template <typename DerivedServer>
ReturnCode BaseMatterhornServer<DerivedServer>::get_source_udp_port(
ServerInterface &socket) {
return static_cast<ReturnCode>(
socket.sendResult(static_cast<int>(udpDetails[0].srcport)));
}
template <typename DerivedServer>
ReturnCode BaseMatterhornServer<DerivedServer>::get_destination_udp_mac(
ServerInterface &socket) {
return static_cast<ReturnCode>(socket.sendResult(udpDetails[0].dstmac));
}
template <typename DerivedServer>
ReturnCode BaseMatterhornServer<DerivedServer>::get_destination_udp_ip(
ServerInterface &socket) {
return static_cast<ReturnCode>(socket.sendResult(udpDetails[0].dstip));
}
template <typename DerivedServer>
ReturnCode BaseMatterhornServer<DerivedServer>::get_destination_udp_port(
ServerInterface &socket) {
return static_cast<ReturnCode>(socket.sendResult(udpDetails[0].dstport));
};
} // namespace sls
@@ -1,13 +1,12 @@
#pragma once
#include "TCPInterface.h"
#include "BaseMatterhornServer.h"
#include "TCPInterface.h"
#include "sls/sls_detector_defs.h"
#include <array>
#include <memory>
namespace sls {
class MatterhornServer : public BaseMatterhornServer<MatterhornServer> {
public:
@@ -27,6 +26,4 @@ class MatterhornServer : public BaseMatterhornServer<MatterhornServer> {
ReturnCode get_update_mode(ServerInterface &socket);
};
} // namespace sls
-1
View File
@@ -147,7 +147,6 @@ std::string Module::getReceiverSoftwareVersion() const {
// static function
slsDetectorDefs::detectorType
Module::getTypeFromDetector(const std::string &hostname, uint16_t cport) {
LOG(logDEBUG1) << "Getting Module type ";
ClientSocket socket("Detector", hostname, cport);
socket.Send(F_GET_DETECTOR_TYPE);
socket.setFnum(F_GET_DETECTOR_TYPE);