added udp functions to matterhornserver

This commit is contained in:
2026-05-29 15:29:04 +02:00
parent 26fbde1020
commit f62aaf991f
3 changed files with 63 additions and 7 deletions
@@ -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