API
 
Loading...
Searching...
No Matches
telem_teldata_generated_tests.cpp
Go to the documentation of this file.
1#include <assert.h>
2#include "../../../../tests/catch2/catch.hpp"
3#include "../generated/logCodes.hpp"
4#include "../types/telem_teldata.hpp"
5#include "../types/generated/telem_teldata_generated.h"
6#include "../types/flatbuffer_log.hpp"
7
8/*
9 * GENERATED TEST FILE for types/telem_teldata.hpp
10 * generated by generateTemplateCatch2Tests.py
11 */
12
13const int telemTeldataRoi_0 = 1848204569; // dummy roi
14const int telemTeldataTracking_0 = -1453562439; // dummy tracking
15const int telemTeldataGuiding_0 = -1087257812; // dummy guiding
16const int telemTeldataSlewing_0 = -747916590; // dummy slewing
17const int telemTeldataGuiderMoving_0 = 97625582; // dummy guiderMoving
18const double telemTeldataAz_0 = 0.47090582825307; // dummy az
19const double telemTeldataZd_0 = 0.67092701547035; // dummy zd
20const double telemTeldataPa_0 = 0.06461621478393; // dummy pa
21const double telemTeldataDomeAz_0 = 0.42299990905548; // dummy domeAz
22const int telemTeldataDomeStat_0 = -1917251840; // dummy domeStat
23
24
25/** Class to encapsulate telem_teldata flatbuffer data using
26 ** => types/telem_teldata.hpp
27 ** => types/generated/telem_teldata_generated.h
28 **/
30{
31public:
32 // Saved input parameter value; unused
38 double m_saveTtAz;
39 double m_saveTtZd;
40 double m_saveTtPa;
43
44 // Parameters retrieved from flatbuffer
45 int m_roi;
50 double m_az;
51 double m_zd;
52 double m_pa;
53 double m_domeAz;
55
56 // Flatbuffers verifier success/failure
57 bool m_verify{false};
58
59 // flatbuffer data length; used in ::verify
60 int L;
61
62 // Constructor
63 CTelemTeldata_0(int roi_, int tracking_, int guiding_, int slewing_, int guiderMoving_, double az_, double zd_, double pa_, double domeAz_, int domeStat_) {
64 // Save input parameters
65 m_saveTtRoi = roi_;
66 m_saveTtTracking = tracking_;
67 m_saveTtGuiding = guiding_;
68 m_saveTtSlewing = slewing_;
69 m_saveTtGuiderMoving = guiderMoving_;
70 m_saveTtAz = az_;
71 m_saveTtZd = zd_;
72 m_saveTtPa = pa_;
73 m_saveTtDomeAz = domeAz_;
74 m_saveTtDomeStat = domeStat_;
75
76 // Create the flatbuffer messageT using the input parameters
77 auto tt = MagAOX::logger::telem_teldata::messageT(roi_, tracking_, guiding_, slewing_, guiderMoving_, az_, zd_, pa_, domeAz_, domeStat_);
78
79 // Retrieve flatbuffer pointer (if not an empty_log type) and length
80 void* buffPtr = tt.builder.GetBufferPointer();
82
83 // Retrieve the flatbuffer parameters for Catch2 comparison below
88 m_guiderMoving = MagAOX::logger::GetTelem_teldata_fb(buffPtr)->guiderMoving();
94
95 // Run the telem_teldata verifier
96 m_verify = verify(tt);
97 }
98
99 // Run the flatbuffer Verifier for this log type
100 // - requires bufferPtrT (shared_ptr<char*>) to full log entry
101 // comprising log header plus flatbuffer log message
103
104 // Timestamp, prioriy (use nominal value here)
105 flatlogs::timespecX tsx{0,0};
107
108 // Create full log: log header(*); log message (+)
109 // * Log level (priority)
110 // * Event code (implicit in <MagAOX::logger::type>)
111 // * Timestamp
112 // * Message size (variable length; 1, 2, or 8 bytes)
113 // + Message (variable length)
114
115 // N.G. allocates space and writes pointer value to logBuffer
116 flatlogs::bufferPtrT logBuffer;
117 flatlogs::logHeader::createLog<MagAOX::logger::telem_teldata>(logBuffer
118 , tsx, msg
119 , prio);
120 // Run full log through flatbuffer Verifier
122 }
123};
124
125SCENARIO( "Create telem_teldata 0", "[a log item]")
126{
127 GIVEN("a telem_teldata log code")
128 {
129 WHEN("random values for fields")
130 {
131 // Create flatbuffer
133 // Compare flatbuffer parameters
134 REQUIRE(tt.m_roi == telemTeldataRoi_0);
135 REQUIRE(tt.m_tracking == telemTeldataTracking_0);
136 REQUIRE(tt.m_guiding == telemTeldataGuiding_0);
137 REQUIRE(tt.m_slewing == telemTeldataSlewing_0);
139 REQUIRE(tt.m_az == telemTeldataAz_0);
140 REQUIRE(tt.m_zd == telemTeldataZd_0);
141 REQUIRE(tt.m_pa == telemTeldataPa_0);
142 REQUIRE(tt.m_domeAz == telemTeldataDomeAz_0);
143 REQUIRE(tt.m_domeStat == telemTeldataDomeStat_0);
144 REQUIRE(tt.m_verify);
145 }
146 }
147}
148
149
CTelemTeldata_0(int roi_, int tracking_, int guiding_, int slewing_, int guiderMoving_, double az_, double zd_, double pa_, double domeAz_, int domeStat_)
bool verify(const typename MagAOX::logger::telem_teldata::messageT &msg)
int8_t logPrioT
The type of the log priority code.
Definition logDefs.hpp:21
std::shared_ptr< char > bufferPtrT
The log entry buffer smart pointer.
Definition logHeader.hpp:58
const MagAOX::logger::Telem_teldata_fb * GetTelem_teldata_fb(const void *buf)
static constexpr logPrioT LOG_DEFAULT
Used to denote "use the default level for this log type".
static flatlogs::msgLenT length(const fbMessage &msg)
Get the length of the message.
The type of the input message.
static bool verify(flatlogs::bufferPtrT &logBuff, flatlogs::msgLenT len)
A fixed-width timespec structure.
Definition timespecX.hpp:35
const int telemTeldataGuiding_0
const int telemTeldataDomeStat_0
const int telemTeldataTracking_0
const double telemTeldataAz_0
const int telemTeldataGuiderMoving_0
const double telemTeldataZd_0
const int telemTeldataSlewing_0
const int telemTeldataRoi_0
SCENARIO("Create telem_teldata 0", "[a log item]")
const double telemTeldataPa_0
const double telemTeldataDomeAz_0