UgCS video streamer
telemetry.h
1 #ifndef INCLUDE_TELEMETRY_H_
2 #define INCLUDE_TELEMETRY_H_
3 
4 #include <optional.h>
5 #include <av_packet.h>
6 
7 
8 /** Telemetry block. See @ref VsTelemetry for fields description. */
9 struct Telemetry {
11  missionId, platformDesignation,
12  cameraManufacturer, cameraModel;
13  Optional<double>
14  heading, pitch, roll,
15  latitude, longitude, altitude,
16  sensorHorizontalFov, sensorVerticalFov,
17  sensorRelativeAzimuth,
18  sensorRelativeElevation,
19  sensorRelativeRoll,
20  slantRange,
21  /** In millimeters. */
23 
24  /** Overwrite values which are set in the specified telemetry block. Empty values do not affect
25  * values in this instance.
26  */
27  void
28  Merge(const Telemetry &other);
29 
30  /** Set all fields empty. */
31  void
32  Reset();
33 
34  /** Get KLV-encoded ffmpeg frame for this telemetry object. Timestamp and tail number fields are
35  * always present. Non-empty fields of this telemetry block are inserted as well. Timestamp is
36  * generated from current system time.
37  */
38  ff::AvPacket
39  ToKlvPacket(const std::string &tailNumber) const;
40 
41  /** Validate values to ensure they can be represented in KLV. @ref InvalidParamException is
42  * thrown if any value is out of range.
43  */
44  void
45  Validate() const;
46 };
47 
48 #endif /* INCLUDE_TELEMETRY_H_ */
Telemetry
Definition: telemetry.h:9
Telemetry::Validate
void Validate() const
Telemetry::Reset
void Reset()
Telemetry::cameraFocalLength
Optional< double > cameraFocalLength
Definition: telemetry.h:22
Telemetry::ToKlvPacket
ff::AvPacket ToKlvPacket(const std::string &tailNumber) const
Telemetry::Merge
void Merge(const Telemetry &other)