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>
38 sizeof(llnetio::mudpi::Header) +
39 sizeof(llnetio::rtms::CommonHeader) +
40 sizeof(llnetio::rtms::LeaderHeader);
42 sizeof(llnetio::mudpi::Header) +
43 sizeof(llnetio::rtms::CommonHeader) +
44 sizeof(llnetio::rtms::PayloadHeader);
53 return static_cast<uint16_t
>(
sizeof(double));
65 return "TimestampOnly";
68 return "BasicImageInfo";
72 std::string
ExtInfoSummary(
const std::vector<uint8_t>& packed_ext_info);
81 if (__rtmslib_debug__ == -1) { \
82 __rtmslib_debug__ = std::getenv(RTMSLIB_DEBUG) != nullptr; \
84 if (__rtmslib_debug__)
86#define RTT_PRINT(msg) \
88 fmt::print("RTMSLIB-DEBUG:{}:{}: {}\n", ifw::rtmslib::Time(), IFWLOC, msg); \
92 std::chrono::time_point<std::chrono::system_clock> now = std::chrono::system_clock::now();
93 auto duration = now.time_since_epoch();
94 auto time_now_ns = std::chrono::duration_cast<std::chrono::nanoseconds>(duration).count();
95 return (time_now_ns / 1e9);
98 inline void Sleep(
const double sleep_time) {
99 std::chrono::duration<double> chrono_sleep_time(sleep_time);
100 std::this_thread::sleep_for(chrono_sleep_time);
104 const int cfitsio_status);
106 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:60
int8_t __rtmslib_debug__
Definition common.cpp:23
constexpr uint16_t ExtInfoSizeFromMode(ExtendedInfoMode mode)
Definition common.hpp:48
constexpr std::size_t RTMS_LEADER_HDR_SZ
Definition common.hpp:37
constexpr auto LEADER_TRAILER_PACKET_NB
Definition common.hpp:46
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:98
constexpr std::size_t RTMS_PAYLOAD_HDR_SZ
Definition common.hpp:41
constexpr std::size_t SIZE_SAMPLE_EXT_INFO
Definition sampleExtInfo.hpp:22
constexpr std::size_t RTMS_TRAILER_HDR_SZ
Definition common.hpp:45
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:91
constexpr auto MAX_NB_BUFFERS_FOR_UDP_PACKET
Definition common.hpp:36
constexpr const char * RTMSLIB_DEBUG
Definition common.hpp:76
void HandleCfitsioError(const std::string &operation, const int cfitsio_status)
Definition common.cpp:160