7#include "../../../tests/catch2/catch.hpp"
9#include "../zaberLowLevel.hpp"
13 #include "../za_serial.c"
21SCENARIO(
"Parsing the warnings response",
"[zaberStage]" )
23 GIVEN(
"A valid response to the warnings query")
27 WHEN(
"Valid response, no warnings")
33 std::string tstr =
"00";
39 REQUIRE(zstg.
warnFD() ==
false);
40 REQUIRE(zstg.
warnFQ() ==
false);
41 REQUIRE(zstg.
warnFS() ==
false);
42 REQUIRE(zstg.
warnFT() ==
false);
43 REQUIRE(zstg.
warnFB() ==
false);
44 REQUIRE(zstg.
warnFP() ==
false);
45 REQUIRE(zstg.
warnFE() ==
false);
46 REQUIRE(zstg.
warnWH() ==
false);
47 REQUIRE(zstg.
warnWL() ==
false);
48 REQUIRE(zstg.
warnWP() ==
false);
49 REQUIRE(zstg.
warnWV() ==
false);
50 REQUIRE(zstg.
warnWT() ==
false);
51 REQUIRE(zstg.
warnWM() ==
false);
52 REQUIRE(zstg.
warnWR() ==
false);
53 REQUIRE(zstg.
warnNC() ==
false);
54 REQUIRE(zstg.
warnNI() ==
false);
55 REQUIRE(zstg.
warnND() ==
false);
56 REQUIRE(zstg.
warnNU() ==
false);
57 REQUIRE(zstg.
warnNJ() ==
false);
58 REQUIRE(zstg.
warnUNK()==
false);
61 WHEN(
"Valid response, one warning")
67 std::string tstr =
"01 WR";
73 REQUIRE(zstg.
warnFD() ==
false);
74 REQUIRE(zstg.
warnFQ() ==
false);
75 REQUIRE(zstg.
warnFS() ==
false);
76 REQUIRE(zstg.
warnFT() ==
false);
77 REQUIRE(zstg.
warnFB() ==
false);
78 REQUIRE(zstg.
warnFP() ==
false);
79 REQUIRE(zstg.
warnFE() ==
false);
80 REQUIRE(zstg.
warnWH() ==
false);
81 REQUIRE(zstg.
warnWL() ==
false);
82 REQUIRE(zstg.
warnWP() ==
false);
83 REQUIRE(zstg.
warnWV() ==
false);
84 REQUIRE(zstg.
warnWT() ==
false);
85 REQUIRE(zstg.
warnWM() ==
false);
86 REQUIRE(zstg.
warnWR() ==
true);
87 REQUIRE(zstg.
warnNC() ==
false);
88 REQUIRE(zstg.
warnNI() ==
false);
89 REQUIRE(zstg.
warnND() ==
false);
90 REQUIRE(zstg.
warnNU() ==
false);
91 REQUIRE(zstg.
warnNJ() ==
false);
92 REQUIRE(zstg.
warnUNK()==
false);
95 WHEN(
"Valid response, five warnings")
101 std::string tstr =
"05 FD FQ FS FT FB";
107 REQUIRE(zstg.
warnFD() ==
true);
108 REQUIRE(zstg.
warnFQ() ==
true);
109 REQUIRE(zstg.
warnFS() ==
true);
110 REQUIRE(zstg.
warnFT() ==
true);
111 REQUIRE(zstg.
warnFB() ==
true);
112 REQUIRE(zstg.
warnFP() ==
false);
113 REQUIRE(zstg.
warnFE() ==
false);
114 REQUIRE(zstg.
warnWH() ==
false);
115 REQUIRE(zstg.
warnWL() ==
false);
116 REQUIRE(zstg.
warnWP() ==
false);
117 REQUIRE(zstg.
warnWV() ==
false);
118 REQUIRE(zstg.
warnWT() ==
false);
119 REQUIRE(zstg.
warnWM() ==
false);
120 REQUIRE(zstg.
warnWR() ==
false);
121 REQUIRE(zstg.
warnNC() ==
false);
122 REQUIRE(zstg.
warnNI() ==
false);
123 REQUIRE(zstg.
warnND() ==
false);
124 REQUIRE(zstg.
warnNU() ==
false);
125 REQUIRE(zstg.
warnNJ() ==
false);
126 REQUIRE(zstg.
warnUNK()==
false);
129 WHEN(
"Valid response, ten warnings")
135 std::string tstr =
"10 FP FE WH WL WP WV WT WM WR NC";
141 REQUIRE(zstg.
warnFD() ==
false);
142 REQUIRE(zstg.
warnFQ() ==
false);
143 REQUIRE(zstg.
warnFS() ==
false);
144 REQUIRE(zstg.
warnFT() ==
false);
145 REQUIRE(zstg.
warnFB() ==
false);
146 REQUIRE(zstg.
warnFP() ==
true);
147 REQUIRE(zstg.
warnFE() ==
true);
148 REQUIRE(zstg.
warnWH() ==
true);
149 REQUIRE(zstg.
warnWL() ==
true);
150 REQUIRE(zstg.
warnWP() ==
true);
151 REQUIRE(zstg.
warnWV() ==
true);
152 REQUIRE(zstg.
warnWT() ==
true);
153 REQUIRE(zstg.
warnWM() ==
true);
154 REQUIRE(zstg.
warnWR() ==
true);
155 REQUIRE(zstg.
warnNC() ==
true);
156 REQUIRE(zstg.
warnNI() ==
false);
157 REQUIRE(zstg.
warnND() ==
false);
158 REQUIRE(zstg.
warnNU() ==
false);
159 REQUIRE(zstg.
warnNJ() ==
false);
160 REQUIRE(zstg.
warnUNK()==
false);
162 WHEN(
"Valid response, 2 warnings")
168 std::string tstr =
"02 NI ND";
174 REQUIRE(zstg.
warnFD() ==
false);
175 REQUIRE(zstg.
warnFQ() ==
false);
176 REQUIRE(zstg.
warnFS() ==
false);
177 REQUIRE(zstg.
warnFT() ==
false);
178 REQUIRE(zstg.
warnFB() ==
false);
179 REQUIRE(zstg.
warnFP() ==
false);
180 REQUIRE(zstg.
warnFE() ==
false);
181 REQUIRE(zstg.
warnWH() ==
false);
182 REQUIRE(zstg.
warnWL() ==
false);
183 REQUIRE(zstg.
warnWP() ==
false);
184 REQUIRE(zstg.
warnWV() ==
false);
185 REQUIRE(zstg.
warnWT() ==
false);
186 REQUIRE(zstg.
warnWM() ==
false);
187 REQUIRE(zstg.
warnWR() ==
false);
188 REQUIRE(zstg.
warnNC() ==
false);
189 REQUIRE(zstg.
warnNI() ==
true);
190 REQUIRE(zstg.
warnND() ==
true);
191 REQUIRE(zstg.
warnNU() ==
false);
192 REQUIRE(zstg.
warnNJ() ==
false);
193 REQUIRE(zstg.
warnUNK()==
false);
195 WHEN(
"Valid response, 3 warnings")
202 std::string tstr =
"03 NU NJ UN";
208 REQUIRE(zstg.
warnFD() ==
false);
209 REQUIRE(zstg.
warnFQ() ==
false);
210 REQUIRE(zstg.
warnFS() ==
false);
211 REQUIRE(zstg.
warnFT() ==
false);
212 REQUIRE(zstg.
warnFB() ==
false);
213 REQUIRE(zstg.
warnFP() ==
false);
214 REQUIRE(zstg.
warnFE() ==
false);
215 REQUIRE(zstg.
warnWH() ==
false);
216 REQUIRE(zstg.
warnWL() ==
false);
217 REQUIRE(zstg.
warnWP() ==
false);
218 REQUIRE(zstg.
warnWV() ==
false);
219 REQUIRE(zstg.
warnWT() ==
false);
220 REQUIRE(zstg.
warnWM() ==
false);
221 REQUIRE(zstg.
warnWR() ==
false);
222 REQUIRE(zstg.
warnNC() ==
false);
223 REQUIRE(zstg.
warnNI() ==
false);
224 REQUIRE(zstg.
warnND() ==
false);
225 REQUIRE(zstg.
warnNU() ==
true);
226 REQUIRE(zstg.
warnNJ() ==
true);
227 REQUIRE(zstg.
warnUNK()==
true);
A class to manage the details of one stage in a Zaber system.
int parseWarnings(std::string &response)
Parse the warning response from the device.
bool warningState()
Get the warning state.
SCENARIO("Parsing the warnings response", "[zaberStage]")