13#include <boost/endian/arithmetic.hpp>
15#include <fmt/format.h>
19#include <llnetio/mudpi/io.hpp>
20#include <llnetio/rtms/io.hpp>
21#include <llnetio/rtms/rtms.hpp>
23#include <ifw/fnd/defs/dataType.hpp>
24#include <ifw/fnd/tools/tools.hpp>
41 sizeof(llnetio::mudpi::Header) +
42 sizeof(llnetio::rtms::CommonHeader) +
43 sizeof(llnetio::rtms::LeaderHeader);
45 sizeof(llnetio::mudpi::Header) +
46 sizeof(llnetio::rtms::CommonHeader) +
47 sizeof(llnetio::rtms::PayloadHeader);
61 return static_cast<uint16_t
>(
sizeof(double));
73 return "TimestampOnly";
76 return "BasicImageInfo";
80 std::string
ExtInfoSummary(
const std::vector<uint8_t>& packed_ext_info);
89 if (__rtmslib_debug__ == -1) { \
90 __rtmslib_debug__ = std::getenv(RTMSLIB_DEBUG) != nullptr; \
92 if (__rtmslib_debug__)
94#define RTT_PRINT(msg) \
96 fmt::print("RTMSLIB-DEBUG:{}:{}: {}\n", ifw::rtmslib::Time(), IFWLOC, msg); \
100 std::chrono::time_point<std::chrono::system_clock> now = std::chrono::system_clock::now();
101 auto duration = now.time_since_epoch();
102 auto time_now_ns = std::chrono::duration_cast<std::chrono::nanoseconds>(duration).count();
103 return (time_now_ns / 1e9);
106 inline void Sleep(
const double sleep_time) {
107 std::chrono::duration<double> chrono_sleep_time(sleep_time);
108 std::this_thread::sleep_for(chrono_sleep_time);
112 const int cfitsio_status);
114 std::tuple<std::vector<uint8_t>, int, int, int,
int>
LoadFitsImageCube(
const char* filename);
Common utilities for RTMS Lib.
Definition common.cpp:21
std::string ExtInfoSummary(const std::vector< uint8_t > &packed_ext_info)
Definition common.cpp:40
constexpr const char * ToString(ExtendedInfoMode mode)
Definition common.hpp:68
int8_t __rtmslib_debug__
Definition common.cpp:23
constexpr auto UDP_HDR_SZ
Definition common.hpp:37
constexpr uint16_t ExtInfoSizeFromMode(ExtendedInfoMode mode)
Definition common.hpp:56
constexpr std::size_t MUDPI_HDR_SZ
Definition common.hpp:48
constexpr std::size_t RTMS_LEADER_HDR_SZ
Definition common.hpp:40
constexpr auto LEADER_TRAILER_PACKET_NB
Definition common.hpp:54
std::tuple< std::vector< uint8_t >, int, int, int, int > LoadFitsImageCube(const char *filename)
Definition common.cpp:99
void Sleep(const double sleep_time)
Definition common.hpp:106
constexpr auto IP_HDR_SZ
Definition common.hpp:38
constexpr std::size_t RTMS_PAYLOAD_HDR_SZ
Definition common.hpp:44
constexpr std::size_t SIZE_SAMPLE_EXT_INFO
Definition sampleExtInfo.hpp:22
constexpr std::size_t RTMS_TRAILER_HDR_SZ
Definition common.hpp:53
ExtendedInfoMode
Definition common.hpp:29
@ BasicImageInfo
Full SampleExtInfo block.
Definition common.hpp:32
@ None
Leader packets carry no extended info.
Definition common.hpp:30
@ TimestampOnly
Only the timestamp (8 bytes)
Definition common.hpp:31
double Time()
Definition common.hpp:99
constexpr auto MAX_NB_BUFFERS_FOR_UDP_PACKET
Definition common.hpp:36
constexpr auto CHECK_SUM_HDR_SZ
Definition common.hpp:39
constexpr const char * RTMSLIB_DEBUG
Definition common.hpp:84
void HandleCfitsioError(const std::string &operation, const int cfitsio_status)
Definition common.cpp:160