FERS 0.1.0
The Flexible Extensible Radar Simulator
Loading...
Searching...
No Matches
serial::vita49::Vita49ContextBuilder Class Reference

#include "vita49_context_builder.h"

Static Public Member Functions

static ContextPacket build (const ContextBuildRequest &request)
 

Detailed Description

Definition at line 32 of file vita49_context_builder.h.

Member Function Documentation

◆ build()

ContextPacket serial::vita49::Vita49ContextBuilder::build ( const ContextBuildRequest request)
static

Definition at line 21 of file vita49_context_builder.cpp.

22 {
23 std::uint32_t flags = 0;
24 if (request.stream.dechirped)
25 {
27 }
28 if (request.stream.if_resampled)
29 {
31 }
32 if (request.sample_loss)
33 {
35 }
36 if (request.stream_open)
37 {
39 }
40 if (request.stream_close)
41 {
43 }
44 if (request.stream.fmcw.present && modeAllowsMetadata(request.stream.mode, "fmcw"))
45 {
47 }
48 if (request.stream.cw.present && modeAllowsMetadata(request.stream.mode, "cw"))
49 {
51 }
52 if (request.stream.pulsed.present && modeAllowsMetadata(request.stream.mode, "pulsed"))
53 {
55 }
56 if (request.stream.sfcw.present && modeAllowsMetadata(request.stream.mode, "sfcw"))
57 {
59 }
60
61 return ContextPacket{
62 .stream_id = request.stream_id,
63 .class_id = kFersVrtIqClassId,
64 .timestamp = request.timestamp,
65 .packet_count = request.packet_count,
66 .cif0 = kFersContextCif0,
67 .state_indicators =
68 makeContextStateIndicators(request.valid_data, request.calibrated_time, request.reference_lock,
69 request.over_range, request.sample_loss),
70 .payload_format = makeComplexInt16PayloadFormat(),
71 .sample_rate = request.stream.sample_rate,
72 .reference_frequency = request.stream.reference_frequency,
73 .if_offset = request.stream.if_offset,
74 .bandwidth = request.stream.bandwidth,
75 .adc_fullscale = request.adc_fullscale,
76 .receiver_id = request.stream.receiver_id,
77 .adc_bits = request.stream.adc_bits,
78 .context_flags = flags,
79 .receiver_name = request.stream.receiver_name,
80 .simulation_name = request.simulation_name,
81 .receiver_mode = request.stream.mode,
82 .coordinate = request.stream.coordinate,
83 .initial_platform_state = request.stream.initial_platform_state,
84 .pulsed = request.stream.pulsed,
85 .cw = request.stream.cw,
86 .fmcw = request.stream.fmcw,
87 .sfcw = request.stream.sfcw,
88 };
89 }
constexpr std::uint32_t kFersContextCif0
@ ContextFlagFmcwMetadataPresent
@ ContextFlagCwMetadataPresent
@ ContextFlagPulsedMetadataPresent
@ ContextFlagSfcwMetadataPresent
constexpr std::uint64_t kFersVrtIqClassId
std::uint32_t makeContextStateIndicators(const bool valid_data, const bool calibrated_time, const bool reference_lock, const bool over_range, const bool sample_loss) noexcept
std::uint64_t makeComplexInt16PayloadFormat() noexcept
math::Vec3 max

References serial::vita49::ContextFlagCwMetadataPresent, serial::vita49::ContextFlagDechirped, serial::vita49::ContextFlagFmcwMetadataPresent, serial::vita49::ContextFlagIfResampled, serial::vita49::ContextFlagPulsedMetadataPresent, serial::vita49::ContextFlagSampleLoss, serial::vita49::ContextFlagSfcwMetadataPresent, serial::vita49::ContextFlagStreamClose, serial::vita49::ContextFlagStreamOpen, serial::vita49::kFersContextCif0, serial::vita49::kFersVrtIqClassId, serial::vita49::makeComplexInt16PayloadFormat(), serial::vita49::makeContextStateIndicators(), max, and serial::vita49::ContextPacket::stream_id.

+ Here is the call graph for this function:

The documentation for this class was generated from the following files: