18 #define THM1176_PROMPT_TIME 10 // s
19 #define THM1176_BOOT_N_SCAN_TIME 15000 // ms
20 #define THM1176_CONNECT_TIME 10000 // ms
21 #define THM1176_SCAN_INTERVAL 1000 // ms
22 #define THM1176_SILLY_RESOURCE_NAME "Humpty_Dumpty_had_a_great_fall"
33 std::string l_Space = (
"" == Prompt) ?
"" :
" ";
34 std::string l_Message =
">>> " + Prompt + l_Space +
"(Will continue in " + std::to_string(
THM1176_PROMPT_TIME) +
" seconds) <<<";
36 QWARN(l_Message.c_str());
53 void initTestCase(
void);
56 void cleanupTestCase(
void);
59 void TestNotifyInstrumentList(
void);
62 void TestSetCurrentInstrument(
void);
82 void THM1176IM_Test01_Connect::initTestCase(
void)
87 void THM1176IM_Test01_Connect::cleanupTestCase(
void)
100 void THM1176IM_Test01_Connect::TestNotifyInstrumentList(
void)
104 QList<QVariant> l_Arguments;
113 QCOMPARE(l_NotifyInstrumentListSpy.count(), 1);
115 l_Arguments = l_NotifyInstrumentListSpy.takeFirst();
116 l_ResourceList = qvariant_cast<CResourceList>(l_Arguments.at(0));
118 QVERIFY(l_ResourceList.size() == 1);
126 QCOMPARE(l_NotifyInstrumentListSpy.count(), 1);
128 l_Arguments = l_NotifyInstrumentListSpy.takeFirst();
129 l_ResourceList = qvariant_cast<CResourceList>(l_Arguments.at(0));
130 QVERIFY(l_ResourceList.size() == 2);
138 QVERIFY(l_NotifyInstrumentListSpy.count() == 1 || l_NotifyInstrumentListSpy.count() == 2);
139 l_Arguments = l_NotifyInstrumentListSpy.takeFirst();
140 if (l_NotifyInstrumentListSpy.count() == 1)
141 l_Arguments = l_NotifyInstrumentListSpy.takeFirst();
142 l_ResourceList = qvariant_cast<CResourceList>(l_Arguments.at(0));
143 QVERIFY(l_ResourceList.size() == 0);
146 QCOMPARE(l_NotifyErrorListSpy.count(), 0);
177 void THM1176IM_Test01_Connect::TestSetCurrentInstrument(
void)
181 QSignalSpy l_NotifyCurrentInstrumentSpy(&
Manager, SIGNAL(NotifyCurrentInstrument(
tResourceName)));
183 QSignalSpy l_NotifyIdentificationSpy(&
Manager, SIGNAL(NotifyIdentification(
sIdentifier)));
184 QSignalSpy l_NotifyRangeListSpy(&
Manager, SIGNAL(NotifyRangeList(
CFluxList)));
194 QSignalSpy l_NotifySleepParmSpy(&
Manager, SIGNAL(NotifySleepParm(
bool)));
203 QList<QVariant> l_Arguments;
223 bool l_UseCalibration;
231 for (
int i = 0; i < 2; i++)
237 QVERIFY(l_NotifyInstrumentListSpy.count() == 1 || l_NotifyInstrumentListSpy.count() == 2);
238 l_Arguments = l_NotifyInstrumentListSpy.takeFirst();
239 if (l_NotifyInstrumentListSpy.count() == 1)
240 l_Arguments = l_NotifyInstrumentListSpy.takeFirst();
241 l_ResourceList = qvariant_cast<CResourceList>(l_Arguments.at(0));
245 if (l_ResourceList.size() == 2)
break;
247 QCOMPARE(
static_cast<int>(l_ResourceList.size()), 2);
255 QCOMPARE(l_NotifyOperatingModeSpy.count(), 1);
256 l_Arguments = l_NotifyOperatingModeSpy.takeFirst();
257 l_CurrentOperatingMode = qvariant_cast<eTHM1176OperatingMode>(l_Arguments.at(0));
261 l_FormerInstrument = l_CurrentInstrument;
262 QCOMPARE(l_NotifyCurrentInstrumentSpy.count(), 1);
263 l_Arguments = l_NotifyCurrentInstrumentSpy.takeFirst();
264 l_CurrentInstrument = qvariant_cast<tResourceName>(l_Arguments.at(0));
265 QCOMPARE(l_CurrentInstrument, l_ResourceList[0]);
268 QCOMPARE(l_NotifyIdentificationSpy.count(), 1);
269 l_Arguments = l_NotifyIdentificationSpy.takeFirst();
270 l_Identification = qvariant_cast<sIdentifier>(l_Arguments.at(0));
273 QCOMPARE(l_NotifyRangeListSpy.count(), 1);
274 l_Arguments = l_NotifyRangeListSpy.takeFirst();
275 l_RangeList = qvariant_cast<CFluxList>(l_Arguments.at(0));
276 QVERIFY(!l_RangeList.empty());
278 QCOMPARE(l_NotifyUnitsListSpy.count(), 1);
279 l_Arguments = l_NotifyUnitsListSpy.takeFirst();
280 l_UnitsList = qvariant_cast<CTHM1176UnitsList>(l_Arguments.at(0));
281 QVERIFY(!l_UnitsList.empty());
283 QCOMPARE(l_NotifyDivisorListSpy.count(), 1);
284 l_Arguments = l_NotifyDivisorListSpy.takeFirst();
285 l_DivisorList = qvariant_cast<CDivisorList>(l_Arguments.at(0));
286 QVERIFY(!l_DivisorList.empty());
288 QCOMPARE(l_NotifyAveragingParmBoundsSpy.count(), 1);
289 l_Arguments = l_NotifyAveragingParmBoundsSpy.takeFirst();
290 l_AveragingBounds = qvariant_cast<sAveraging<sBoundedParm>>(l_Arguments.at(0));
294 QCOMPARE(l_NotifyTriggerParmBoundsSpy.count(), 1);
295 l_Arguments = l_NotifyTriggerParmBoundsSpy.takeFirst();
296 l_TriggerBounds = qvariant_cast<sInputTrigger<sBoundedParm>>(l_Arguments.at(0));
302 QCOMPARE(l_NotifyRangeParmBoundsSpy.count(), 1);
303 l_Arguments = l_NotifyRangeParmBoundsSpy.takeFirst();
304 l_RangeBounds = qvariant_cast<sRange<sBoundedParm>>(l_Arguments.at(0));
309 QCOMPARE(l_NotifyAveragingParmsSpy.count(), 1);
310 l_Arguments = l_NotifyAveragingParmsSpy.takeFirst();
311 l_AveragingParms = qvariant_cast<sAveraging<uParm>>(l_Arguments.at(0));
312 QVERIFY(l_AveragingParms.
NoPoints > 0);
314 QCOMPARE(l_NotifyTriggerParmsSpy.count(), 1);
315 l_Arguments = l_NotifyTriggerParmsSpy.takeFirst();
316 l_Trigger = qvariant_cast<sInputTrigger<uParm>>(l_Arguments.at(0));
319 QCOMPARE(l_NotifyOutputSelectSpy.count(), 1);
320 l_Arguments = l_NotifyOutputSelectSpy.takeFirst();
321 l_OutputSelect = qvariant_cast<sArbitraryMeasurements>(l_Arguments.at(0));
323 QCOMPARE(l_NotifySleepParmSpy.count(), 1);
324 l_Arguments = l_NotifySleepParmSpy.takeFirst();
325 l_SleepParm = qvariant_cast<bool>(l_Arguments.at(0));
327 QCOMPARE(l_NotifyUnitsSpy.count(), 1);
328 l_Arguments = l_NotifyUnitsSpy.takeFirst();
329 l_Units = qvariant_cast<eTHM1176Units>(l_Arguments.at(0));
331 QCOMPARE(l_NotifyRangeParmsSpy.count(), 1);
332 l_Arguments = l_NotifyRangeParmsSpy.takeFirst();
333 l_RangeParms = qvariant_cast<sRange<uParm>>(l_Arguments.at(0));
335 QCOMPARE(l_NotifyCommFormatSpy.count(), 1);
336 l_Arguments = l_NotifyCommFormatSpy.takeFirst();
337 l_CommFormat = qvariant_cast<eCommunicationFormat>(l_Arguments.at(0));
340 QCOMPARE(l_NotifyErrorListSpy.count(), 0);
342 std::cout <<
"- Connected to " << l_Identification.
Model <<
", S/N " << l_Identification.
SerialNumber << std::endl;
349 QCOMPARE(l_NotifyCurrentInstrumentSpy.count(), 0);
352 QCOMPARE(l_NotifyIdentificationSpy.count(), 0);
353 QCOMPARE(l_NotifyRangeListSpy.count(), 0);
354 QCOMPARE(l_NotifyUnitsListSpy.count(), 0);
355 QCOMPARE(l_NotifyDivisorListSpy.count(), 0);
356 QCOMPARE(l_NotifyAveragingParmBoundsSpy.count(), 0);
357 QCOMPARE(l_NotifyTriggerParmBoundsSpy.count(), 0);
358 QCOMPARE(l_NotifyRangeParmBoundsSpy.count(), 0);
361 QCOMPARE(l_NotifyAveragingParmsSpy.count(), 0);
362 QCOMPARE(l_NotifyTriggerParmsSpy.count(), 0);
363 QCOMPARE(l_NotifyOutputSelectSpy.count(), 0);
364 QCOMPARE(l_NotifySleepParmSpy.count(), 0);
365 QCOMPARE(l_NotifyUnitsSpy.count(), 0);
366 QCOMPARE(l_NotifyRangeParmsSpy.count(), 0);
367 QCOMPARE(l_NotifyCommFormatSpy.count(), 0);
370 QCOMPARE(l_NotifyOperatingModeSpy.count(), 0);
371 QCOMPARE(l_NotifyErrorListSpy.count(), 0);
373 std::cout <<
"- Still connected to " << l_Identification.
Model <<
", S/N " << l_Identification.
SerialNumber << std::endl;
379 l_FormerInstrument = l_CurrentInstrument;
381 QCOMPARE(l_NotifyCurrentInstrumentSpy.count(), 0);
384 QCOMPARE(l_NotifyIdentificationSpy.count(), 0);
385 QCOMPARE(l_NotifyRangeListSpy.count(), 0);
386 QCOMPARE(l_NotifyUnitsListSpy.count(), 0);
387 QCOMPARE(l_NotifyDivisorListSpy.count(), 0);
388 QCOMPARE(l_NotifyAveragingParmBoundsSpy.count(), 0);
389 QCOMPARE(l_NotifyTriggerParmBoundsSpy.count(), 0);
390 QCOMPARE(l_NotifyRangeParmBoundsSpy.count(), 0);
393 QCOMPARE(l_NotifyAveragingParmsSpy.count(), 0);
394 QCOMPARE(l_NotifyTriggerParmsSpy.count(), 0);
395 QCOMPARE(l_NotifyOutputSelectSpy.count(), 0);
396 QCOMPARE(l_NotifySleepParmSpy.count(), 0);
397 QCOMPARE(l_NotifyUnitsSpy.count(), 0);
398 QCOMPARE(l_NotifyRangeParmsSpy.count(), 0);
399 QCOMPARE(l_NotifyCommFormatSpy.count(), 0);
402 QCOMPARE(l_NotifyOperatingModeSpy.count(), 0);
405 QCOMPARE(l_NotifyErrorListSpy.count(), 1);
406 l_Arguments = l_NotifyErrorListSpy.takeFirst();
407 l_LatestErrors = qvariant_cast<CErrorList>(l_Arguments.at(0));
408 QCOMPARE(
static_cast<int>(l_LatestErrors.size()), 1);
410 std::cout <<
"- Invalid connection request returned error: " << l_LatestErrors[0].Code <<
", " <<
411 l_LatestErrors[0].Description <<
", " << l_LatestErrors[0].Context << std::endl;
412 std::cout <<
"- Still connected to " << l_Identification.
Model <<
", S/N " << l_Identification.
SerialNumber << std::endl;
420 QVERIFY(l_NotifyOperatingModeSpy.count() > 0);
421 l_Arguments = l_NotifyOperatingModeSpy.takeFirst();
422 l_CurrentOperatingMode = qvariant_cast<eTHM1176OperatingMode>(l_Arguments.at(0));
424 if (l_NotifyOperatingModeSpy.count() <= 0)
427 QCOMPARE(l_NotifyOperatingModeSpy.count(), 1);
429 l_Arguments = l_NotifyOperatingModeSpy.takeFirst();
430 l_CurrentOperatingMode = qvariant_cast<eTHM1176OperatingMode>(l_Arguments.at(0));
434 l_FormerInstrument = l_CurrentInstrument;
435 QCOMPARE(l_NotifyCurrentInstrumentSpy.count(), 2);
436 l_Arguments = l_NotifyCurrentInstrumentSpy.takeFirst();
437 l_CurrentInstrument = qvariant_cast<tResourceName>(l_Arguments.at(0));
438 QVERIFY(l_CurrentInstrument.empty());
439 l_Arguments = l_NotifyCurrentInstrumentSpy.takeFirst();
440 l_CurrentInstrument = qvariant_cast<tResourceName>(l_Arguments.at(0));
441 QVERIFY(l_CurrentInstrument == l_ResourceList[1]);
444 QCOMPARE(l_NotifyIdentificationSpy.count(), 2);
445 l_Arguments = l_NotifyIdentificationSpy.takeFirst();
446 l_Identification = qvariant_cast<sIdentifier>(l_Arguments.at(0));
448 l_Arguments = l_NotifyIdentificationSpy.takeFirst();
449 l_Identification = qvariant_cast<sIdentifier>(l_Arguments.at(0));
452 QCOMPARE(l_NotifyRangeListSpy.count(), 2);
453 l_Arguments = l_NotifyRangeListSpy.takeFirst();
454 l_RangeList = qvariant_cast<CFluxList>(l_Arguments.at(0));
455 QVERIFY(l_RangeList.empty());
456 l_Arguments = l_NotifyRangeListSpy.takeFirst();
457 l_RangeList = qvariant_cast<CFluxList>(l_Arguments.at(0));
458 QVERIFY(!l_RangeList.empty());
460 QCOMPARE(l_NotifyUnitsListSpy.count(), 2);
461 l_Arguments = l_NotifyUnitsListSpy.takeFirst();
462 l_UnitsList = qvariant_cast<CTHM1176UnitsList>(l_Arguments.at(0));
463 QVERIFY(l_UnitsList.empty());
464 l_Arguments = l_NotifyUnitsListSpy.takeFirst();
465 l_UnitsList = qvariant_cast<CTHM1176UnitsList>(l_Arguments.at(0));
466 QVERIFY(!l_UnitsList.empty());
468 QCOMPARE(l_NotifyDivisorListSpy.count(), 2);
469 l_Arguments = l_NotifyDivisorListSpy.takeFirst();
470 l_DivisorList = qvariant_cast<CDivisorList>(l_Arguments.at(0));
471 QVERIFY(l_DivisorList.empty());
472 l_Arguments = l_NotifyDivisorListSpy.takeFirst();
473 l_DivisorList = qvariant_cast<CDivisorList>(l_Arguments.at(0));
474 QVERIFY(!l_DivisorList.empty());
476 QCOMPARE(l_NotifyAveragingParmBoundsSpy.count(), 2);
477 l_Arguments = l_NotifyAveragingParmBoundsSpy.takeFirst();
478 l_AveragingBounds = qvariant_cast<sAveraging<sBoundedParm>>(l_Arguments.at(0));
481 l_Arguments = l_NotifyAveragingParmBoundsSpy.takeFirst();
482 l_AveragingBounds = qvariant_cast<sAveraging<sBoundedParm>>(l_Arguments.at(0));
486 QCOMPARE(l_NotifyTriggerParmBoundsSpy.count(), 2);
487 l_Arguments = l_NotifyTriggerParmBoundsSpy.takeFirst();
488 l_TriggerBounds = qvariant_cast<sInputTrigger<sBoundedParm>>(l_Arguments.at(0));
493 l_Arguments = l_NotifyTriggerParmBoundsSpy.takeFirst();
494 l_TriggerBounds = qvariant_cast<sInputTrigger<sBoundedParm>>(l_Arguments.at(0));
500 QCOMPARE(l_NotifyRangeParmBoundsSpy.count(), 2);
501 l_Arguments = l_NotifyRangeParmBoundsSpy.takeFirst();
502 l_RangeBounds = qvariant_cast<sRange<sBoundedParm>>(l_Arguments.at(0));
505 l_Arguments = l_NotifyRangeParmBoundsSpy.takeFirst();
506 l_RangeBounds = qvariant_cast<sRange<sBoundedParm>>(l_Arguments.at(0));
511 QCOMPARE(l_NotifyAveragingParmsSpy.count(), 2);
512 l_Arguments = l_NotifyAveragingParmsSpy.takeFirst();
513 l_AveragingParms = qvariant_cast<sAveraging<uParm>>(l_Arguments.at(0));
514 QVERIFY(l_AveragingParms.
NoPoints == 0);
515 l_Arguments = l_NotifyAveragingParmsSpy.takeFirst();
516 l_AveragingParms = qvariant_cast<sAveraging<uParm>>(l_Arguments.at(0));
517 QVERIFY(l_AveragingParms.
NoPoints > 0);
519 QCOMPARE(l_NotifyTriggerParmsSpy.count(), 2);
520 l_Arguments = l_NotifyTriggerParmsSpy.takeFirst();
521 l_Trigger = qvariant_cast<sInputTrigger<uParm>>(l_Arguments.at(0));
523 l_Arguments = l_NotifyTriggerParmsSpy.takeFirst();
524 l_Trigger = qvariant_cast<sInputTrigger<uParm>>(l_Arguments.at(0));
527 QCOMPARE(l_NotifyOutputSelectSpy.count(), 2);
528 l_Arguments = l_NotifyOutputSelectSpy.takeFirst();
529 l_OutputSelect = qvariant_cast<sArbitraryMeasurements>(l_Arguments.at(0));
530 QVERIFY(l_OutputSelect.
Bx && l_OutputSelect.
By && l_OutputSelect.
Bz &&
532 l_Arguments = l_NotifyOutputSelectSpy.takeFirst();
533 l_OutputSelect = qvariant_cast<sArbitraryMeasurements>(l_Arguments.at(0));
535 QCOMPARE(l_NotifySleepParmSpy.count(), 2);
536 l_Arguments = l_NotifySleepParmSpy.takeFirst();
537 l_SleepParm = qvariant_cast<bool>(l_Arguments.at(0));
538 QVERIFY(!l_SleepParm);
539 l_Arguments = l_NotifySleepParmSpy.takeFirst();
540 l_SleepParm = qvariant_cast<bool>(l_Arguments.at(0));
542 QCOMPARE(l_NotifyUnitsSpy.count(), 2);
543 l_Arguments = l_NotifyUnitsSpy.takeFirst();
544 l_Units = qvariant_cast<eTHM1176Units>(l_Arguments.at(0));
546 l_Arguments = l_NotifyUnitsSpy.takeFirst();
547 l_Units = qvariant_cast<eTHM1176Units>(l_Arguments.at(0));
549 QCOMPARE(l_NotifyRangeParmsSpy.count(), 2);
550 l_Arguments = l_NotifyRangeParmsSpy.takeFirst();
551 l_RangeParms = qvariant_cast<sRange<uParm>>(l_Arguments.at(0));
552 QVERIFY(!l_RangeParms.
Auto && l_RangeParms.
Range == 0.f);
553 l_Arguments = l_NotifyRangeParmsSpy.takeFirst();
554 l_RangeParms = qvariant_cast<sRange<uParm>>(l_Arguments.at(0));
556 QCOMPARE(l_NotifyCommFormatSpy.count(), 2);
557 l_Arguments = l_NotifyCommFormatSpy.takeFirst();
558 l_CommFormat = qvariant_cast<eCommunicationFormat>(l_Arguments.at(0));
560 l_Arguments = l_NotifyCommFormatSpy.takeFirst();
561 l_CommFormat = qvariant_cast<eCommunicationFormat>(l_Arguments.at(0));
564 QCOMPARE(l_NotifyErrorListSpy.count(), 0);
566 std::cout <<
"- Connected to " << l_Identification.
Model <<
", S/N " << l_Identification.
SerialNumber << std::endl;
570 std::string l_Prompt =
"Please unplug " + l_Identification.
Model +
", S/N " + std::to_string(l_Identification.
SerialNumber);
573 QVERIFY(l_NotifyInstrumentListSpy.count() == 1);
574 l_Arguments = l_NotifyInstrumentListSpy.takeFirst();
575 l_ResourceList = qvariant_cast<CResourceList>(l_Arguments.at(0));
579 QCOMPARE(l_NotifyCommFormatSpy.count(), 1);
580 l_Arguments = l_NotifyCommFormatSpy.takeFirst();
581 l_CommFormat = qvariant_cast<eCommunicationFormat>(l_Arguments.at(0));
585 l_FormerInstrument = l_CurrentInstrument;
586 QCOMPARE(l_NotifyCurrentInstrumentSpy.count(), 1);
587 l_Arguments = l_NotifyCurrentInstrumentSpy.takeFirst();
588 l_CurrentInstrument = qvariant_cast<tResourceName>(l_Arguments.at(0));
589 QVERIFY(l_CurrentInstrument.empty());
592 QCOMPARE(l_NotifyIdentificationSpy.count(), 1);
593 l_Arguments = l_NotifyIdentificationSpy.takeFirst();
594 l_Identification = qvariant_cast<sIdentifier>(l_Arguments.at(0));
597 QCOMPARE(l_NotifyRangeListSpy.count(), 1);
598 l_Arguments = l_NotifyRangeListSpy.takeFirst();
599 l_RangeList = qvariant_cast<CFluxList>(l_Arguments.at(0));
600 QVERIFY(l_RangeList.empty());
602 QCOMPARE(l_NotifyUnitsListSpy.count(), 1);
603 l_Arguments = l_NotifyUnitsListSpy.takeFirst();
604 l_UnitsList = qvariant_cast<CTHM1176UnitsList>(l_Arguments.at(0));
605 QVERIFY(l_UnitsList.empty());
607 QCOMPARE(l_NotifyDivisorListSpy.count(), 1);
608 l_Arguments = l_NotifyDivisorListSpy.takeFirst();
609 l_DivisorList = qvariant_cast<CDivisorList>(l_Arguments.at(0));
610 QVERIFY(l_DivisorList.empty());
612 QCOMPARE(l_NotifyAveragingParmBoundsSpy.count(), 1);
613 l_Arguments = l_NotifyAveragingParmBoundsSpy.takeFirst();
614 l_AveragingBounds = qvariant_cast<sAveraging<sBoundedParm>>(l_Arguments.at(0));
618 QCOMPARE(l_NotifyTriggerParmBoundsSpy.count(), 1);
619 l_Arguments = l_NotifyTriggerParmBoundsSpy.takeFirst();
620 l_TriggerBounds = qvariant_cast<sInputTrigger<sBoundedParm>>(l_Arguments.at(0));
626 QCOMPARE(l_NotifyRangeParmBoundsSpy.count(), 1);
627 l_Arguments = l_NotifyRangeParmBoundsSpy.takeFirst();
628 l_RangeBounds = qvariant_cast<sRange<sBoundedParm>>(l_Arguments.at(0));
633 QCOMPARE(l_NotifyAveragingParmsSpy.count(), 1);
634 l_Arguments = l_NotifyAveragingParmsSpy.takeFirst();
635 l_AveragingParms = qvariant_cast<sAveraging<uParm>>(l_Arguments.at(0));
636 QVERIFY(l_AveragingParms.
NoPoints == 0);
638 QCOMPARE(l_NotifyTriggerParmsSpy.count(), 1);
639 l_Arguments = l_NotifyTriggerParmsSpy.takeFirst();
640 l_Trigger = qvariant_cast<sInputTrigger<uParm>>(l_Arguments.at(0));
643 QCOMPARE(l_NotifyOutputSelectSpy.count(), 1);
644 l_Arguments = l_NotifyOutputSelectSpy.takeFirst();
645 l_OutputSelect = qvariant_cast<sArbitraryMeasurements>(l_Arguments.at(0));
646 QVERIFY(l_OutputSelect.
Bx && l_OutputSelect.
By && l_OutputSelect.
Bz &&
650 QCOMPARE(l_NotifySleepParmSpy.count(), 1);
651 l_Arguments = l_NotifySleepParmSpy.takeFirst();
652 l_SleepParm = qvariant_cast<bool>(l_Arguments.at(0));
653 QVERIFY(!l_SleepParm);
655 QCOMPARE(l_NotifyUnitsSpy.count(), 1);
656 l_Arguments = l_NotifyUnitsSpy.takeFirst();
657 l_Units = qvariant_cast<eTHM1176Units>(l_Arguments.at(0));
660 QCOMPARE(l_NotifyRangeParmsSpy.count(), 1);
661 l_Arguments = l_NotifyRangeParmsSpy.takeFirst();
662 l_RangeParms = qvariant_cast<sRange<uParm>>(l_Arguments.at(0));
663 QVERIFY(!l_RangeParms.
Auto && l_RangeParms.
Range == 0.f);
666 QCOMPARE(l_NotifyOperatingModeSpy.count(), 1);
667 l_Arguments = l_NotifyOperatingModeSpy.takeFirst();
668 l_CurrentOperatingMode = qvariant_cast<eTHM1176OperatingMode>(l_Arguments.at(0));
671 QCOMPARE(l_NotifyErrorListSpy.count(), 0);
673 std::cout <<
"- No longer connected" << std::endl;
681 QCOMPARE(l_NotifyCurrentInstrumentSpy.count(), 0);
684 QCOMPARE(l_NotifyIdentificationSpy.count(), 0);
685 QCOMPARE(l_NotifyRangeListSpy.count(), 0);
686 QCOMPARE(l_NotifyUnitsListSpy.count(), 0);
687 QCOMPARE(l_NotifyDivisorListSpy.count(), 0);
688 QCOMPARE(l_NotifyAveragingParmBoundsSpy.count(), 0);
689 QCOMPARE(l_NotifyTriggerParmBoundsSpy.count(), 0);
690 QCOMPARE(l_NotifyRangeParmBoundsSpy.count(), 0);
693 QCOMPARE(l_NotifyAveragingParmsSpy.count(), 0);
694 QCOMPARE(l_NotifyTriggerParmsSpy.count(), 0);
695 QCOMPARE(l_NotifyOutputSelectSpy.count(), 0);
696 QCOMPARE(l_NotifySleepParmSpy.count(), 0);
697 QCOMPARE(l_NotifyUnitsSpy.count(), 0);
698 QCOMPARE(l_NotifyRangeParmsSpy.count(), 0);
699 QCOMPARE(l_NotifyCommFormatSpy.count(), 0);
702 QCOMPARE(l_NotifyOperatingModeSpy.count(), 0);
705 QCOMPARE(l_NotifyErrorListSpy.count(), 1);
706 l_Arguments = l_NotifyErrorListSpy.takeFirst();
707 l_LatestErrors = qvariant_cast<CErrorList>(l_Arguments.at(0));
708 QCOMPARE(
static_cast<int>(l_LatestErrors.size()), 1);
710 std::cout <<
"- Invalid connection request returned error: " << l_LatestErrors[0].Code <<
", " <<
711 l_LatestErrors[0].Description <<
", " << l_LatestErrors[0].Context << std::endl;
712 std::cout <<
"- No longer connected" << std::endl;
720 QCOMPARE(l_NotifyOperatingModeSpy.count(), 1);
721 l_Arguments = l_NotifyOperatingModeSpy.takeFirst();
722 l_CurrentOperatingMode = qvariant_cast<eTHM1176OperatingMode>(l_Arguments.at(0));
726 l_FormerInstrument = l_CurrentInstrument;
727 QCOMPARE(l_NotifyCurrentInstrumentSpy.count(), 1);
728 l_Arguments = l_NotifyCurrentInstrumentSpy.takeFirst();
729 l_CurrentInstrument = qvariant_cast<tResourceName>(l_Arguments.at(0));
730 QCOMPARE(l_CurrentInstrument, l_ResourceList[0]);
733 QCOMPARE(l_NotifyIdentificationSpy.count(), 1);
734 l_Arguments = l_NotifyIdentificationSpy.takeFirst();
735 l_Identification = qvariant_cast<sIdentifier>(l_Arguments.at(0));
738 QCOMPARE(l_NotifyRangeListSpy.count(), 1);
739 l_Arguments = l_NotifyRangeListSpy.takeFirst();
740 l_RangeList = qvariant_cast<CFluxList>(l_Arguments.at(0));
741 QVERIFY(!l_RangeList.empty());
743 QCOMPARE(l_NotifyUnitsListSpy.count(), 1);
744 l_Arguments = l_NotifyUnitsListSpy.takeFirst();
745 l_UnitsList = qvariant_cast<CTHM1176UnitsList>(l_Arguments.at(0));
746 QVERIFY(!l_UnitsList.empty());
748 QCOMPARE(l_NotifyDivisorListSpy.count(), 1);
749 l_Arguments = l_NotifyDivisorListSpy.takeFirst();
750 l_DivisorList = qvariant_cast<CDivisorList>(l_Arguments.at(0));
751 QVERIFY(!l_DivisorList.empty());
753 QCOMPARE(l_NotifyAveragingParmBoundsSpy.count(), 1);
754 l_Arguments = l_NotifyAveragingParmBoundsSpy.takeFirst();
755 l_AveragingBounds = qvariant_cast<sAveraging<sBoundedParm>>(l_Arguments.at(0));
759 QCOMPARE(l_NotifyTriggerParmBoundsSpy.count(), 1);
760 l_Arguments = l_NotifyTriggerParmBoundsSpy.takeFirst();
761 l_TriggerBounds = qvariant_cast<sInputTrigger<sBoundedParm>>(l_Arguments.at(0));
767 QCOMPARE(l_NotifyRangeParmBoundsSpy.count(), 1);
768 l_Arguments = l_NotifyRangeParmBoundsSpy.takeFirst();
769 l_RangeBounds = qvariant_cast<sRange<sBoundedParm>>(l_Arguments.at(0));
774 QCOMPARE(l_NotifyAveragingParmsSpy.count(), 1);
775 l_Arguments = l_NotifyAveragingParmsSpy.takeFirst();
776 l_AveragingParms = qvariant_cast<sAveraging<uParm>>(l_Arguments.at(0));
777 QVERIFY(l_AveragingParms.
NoPoints > 0);
779 QCOMPARE(l_NotifyTriggerParmsSpy.count(), 1);
780 l_Arguments = l_NotifyTriggerParmsSpy.takeFirst();
781 l_Trigger = qvariant_cast<sInputTrigger<uParm>>(l_Arguments.at(0));
784 QCOMPARE(l_NotifyOutputSelectSpy.count(), 1);
785 l_Arguments = l_NotifyOutputSelectSpy.takeFirst();
786 l_OutputSelect = qvariant_cast<sArbitraryMeasurements>(l_Arguments.at(0));
788 QCOMPARE(l_NotifySleepParmSpy.count(), 1);
789 l_Arguments = l_NotifySleepParmSpy.takeFirst();
790 l_SleepParm = qvariant_cast<bool>(l_Arguments.at(0));
792 QCOMPARE(l_NotifyUnitsSpy.count(), 1);
793 l_Arguments = l_NotifyUnitsSpy.takeFirst();
794 l_Units = qvariant_cast<eTHM1176Units>(l_Arguments.at(0));
796 QCOMPARE(l_NotifyRangeParmsSpy.count(), 1);
797 l_Arguments = l_NotifyRangeParmsSpy.takeFirst();
798 l_RangeParms = qvariant_cast<sRange<uParm>>(l_Arguments.at(0));
800 QCOMPARE(l_NotifyCommFormatSpy.count(), 1);
801 l_Arguments = l_NotifyCommFormatSpy.takeFirst();
802 l_CommFormat = qvariant_cast<eCommunicationFormat>(l_Arguments.at(0));
805 QCOMPARE(l_NotifyErrorListSpy.count(), 0);
807 std::cout <<
"- Connected to " << l_Identification.
Model <<
", S/N " << l_Identification.
SerialNumber << std::endl;
815 QCOMPARE(l_NotifyCommFormatSpy.count(), 1);
816 l_Arguments = l_NotifyCommFormatSpy.takeFirst();
817 l_CommFormat = qvariant_cast<eCommunicationFormat>(l_Arguments.at(0));
821 l_FormerInstrument = l_CurrentInstrument;
822 QCOMPARE(l_NotifyCurrentInstrumentSpy.count(), 1);
823 l_Arguments = l_NotifyCurrentInstrumentSpy.takeFirst();
824 l_CurrentInstrument = qvariant_cast<tResourceName>(l_Arguments.at(0));
825 QVERIFY(l_CurrentInstrument.empty());
828 QCOMPARE(l_NotifyIdentificationSpy.count(), 1);
829 l_Arguments = l_NotifyIdentificationSpy.takeFirst();
830 l_Identification = qvariant_cast<sIdentifier>(l_Arguments.at(0));
833 QCOMPARE(l_NotifyRangeListSpy.count(), 1);
834 l_Arguments = l_NotifyRangeListSpy.takeFirst();
835 l_RangeList = qvariant_cast<CFluxList>(l_Arguments.at(0));
836 QVERIFY(l_RangeList.empty());
838 QCOMPARE(l_NotifyUnitsListSpy.count(), 1);
839 l_Arguments = l_NotifyUnitsListSpy.takeFirst();
840 l_UnitsList = qvariant_cast<CTHM1176UnitsList>(l_Arguments.at(0));
841 QVERIFY(l_UnitsList.empty());
843 QCOMPARE(l_NotifyDivisorListSpy.count(), 1);
844 l_Arguments = l_NotifyDivisorListSpy.takeFirst();
845 l_DivisorList = qvariant_cast<CDivisorList>(l_Arguments.at(0));
846 QVERIFY(l_DivisorList.empty());
848 QCOMPARE(l_NotifyAveragingParmBoundsSpy.count(), 1);
849 l_Arguments = l_NotifyAveragingParmBoundsSpy.takeFirst();
850 l_AveragingBounds = qvariant_cast<sAveraging<sBoundedParm>>(l_Arguments.at(0));
854 QCOMPARE(l_NotifyTriggerParmBoundsSpy.count(), 1);
855 l_Arguments = l_NotifyTriggerParmBoundsSpy.takeFirst();
856 l_TriggerBounds = qvariant_cast<sInputTrigger<sBoundedParm>>(l_Arguments.at(0));
862 QCOMPARE(l_NotifyRangeParmBoundsSpy.count(), 1);
863 l_Arguments = l_NotifyRangeParmBoundsSpy.takeFirst();
864 l_RangeBounds = qvariant_cast<sRange<sBoundedParm>>(l_Arguments.at(0));
869 QCOMPARE(l_NotifyAveragingParmsSpy.count(), 1);
870 l_Arguments = l_NotifyAveragingParmsSpy.takeFirst();
871 l_AveragingParms = qvariant_cast<sAveraging<uParm>>(l_Arguments.at(0));
872 QVERIFY(l_AveragingParms.
NoPoints == 0);
874 QCOMPARE(l_NotifyTriggerParmsSpy.count(), 1);
875 l_Arguments = l_NotifyTriggerParmsSpy.takeFirst();
876 l_Trigger = qvariant_cast<sInputTrigger<uParm>>(l_Arguments.at(0));
879 QCOMPARE(l_NotifyOutputSelectSpy.count(), 1);
880 l_Arguments = l_NotifyOutputSelectSpy.takeFirst();
881 l_OutputSelect = qvariant_cast<sArbitraryMeasurements>(l_Arguments.at(0));
882 QVERIFY(l_OutputSelect.
Bx && l_OutputSelect.
By && l_OutputSelect.
Bz &&
886 QCOMPARE(l_NotifySleepParmSpy.count(), 1);
887 l_Arguments = l_NotifySleepParmSpy.takeFirst();
888 l_SleepParm = qvariant_cast<bool>(l_Arguments.at(0));
889 QVERIFY(!l_SleepParm);
891 QCOMPARE(l_NotifyUnitsSpy.count(), 1);
892 l_Arguments = l_NotifyUnitsSpy.takeFirst();
893 l_Units = qvariant_cast<eTHM1176Units>(l_Arguments.at(0));
896 QCOMPARE(l_NotifyRangeParmsSpy.count(), 1);
897 l_Arguments = l_NotifyRangeParmsSpy.takeFirst();
898 l_RangeParms = qvariant_cast<sRange<uParm>>(l_Arguments.at(0));
899 QVERIFY(!l_RangeParms.
Auto && l_RangeParms.
Range == 0.f);
902 QCOMPARE(l_NotifyOperatingModeSpy.count(), 1);
903 l_Arguments = l_NotifyOperatingModeSpy.takeFirst();
904 l_CurrentOperatingMode = qvariant_cast<eTHM1176OperatingMode>(l_Arguments.at(0));
907 QCOMPARE(l_NotifyErrorListSpy.count(), 0);
909 std::cout <<
"- No longer connected" << std::endl;
918 #include "THM1176IM_Test01_Connect.moc"