FERS 0.1.0
The Flexible Extensible Radar Simulator
Loading...
Searching...
No Matches
vita49_serializer.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-only
2//
3// Copyright (c) 2026-present FERS Contributors (see AUTHORS.md).
4//
5// See the GNU GPLv2 LICENSE file in the FERS project root for more information.
6
7#pragma once
8
9#include <cstddef>
10#include <cstdint>
11#include <span>
12#include <string_view>
13#include <vector>
14
16
17namespace serial::vita49
18{
20 {
21 public:
22 explicit ByteWriter(std::size_t reserve_bytes = 0);
23
24 void writeU16(std::uint16_t value);
25 void writeI16(std::int16_t value);
26 void writeU32(std::uint32_t value);
27 void writeU64(std::uint64_t value);
28 void writeF64(RealType value);
29 void writeAsciiMetadata(std::string_view value);
30 void writeBytes(std::span<const std::uint8_t> bytes);
31
32 [[nodiscard]] const std::vector<std::uint8_t>& bytes() const noexcept;
33 [[nodiscard]] std::vector<std::uint8_t> takeBytes() noexcept;
34
35 private:
36 std::vector<std::uint8_t> _bytes;
37 };
38
40 {
41 std::uint32_t stream_id;
42 std::uint64_t class_id;
44 std::uint8_t packet_count;
49 std::span<const ComplexType> samples;
51 };
52
54 {
55 public:
56 [[nodiscard]] static std::vector<std::uint8_t> serializeSignalData(const SignalDataPacket& packet);
59 [[nodiscard]] static std::vector<std::uint8_t> serializeContext(const ContextPacket& packet);
60 };
61}
std::vector< std::uint8_t > takeBytes() noexcept
void writeU32(std::uint32_t value)
void writeBytes(std::span< const std::uint8_t > bytes)
void writeAsciiMetadata(std::string_view value)
const std::vector< std::uint8_t > & bytes() const noexcept
void writeU16(std::uint16_t value)
void writeI16(std::int16_t value)
void writeU64(std::uint64_t value)
static std::vector< std::uint8_t > serializeContext(const ContextPacket &packet)
static std::vector< std::uint8_t > serializeSignalData(const SignalDataPacket &packet)
static SignalDataSerializationResult serializeSignalDataFixedFullscale(const FixedFullscaleSignalDataPacket &packet)
double RealType
Type for real numbers.
Definition config.h:27
math::Vec3 max