SRS-control 0.1.4
Loading...
Searching...
No Matches
StructToProtoConverter.cpp
Go to the documentation of this file.
3#include "srs/data/message.pb.h"
4#include <cassert>
5
6namespace srs::process
7{
8 namespace
9 {
10 void set_header(const StructData& struct_data, proto::Data& output_data)
11 {
12 const auto& input_header = struct_data.header;
13 auto* header = output_data.mutable_header();
14 assert(header != nullptr);
15 header->set_frame_counter(input_header.frame_counter);
16 header->set_fec_id(input_header.fec_id);
17 header->set_udp_timestamp(input_header.udp_timestamp);
18 header->set_overflow(input_header.overflow);
19 }
20
21 void set_marker_data(const StructData& struct_data, proto::Data& output_data)
22 {
23 const auto& input_marker_data = struct_data.marker_data;
24 for (const auto& input_data : input_marker_data)
25 {
26 auto* marker_data = output_data.add_marker_data();
27 marker_data->set_vmm_id(input_data.vmm_id);
28 marker_data->set_srs_timestamp(input_data.srs_timestamp);
29 }
30 }
31
32 void set_hit_data(const StructData& struct_data, proto::Data& output_data)
33 {
34 const auto& input_hit_data = struct_data.hit_data;
35 for (const auto& input_data : input_hit_data)
36 {
37 auto* hit_data = output_data.add_hit_data();
38 hit_data->set_is_over_threshold(input_data.is_over_threshold);
39 hit_data->set_channel_num(input_data.channel_num);
40 hit_data->set_tdc(input_data.tdc);
41 hit_data->set_offset(input_data.offset);
42 hit_data->set_vmm_id(input_data.vmm_id);
43 hit_data->set_adc(input_data.adc);
44 hit_data->set_bc_id(input_data.bc_id);
45 }
46 }
47
48 } // namespace
49
50 void Struct2ProtoConverter::convert(const StructData& struct_data, proto::Data& output_data)
51 {
52 set_header(struct_data, output_data);
53 set_marker_data(struct_data, output_data);
54 set_hit_data(struct_data, output_data);
55 }
56} // namespace srs::process
static void convert(const StructData &struct_data, proto::Data &output_data)
ReceiveDataHeader header
Header data.
std::vector< MarkerData > marker_data
Marker data.
std::vector< HitData > hit_data
Hit data.