141 U64 l_TimestampInterval;
147 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
149 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(0, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
151 l_ErrorList = pTHM1176->CurrentErrorList();
152 EXPECT_EQ(3, l_ErrorList.size());
153 EXPECT_EQ(-222, l_ErrorList[0].Code);
154 EXPECT_EQ(-222, l_ErrorList[1].Code);
155 EXPECT_EQ(-222, l_ErrorList[2].Code);
157 EXPECT_EQ(0, l_Bx.size());
158 EXPECT_EQ(0, l_By.size());
159 EXPECT_EQ(0, l_Bz.size());
160 EXPECT_EQ(0, l_Temperature);
161 ASSERT_EQ(0, l_TimestampList.size());
164 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
166 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(0, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
168 l_ErrorList = pTHM1176->CurrentErrorList();
169 EXPECT_EQ(3, l_ErrorList.size());
170 EXPECT_EQ(-222, l_ErrorList[0].Code);
171 EXPECT_EQ(-222, l_ErrorList[1].Code);
172 EXPECT_EQ(-222, l_ErrorList[2].Code);
174 EXPECT_EQ(0, l_Bx.size());
175 EXPECT_EQ(0, l_By.size());
176 EXPECT_EQ(0, l_Bz.size());
177 EXPECT_EQ(0, l_Temperature);
178 ASSERT_EQ(0, l_TimestampList.size());
181 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
183 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(0, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
185 l_ErrorList = pTHM1176->CurrentErrorList();
186 EXPECT_EQ(3, l_ErrorList.size());
187 EXPECT_EQ(-222, l_ErrorList[0].Code);
188 EXPECT_EQ(-222, l_ErrorList[1].Code);
189 EXPECT_EQ(-222, l_ErrorList[2].Code);
191 EXPECT_EQ(0, l_Bx.size());
192 EXPECT_EQ(0, l_By.size());
193 EXPECT_EQ(0, l_Bz.size());
194 EXPECT_EQ(0, l_Temperature);
195 ASSERT_EQ(0, l_TimestampList.size());
198 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
200 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(0, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
202 l_ErrorList = pTHM1176->CurrentErrorList();
203 EXPECT_EQ(3, l_ErrorList.size());
204 EXPECT_EQ(-222, l_ErrorList[0].Code);
205 EXPECT_EQ(-222, l_ErrorList[1].Code);
206 EXPECT_EQ(-222, l_ErrorList[2].Code);
208 EXPECT_EQ(0, l_Bx.size());
209 EXPECT_EQ(0, l_By.size());
210 EXPECT_EQ(0, l_Bz.size());
211 EXPECT_EQ(0, l_Temperature);
212 ASSERT_EQ(0, l_TimestampList.size());
218 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
220 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
224 EXPECT_LT(0, l_Temperature);
228 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
233 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
235 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
239 EXPECT_LT(0, l_Temperature);
243 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
248 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
250 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
254 EXPECT_LT(0, l_Temperature);
258 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
263 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
265 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
269 EXPECT_LT(0, l_Temperature);
273 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
281 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
283 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS-1, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
287 EXPECT_LT(0, l_Temperature);
291 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
296 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
298 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS-1, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
302 EXPECT_LT(0, l_Temperature);
306 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
311 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
313 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS-1, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
317 EXPECT_LT(0, l_Temperature);
321 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
326 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
328 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS-1, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
332 EXPECT_LT(0, l_Temperature);
336 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
343 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
345 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS+1, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
347 l_ErrorList = pTHM1176->CurrentErrorList();
348 EXPECT_EQ(3, l_ErrorList.size());
349 EXPECT_EQ(-222, l_ErrorList[0].Code);
350 EXPECT_EQ(-222, l_ErrorList[1].Code);
351 EXPECT_EQ(-222, l_ErrorList[2].Code);
353 EXPECT_EQ(0, l_Bx.size());
354 EXPECT_EQ(0, l_By.size());
355 EXPECT_EQ(0, l_Bz.size());
356 EXPECT_EQ(0, l_Temperature);
357 ASSERT_EQ(0, l_TimestampList.size());
360 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
362 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS+1, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
364 l_ErrorList = pTHM1176->CurrentErrorList();
365 EXPECT_EQ(3, l_ErrorList.size());
366 EXPECT_EQ(-222, l_ErrorList[0].Code);
367 EXPECT_EQ(-222, l_ErrorList[1].Code);
368 EXPECT_EQ(-222, l_ErrorList[2].Code);
370 EXPECT_EQ(0, l_Bx.size());
371 EXPECT_EQ(0, l_By.size());
372 EXPECT_EQ(0, l_Bz.size());
373 EXPECT_EQ(0, l_Temperature);
374 ASSERT_EQ(0, l_TimestampList.size());
377 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
379 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS+1, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
381 l_ErrorList = pTHM1176->CurrentErrorList();
382 EXPECT_EQ(3, l_ErrorList.size());
383 EXPECT_EQ(-222, l_ErrorList[0].Code);
384 EXPECT_EQ(-222, l_ErrorList[1].Code);
385 EXPECT_EQ(-222, l_ErrorList[2].Code);
387 EXPECT_EQ(0, l_Bx.size());
388 EXPECT_EQ(0, l_By.size());
389 EXPECT_EQ(0, l_Bz.size());
390 EXPECT_EQ(0, l_Temperature);
391 ASSERT_EQ(0, l_TimestampList.size());
394 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
396 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS+1, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
398 l_ErrorList = pTHM1176->CurrentErrorList();
399 EXPECT_EQ(3, l_ErrorList.size());
400 EXPECT_EQ(-222, l_ErrorList[0].Code);
401 EXPECT_EQ(-222, l_ErrorList[1].Code);
402 EXPECT_EQ(-222, l_ErrorList[2].Code);
404 EXPECT_EQ(0, l_Bx.size());
405 EXPECT_EQ(0, l_By.size());
406 EXPECT_EQ(0, l_Bz.size());
407 EXPECT_EQ(0, l_Temperature);
408 ASSERT_EQ(0, l_TimestampList.size());
414 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
418 ASSERT_EQ(
true, pTHM1176->GetAllUnits(l_AllUnits));
419 ASSERT_LT(1, l_AllUnits.size());
421 ASSERT_EQ(
true, pTHM1176->ParmUnitsSet(l_AllUnits[0]));
422 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
427 ASSERT_EQ(
true, pTHM1176->ParmUnitsSet(l_AllUnits[1]));
428 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS, l_Bx1, l_By1, l_Bz1, l_Units, l_Temperature, l_TimestampList));
433 U32 l_Divisor, l_Divisor1;
434 ASSERT_EQ(
true, pTHM1176->GetDivisor(l_AllUnits[0], l_Divisor));
435 ASSERT_EQ(
true, pTHM1176->GetDivisor(l_AllUnits[1], l_Divisor1));
437 for (
auto l_pBx = l_Bx.begin(), l_pBx1 = l_Bx1.begin();
438 l_pBx < l_Bx.end() && l_pBx1 < l_Bx1.end();
440 EXPECT_FLOAT_EQ(*l_pBx * l_Divisor, *l_pBx1 * l_Divisor1);
441 for (
auto l_pBy = l_By.begin(), l_pBy1 = l_By1.begin();
442 l_pBy < l_By.end() && l_pBy1 < l_By1.end();
444 EXPECT_FLOAT_EQ(*l_pBy * l_Divisor, *l_pBy1 * l_Divisor1);
445 for (
auto l_pBz = l_Bz.begin(), l_pBz1 = l_Bz1.begin();
446 l_pBz < l_Bz.end() && l_pBz1 < l_Bz1.end();
448 EXPECT_FLOAT_EQ(*l_pBz * l_Divisor, *l_pBz1 * l_Divisor1);
454 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
456 ASSERT_EQ(
true, pTHM1176->ParmUseCalibrationSet(
false));
458 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
463 for (
auto l_pBx = l_Bx.begin(); l_pBx < l_Bx.end(); l_pBx++)
464 EXPECT_FLOAT_EQ(*l_pBx, std::round(*l_pBx));
465 for (
auto l_pBy = l_By.begin(); l_pBy < l_By.end(); l_pBy++)
466 EXPECT_FLOAT_EQ(*l_pBy, std::round(*l_pBy));
467 for (
auto l_pBz = l_Bz.begin(); l_pBz < l_Bz.end(); l_pBz++)
468 EXPECT_FLOAT_EQ(*l_pBz, std::round(*l_pBz));
471 ASSERT_EQ(
true, pTHM1176->ParmUseCalibrationSet(
false));
473 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS, l_Bx1, l_By1, l_Bz1, l_Units, l_Temperature, l_TimestampList));
478 for (
auto l_pBx = l_Bx.begin(), l_pBx1 = l_Bx1.begin();
479 l_pBx < l_Bx.end() && l_pBx1 < l_Bx1.end();
481 EXPECT_FLOAT_EQ(*l_pBx, *l_pBx1);
482 for (
auto l_pBy = l_By.begin(), l_pBy1 = l_By1.begin();
483 l_pBy < l_By.end() && l_pBy1 < l_By1.end();
485 EXPECT_FLOAT_EQ(*l_pBy, *l_pBy1);
486 for (
auto l_pBz = l_Bz.begin(), l_pBz1 = l_Bz1.begin();
487 l_pBz < l_Bz.end() && l_pBz1 < l_Bz1.end();
489 EXPECT_FLOAT_EQ(*l_pBz, *l_pBz1);
491 ASSERT_EQ(
true, pTHM1176->ParmUseCalibrationSet(
true));
497 ASSERT_EQ(
true, pTHM1176->ParmTriggerInputGet(l_TrigBounds));
502 ASSERT_EQ(
true, pTHM1176->ParmTriggerInputSet(l_Trig));
505 ASSERT_EQ(
true, pTHM1176->Initiate(
true));
509 std::this_thread::sleep_for(std::chrono::seconds(1));
512 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
514 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Trig.
Count, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
515 EXPECT_EQ(l_Trig.
Count, l_Bx.size());
516 EXPECT_EQ(l_Trig.
Count, l_By.size());
517 EXPECT_EQ(l_Trig.
Count, l_Bz.size());
518 EXPECT_LT(0, l_Temperature);
521 ASSERT_EQ(l_Trig.
Count, l_TimestampList.size());
522 for (
int i = 0; i < l_Trig.
Count - 1; i++)
524 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
525 EXPECT_EQ(l_TimestampInterval, l_Trig.
Period_s * 1E9);
529 std::this_thread::sleep_for(std::chrono::seconds(1));
532 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Trig.
Count, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList, &l_MeasurementConditions));
533 EXPECT_EQ(l_Trig.
Count, l_Bx.size());
534 EXPECT_EQ(l_Trig.
Count, l_By.size());
535 EXPECT_EQ(l_Trig.
Count, l_Bz.size());
536 EXPECT_LT(0, l_Temperature);
539 ASSERT_EQ(l_Trig.
Count, l_TimestampList.size());
540 for (
int i = 0; i < l_Trig.
Count - 1; i++)
542 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
543 EXPECT_EQ(l_TimestampInterval, l_Trig.
Period_s * 1E9);
552 EXPECT_LT(0, l_MeasurementConditions.
Range);
557 EXPECT_DOUBLE_EQ(l_Period, l_Trig.
Period_s * 1E9);
560 l_ErrorList = pTHM1176->CurrentErrorList();
561 EXPECT_EQ(1, l_ErrorList.size());
562 EXPECT_EQ(204, l_ErrorList[0].Code);
574 ASSERT_EQ(
true, pTHM1176->ParmTriggerInputSet(l_Trig));
577 ASSERT_EQ(
true, pTHM1176->Initiate(
false));
580 std::vector<std::chrono::time_point<std::chrono::high_resolution_clock>> l_TriggerTimes;
583 ASSERT_EQ(
true, pTHM1176->SendBusTrigger());
586 l_TriggerTimes.push_back (std::chrono::high_resolution_clock::now());
589 std::time_t l_Now = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
590 char l_DateTimeString[32];
591 std::strftime(l_DateTimeString, 31,
"%FT%T", std::localtime(&l_Now));
592 std::cout <<
"Send trigger " << i << std::string(l_DateTimeString) << std::endl;
599 pTHM1176->ClearErrorList();
601 std::this_thread::sleep_for(std::chrono::seconds(1));
605 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
607 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(
THM1176_NO_MEASUREMENTS, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
611 EXPECT_LT(0, l_Temperature);
617 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
618 F64 l_ExpectedTimestampInterval = std::chrono::duration_cast<std::chrono::nanoseconds>(l_TriggerTimes[i+1] - l_TriggerTimes[i]).count();
619 EXPECT_NEAR(
static_cast<F64>(l_TimestampInterval), l_ExpectedTimestampInterval, 1E7);
626 ASSERT_EQ(
true, pTHM1176->ConvertTimestamp(l_TimestampList[i], l_AbsolutTimestamp));
627 std::cout <<
"Timestamp: " << l_AbsolutTimestamp << std::endl;
631 l_ErrorList = pTHM1176->CurrentErrorList();
632 EXPECT_EQ(0, l_ErrorList.size());
643 U64 l_TimestampInterval;
651 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
653 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
655 l_ErrorList = pTHM1176->CurrentErrorList();
656 EXPECT_EQ(3, l_ErrorList.size());
657 EXPECT_EQ(-222, l_ErrorList[0].Code);
658 EXPECT_EQ(-222, l_ErrorList[1].Code);
659 EXPECT_EQ(-222, l_ErrorList[2].Code);
661 EXPECT_EQ(0, l_Bx.size());
662 EXPECT_EQ(0, l_By.size());
663 EXPECT_EQ(0, l_Bz.size());
664 EXPECT_EQ(0, l_Temperature);
665 ASSERT_EQ(0, l_TimestampList.size());
668 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
670 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
672 l_ErrorList = pTHM1176->CurrentErrorList();
673 EXPECT_EQ(3, l_ErrorList.size());
674 EXPECT_EQ(-222, l_ErrorList[0].Code);
675 EXPECT_EQ(-222, l_ErrorList[1].Code);
676 EXPECT_EQ(-222, l_ErrorList[2].Code);
678 EXPECT_EQ(0, l_Bx.size());
679 EXPECT_EQ(0, l_By.size());
680 EXPECT_EQ(0, l_Bz.size());
681 EXPECT_EQ(0, l_Temperature);
682 ASSERT_EQ(0, l_TimestampList.size());
685 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
687 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
689 l_ErrorList = pTHM1176->CurrentErrorList();
690 EXPECT_EQ(3, l_ErrorList.size());
691 EXPECT_EQ(-222, l_ErrorList[0].Code);
692 EXPECT_EQ(-222, l_ErrorList[1].Code);
693 EXPECT_EQ(-222, l_ErrorList[2].Code);
695 EXPECT_EQ(0, l_Bx.size());
696 EXPECT_EQ(0, l_By.size());
697 EXPECT_EQ(0, l_Bz.size());
698 EXPECT_EQ(0, l_Temperature);
699 ASSERT_EQ(0, l_TimestampList.size());
702 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
704 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
706 l_ErrorList = pTHM1176->CurrentErrorList();
707 EXPECT_EQ(3, l_ErrorList.size());
708 EXPECT_EQ(-222, l_ErrorList[0].Code);
709 EXPECT_EQ(-222, l_ErrorList[1].Code);
710 EXPECT_EQ(-222, l_ErrorList[2].Code);
712 EXPECT_EQ(0, l_Bx.size());
713 EXPECT_EQ(0, l_By.size());
714 EXPECT_EQ(0, l_Bz.size());
715 EXPECT_EQ(0, l_Temperature);
716 ASSERT_EQ(0, l_TimestampList.size());
724 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
726 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
728 EXPECT_EQ(0, l_By.size());
730 EXPECT_EQ(0, l_Temperature);
734 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
737 l_ErrorList = pTHM1176->CurrentErrorList();
738 ASSERT_EQ(1, l_ErrorList.size());
740 pTHM1176->ClearErrorList();
743 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
745 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
747 EXPECT_EQ(0, l_By.size());
749 EXPECT_EQ(0, l_Temperature);
753 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
756 l_ErrorList = pTHM1176->CurrentErrorList();
757 ASSERT_EQ(1, l_ErrorList.size());
759 pTHM1176->ClearErrorList();
762 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
764 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
766 EXPECT_EQ(0, l_By.size());
768 EXPECT_EQ(0, l_Temperature);
772 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
775 l_ErrorList = pTHM1176->CurrentErrorList();
776 ASSERT_EQ(1, l_ErrorList.size());
778 pTHM1176->ClearErrorList();
781 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
783 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
785 EXPECT_EQ(0, l_By.size());
787 EXPECT_EQ(0, l_Temperature);
791 l_TimestampInterval = l_TimestampList[i+1] - l_TimestampList[i];
794 l_ErrorList = pTHM1176->CurrentErrorList();
795 ASSERT_EQ(1, l_ErrorList.size());
797 pTHM1176->ClearErrorList();
805 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
807 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
808 EXPECT_EQ(0, l_Bx.size());
810 EXPECT_EQ(0, l_Bz.size());
811 EXPECT_LT(0, l_Temperature);
812 ASSERT_EQ(0, l_TimestampList.size());
813 l_ErrorList = pTHM1176->CurrentErrorList();
814 ASSERT_EQ(1, l_ErrorList.size());
816 pTHM1176->ClearErrorList();
819 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
821 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
822 EXPECT_EQ(0, l_Bx.size());
824 EXPECT_EQ(0, l_Bz.size());
825 EXPECT_LT(0, l_Temperature);
826 ASSERT_EQ(0, l_TimestampList.size());
827 l_ErrorList = pTHM1176->CurrentErrorList();
828 ASSERT_EQ(1, l_ErrorList.size());
830 pTHM1176->ClearErrorList();
833 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
835 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
836 EXPECT_EQ(0, l_Bx.size());
838 EXPECT_EQ(0, l_Bz.size());
839 EXPECT_LT(0, l_Temperature);
840 ASSERT_EQ(0, l_TimestampList.size());
841 l_ErrorList = pTHM1176->CurrentErrorList();
842 ASSERT_EQ(1, l_ErrorList.size());
844 pTHM1176->ClearErrorList();
847 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
849 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
850 EXPECT_EQ(0, l_Bx.size());
852 EXPECT_EQ(0, l_Bz.size());
853 EXPECT_LT(0, l_Temperature);
854 ASSERT_EQ(0, l_TimestampList.size());
855 l_ErrorList = pTHM1176->CurrentErrorList();
856 ASSERT_EQ(1, l_ErrorList.size());
858 pTHM1176->ClearErrorList();
865 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
867 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
869 l_ErrorList = pTHM1176->CurrentErrorList();
870 EXPECT_EQ(3, l_ErrorList.size());
871 EXPECT_EQ(-222, l_ErrorList[0].Code);
872 EXPECT_EQ(-222, l_ErrorList[1].Code);
873 EXPECT_EQ(-222, l_ErrorList[2].Code);
875 EXPECT_EQ(0, l_Bx.size());
876 EXPECT_EQ(0, l_By.size());
877 EXPECT_EQ(0, l_Bz.size());
878 EXPECT_EQ(0, l_Temperature);
879 ASSERT_EQ(0, l_TimestampList.size());
882 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
884 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
886 l_ErrorList = pTHM1176->CurrentErrorList();
887 EXPECT_EQ(3, l_ErrorList.size());
888 EXPECT_EQ(-222, l_ErrorList[0].Code);
889 EXPECT_EQ(-222, l_ErrorList[1].Code);
890 EXPECT_EQ(-222, l_ErrorList[2].Code);
892 EXPECT_EQ(0, l_Bx.size());
893 EXPECT_EQ(0, l_By.size());
894 EXPECT_EQ(0, l_Bz.size());
895 EXPECT_EQ(0, l_Temperature);
896 ASSERT_EQ(0, l_TimestampList.size());
899 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
901 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
903 l_ErrorList = pTHM1176->CurrentErrorList();
904 EXPECT_EQ(3, l_ErrorList.size());
905 EXPECT_EQ(-222, l_ErrorList[0].Code);
906 EXPECT_EQ(-222, l_ErrorList[1].Code);
907 EXPECT_EQ(-222, l_ErrorList[2].Code);
909 EXPECT_EQ(0, l_Bx.size());
910 EXPECT_EQ(0, l_By.size());
911 EXPECT_EQ(0, l_Bz.size());
912 EXPECT_EQ(0, l_Temperature);
913 ASSERT_EQ(0, l_TimestampList.size());
916 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
918 ASSERT_EQ(
false, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
920 l_ErrorList = pTHM1176->CurrentErrorList();
921 EXPECT_EQ(3, l_ErrorList.size());
922 EXPECT_EQ(-222, l_ErrorList[0].Code);
923 EXPECT_EQ(-222, l_ErrorList[1].Code);
924 EXPECT_EQ(-222, l_ErrorList[2].Code);
926 EXPECT_EQ(0, l_Bx.size());
927 EXPECT_EQ(0, l_By.size());
928 EXPECT_EQ(0, l_Bz.size());
929 EXPECT_EQ(0, l_Temperature);
930 ASSERT_EQ(0, l_TimestampList.size());
937 l_Bx.clear(); l_By.clear(); l_Bz.clear(); l_Temperature = 0; l_TimestampList.clear();
941 ASSERT_EQ(
true, pTHM1176->GetAllUnits(l_AllUnits));
942 ASSERT_LT(1, l_AllUnits.size());
944 ASSERT_EQ(
true, pTHM1176->ParmUnitsSet(l_AllUnits[0]));
945 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
950 ASSERT_EQ(
true, pTHM1176->ParmUnitsSet(l_AllUnits[1]));
951 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Select, l_Bx1, l_By1, l_Bz1, l_Units, l_Temperature, l_TimestampList));
956 U32 l_Divisor, l_Divisor1;
957 ASSERT_EQ(
true, pTHM1176->GetDivisor(l_AllUnits[0], l_Divisor));
958 ASSERT_EQ(
true, pTHM1176->GetDivisor(l_AllUnits[1], l_Divisor1));
960 for (
auto l_pBx = l_Bx.begin(), l_pBx1 = l_Bx1.begin();
961 l_pBx < l_Bx.end() && l_pBx1 < l_Bx1.end();
963 EXPECT_FLOAT_EQ(*l_pBx * l_Divisor, *l_pBx1 * l_Divisor1);
964 for (
auto l_pBy = l_By.begin(), l_pBy1 = l_By1.begin();
965 l_pBy < l_By.end() && l_pBy1 < l_By1.end();
967 EXPECT_FLOAT_EQ(*l_pBy * l_Divisor, *l_pBy1 * l_Divisor1);
968 for (
auto l_pBz = l_Bz.begin(), l_pBz1 = l_Bz1.begin();
969 l_pBz < l_Bz.end() && l_pBz1 < l_Bz1.end();
971 EXPECT_FLOAT_EQ(*l_pBz * l_Divisor, *l_pBz1 * l_Divisor1);
982 U16 l_Temperature = 0;
990 l_Select = {
true,
false,
false,
false,
false, 1 };
991 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Select, l_BxRaw, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
992 EXPECT_EQ(1, l_BxRaw.size());
993 EXPECT_EQ(0, l_By.size());
994 EXPECT_EQ(0, l_Bz.size());
995 EXPECT_EQ(0, l_Temperature);
996 ASSERT_EQ(0, l_TimestampList.size());
997 l_ErrorList = pTHM1176->CurrentErrorList();
998 ASSERT_EQ(1, l_ErrorList.size());
1000 pTHM1176->ClearErrorList();
1002 l_Select = {
false,
true,
false,
false,
false, 1 };
1003 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_ByRaw, l_Bz, l_Units, l_Temperature, l_TimestampList));
1004 EXPECT_EQ(0, l_Bx.size());
1005 EXPECT_EQ(1, l_ByRaw.size());
1006 EXPECT_EQ(0, l_Bz.size());
1007 EXPECT_EQ(0, l_Temperature);
1008 ASSERT_EQ(0, l_TimestampList.size());
1009 l_ErrorList = pTHM1176->CurrentErrorList();
1010 ASSERT_EQ(1, l_ErrorList.size());
1012 pTHM1176->ClearErrorList();
1014 l_Select = {
false,
false,
true,
false,
false, 1 };
1015 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(l_Select, l_Bx, l_By, l_BzRaw, l_Units, l_Temperature, l_TimestampList));
1016 EXPECT_EQ(0, l_Bx.size());
1017 EXPECT_EQ(0, l_By.size());
1018 EXPECT_EQ(1, l_BzRaw.size());
1019 EXPECT_EQ(0, l_Temperature);
1020 ASSERT_EQ(0, l_TimestampList.size());
1021 l_ErrorList = pTHM1176->CurrentErrorList();
1022 ASSERT_EQ(1, l_ErrorList.size());
1024 pTHM1176->ClearErrorList();
1028 ASSERT_EQ(
true, pTHM1176->GetRotationMatrix(l_Matrix));
1030 l_B << l_BxRaw[0], l_ByRaw[0], l_BzRaw[0];
1031 l_B = l_Matrix * l_B;
1034 l_Select = {
true,
true,
true,
false,
false, 1 };
1035 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(1, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
1036 EXPECT_EQ(1, l_Bx.size());
1037 EXPECT_EQ(1, l_By.size());
1038 EXPECT_EQ(1, l_Bz.size());
1039 EXPECT_LT(0, l_Temperature);
1040 ASSERT_EQ(1, l_TimestampList.size());
1041 l_ErrorList = pTHM1176->CurrentErrorList();
1042 ASSERT_EQ(0, l_ErrorList.size());
1045 EXPECT_FLOAT_EQ(l_B(0), l_Bx[0]);
1046 EXPECT_FLOAT_EQ(l_B(1), l_By[0]);
1047 EXPECT_FLOAT_EQ(l_B(2), l_Bz[0]);
1050 ASSERT_EQ(
true, pTHM1176->ParmUseCalibrationSet(
false));
1053 U16 l_Status = pTHM1176->Initiate();
1056 l_Select = {
true,
true,
true,
false,
false, 1 };
1057 ASSERT_EQ(
true, pTHM1176->MeasurementsGet(1, l_Bx, l_By, l_Bz, l_Units, l_Temperature, l_TimestampList));
1058 EXPECT_EQ(1, l_Bx.size());
1059 EXPECT_EQ(1, l_By.size());
1060 EXPECT_EQ(1, l_Bz.size());
1061 EXPECT_LT(0, l_Temperature);
1062 ASSERT_EQ(1, l_TimestampList.size());
1063 l_ErrorList = pTHM1176->CurrentErrorList();
1064 ASSERT_EQ(1, l_ErrorList.size());
1066 pTHM1176->ClearErrorList();