24 #ifndef SKA_CHEETAH_DATA_BEAMFORMERPACKET_H 25 #define SKA_CHEETAH_DATA_BEAMFORMERPACKET_H 27 #include "cheetah/rcpt/Sample.h" 28 #include <boost/endian/arithmetic.hpp> 44 enum class PacketType { StokesI = 1U, StokesQ, StokesRe, StokesIm, AntennaCount };
46 template<std::
size_t PayloadSize=8192>
50 static constexpr std::size_t _payload_size = PayloadSize;
60 constexpr
static std::size_t header_size();
65 constexpr
static std::size_t footer_size();
70 constexpr
static std::size_t payload_size();
75 constexpr
static std::size_t number_of_samples();
80 static std::size_t number_of_channels();
85 constexpr
static std::size_t size();
92 void packet_count(uint64_t);
97 void packet_type(PacketType
const);
102 PacketType packet_type()
const;
107 uint64_t packet_count()
const;
112 void insert(std::size_t sample_number,
Sample s);
117 Sample const& sample(std::size_t sample)
const;
119 const Sample* begin()
const;
120 const Sample* end()
const;
125 static constexpr uint64_t max_sequence_number();
130 uint16_t first_channel_number()
const;
131 void first_channel_number(uint16_t number);
135 boost::endian::little_uint64_t _counter;
136 boost::endian::little_uint32_t _timestamp_seconds;
137 boost::endian::little_uint32_t _timestamp_nanoseconds;
138 boost::endian::little_uint16_t _beam_number;
139 boost::endian::little_uint16_t _first_channel_number;
140 boost::endian::little_uint16_t _number_of_channels;
141 uint8_t _beamformer_version;
142 boost::endian::little_uint16_t _sample_count_type_5;
143 uint8_t _integration_time;
144 uint8_t _band_number;
145 uint8_t _packet_type;
146 uint8_t _reserved[4];
155 static const std::size_t _number_of_samples= _payload_size/
sizeof(
Sample);
156 static const std::size_t _size = _payload_size +
sizeof(Header);
160 static constexpr
unsigned low_payload_size = 8192;
161 static constexpr
unsigned mid_payload_size = 4096;
169 #include "cheetah/rcpt/detail/BeamFormerPacket.cpp" 171 #endif // SKA_CHEETAH_DATA_BEAMFORMERPACKET_H
Some limits and constants for FLDO.
THe incoming RF signal sample from the UDP stream.