214SCENARIO(
"Parsing the BSWV? response",
"[siglentSDG]" )
216 GIVEN(
"A valid response to BSWV from the SDG" )
220 WHEN(
"Valid BSWV passed" )
233 std::string resp =
"C1:BSWV "
234 "WVTP,SINE,FRQ,10.123HZ,PERI,0.8345S,AMP,2.567V,AMPVRMS,0.707Vrms,OFST,0.34V,HLEV,1.3V,"
235 "LLEV,-2.567V,PHSE,4.3567";
236 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
239 REQUIRE( channel == 1 );
240 REQUIRE( wvtp ==
"SINE" );
241 REQUIRE( freq == 10.123 );
242 REQUIRE( peri == 0.8345 );
243 REQUIRE( amp == 2.567 );
244 REQUIRE( ampvrms == 0.707 );
245 REQUIRE( ofst == 0.34 );
246 REQUIRE( hlev == 1.3 );
247 REQUIRE( llev == -2.567 );
248 REQUIRE( phse == 4.3567 );
252 GIVEN(
"An invalid response to BSWV from the SDG" )
256 WHEN(
"An invalid BSWV passed - not enough args" )
269 std::string resp =
"C1:BSWV WVTP";
270 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
275 WHEN(
"An invalid BSWV passed - wrong response" )
288 std::string resp =
"C1:MDWV "
289 "WVTP,SINE,FRQ,10.123HZ,PERI,0.8345S,AMP,2.567V,AMPVRMS,0.707Vrms,OFST,0.34V,HLEV,1.3V,"
290 "LLEV,-2.567V,PHSE,4.3567";
291 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
296 WHEN(
"An invalid BSWV passed - bad channel spec, no C" )
309 std::string resp =
"X1:BSWV "
310 "WVTP,SINE,FRQ,10.123HZ,PERI,0.8345S,AMP,2.567V,AMPVRMS,0.707Vrms,OFST,0.34V,HLEV,1.3V,"
311 "LLEV,-2.567V,PHSE,4.3567";
312 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
317 WHEN(
"An invalid BSWV passed - bad channel spec, too short " )
330 std::string resp =
"C:BSWV "
331 "WVTP,SINE,FRQ,10.123HZ,PERI,0.8345S,AMP,2.567V,AMPVRMS,0.707Vrms,OFST,0.34V,HLEV,1.3V,"
332 "LLEV,-2.567V,PHSE,4.3567";
333 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
338 WHEN(
"An invalid BSWV passed - bad WVTP indicator" )
351 std::string resp =
"C1:BSWV "
352 "WVTQ,SINE,FRQ,10.123HZ,PERI,0.8345S,AMP,2.567V,AMPVRMS,0.707Vrms,OFST,0.34V,HLEV,1.3V,"
353 "LLEV,-2.567V,PHSE,4.3567";
354 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
359 WHEN(
"An invalid BSWV passed - wvtp not SINE" )
372 std::string resp =
"C1:BSWV "
373 "WVTP,UPIY,FRQ,10.123HZ,PERI,0.8345S,AMP,2.567V,AMPVRMS,0.707Vrms,OFST,0.34V,HLEV,1.3V,"
374 "LLEV,-2.567V,PHSE,4.3567";
375 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
380 WHEN(
"An invalid BSWV passed - bad FRQ indicator" )
393 std::string resp =
"C1:BSWV "
394 "WVTP,SINE,FRZ,10.123HZ,PERI,0.8345S,AMP,2.567V,AMPVRMS,0.707Vrms,OFST,0.34V,HLEV,1.3V,"
395 "LLEV,-2.567V,PHSE,4.3567";
396 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
398 REQUIRE( rv == -10 );
401 WHEN(
"An invalid BSWV passed - bad PERI indicator" )
414 std::string resp =
"C1:BSWV "
415 "WVTP,SINE,FRQ,10.123HZ,PERZ,0.8345S,AMP,2.567V,AMPVRMS,0.707Vrms,OFST,0.34V,HLEV,1.3V,"
416 "LLEV,-2.567V,PHSE,4.3567";
417 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
419 REQUIRE( rv == -11 );
422 WHEN(
"An invalid BSWV passed - bad AMP indicator" )
435 std::string resp =
"C1:BSWV "
436 "WVTP,SINE,FRQ,10.123HZ,PERI,0.8345S,A/"
437 "P,2.567V,AMPVRMS,0.707Vrms,OFST,0.34V,HLEV,1.3V,LLEV,-2.567V,PHSE,4.3567";
438 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
440 REQUIRE( rv == -12 );
443 WHEN(
"An invalid BSWV passed - bad AMPVRMS indicator" )
456 std::string resp =
"C1:BSWV "
457 "WVTP,SINE,FRQ,10.123HZ,PERI,0.8345S,AMP,2.567V,APVRMS,0.707Vrms,OFST,0.34V,HLEV,1.3V,"
458 "LLEV,-2.567V,PHSE,4.3567";
459 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
461 REQUIRE( rv == -13 );
464 WHEN(
"An invalid BSWV passed - bad OFST indicator" )
477 std::string resp =
"C1:BSWV "
478 "WVTP,SINE,FRQ,10.123HZ,PERI,0.8345S,AMP,2.567V,AMPVRMS,0.707Vrms,O,0.34V,HLEV,1.3V,"
479 "LLEV,-2.567V,PHSE,4.3567";
480 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
482 REQUIRE( rv == -14 );
485 WHEN(
"An invalid BSWV passed - bad HLEV indicator" )
498 std::string resp =
"C1:BSWV "
499 "WVTP,SINE,FRQ,10.123HZ,PERI,0.8345S,AMP,2.567V,AMPVRMS,0.707Vrms,OFST,0.34V,HLV,1.3V,"
500 "LLEV,-2.567V,PHSE,4.3567";
501 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
503 REQUIRE( rv == -15 );
506 WHEN(
"An invalid BSWV passed - bad LLEV indicator" )
519 std::string resp =
"C1:BSWV "
520 "WVTP,SINE,FRQ,10.123HZ,PERI,0.8345S,AMP,2.567V,AMPVRMS,0.707Vrms,OFST,0.34V,HLEV,1.3V,"
521 "QLEV,-2.567V,PHSE,4.3567";
522 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
524 REQUIRE( rv == -16 );
527 WHEN(
"An invalid BSWV passed - bad PHSE indicator" )
540 std::string resp =
"C1:BSWV "
541 "WVTP,SINE,FRQ,10.123HZ,PERI,0.8345S,AMP,2.567V,AMPVRMS,0.707Vrms,OFST,0.34V,HLEV,1.3V,"
542 "LLEV,-2.567V,XXXXX,4.3567";
543 rv =
parseBSWV( channel, wvtp, freq, peri, amp, ampvrms, ofst, hlev, llev, phse, wdth, resp );
545 REQUIRE( rv == -17 );