When an object enters or exits the laser, I am seeing 0-3 invalid ranges. For example (annotated afterward):
[many 3638 mm entries]
68 Hz, 0 status, 100 quality, 83 LSB amplitude, 3332 mm <- incorrect
61 Hz, 0 status, 100 quality, 698 LSB amplitude, 1819 mm <- incorrect
57 Hz, 0 status, 100 quality, 1092 LSB amplitude, 560 mm
61 Hz, 0 status, 100 quality, 1200 LSB amplitude, 582 mm
55 Hz, 0 status, 100 quality, 1129 LSB amplitude, 591 mm
56 Hz, 0 status, 100 quality, 921 LSB amplitude, 595 mm
51 Hz, 0 status, 100 quality, 699 LSB amplitude, 553 mm
64 Hz, 0 status, 100 quality, 1149 LSB amplitude, 590 mm
68 Hz, 0 status, 100 quality, 601 LSB amplitude, 593 mm
53 Hz, 0 status, 100 quality, 600 LSB amplitude, 594 mm
68 Hz, 0 status, 100 quality, 569 LSB amplitude, 588 mm
53 Hz, 0 status, 100 quality, 483 LSB amplitude, 591 mm
68 Hz, 0 status, 100 quality, 409 LSB amplitude, 590 mm
53 Hz, 0 status, 100 quality, 327 LSB amplitude, 601 mm
69 Hz, 0 status, 100 quality, 353 LSB amplitude, 579 mm
53 Hz, 0 status, 100 quality, 391 LSB amplitude, 593 mm
68 Hz, 0 status, 100 quality, 316 LSB amplitude, 978 mm <- incorrect
52 Hz, 0 status, 100 quality, 169 LSB amplitude, 1921 mm <- incorrect
72 Hz, 0 status, 100 quality, 98 LSB amplitude, 3375 mm <- incorrect
[many 3638 mm entries]
status = Argus_SetConfigurationDFMMode(device, DFM_MODE_OFF);
checkFail(status, "Argus_SetConfigurationDFMMode failed!", true);
argus_cfg_dca_t dca;
status = Argus_GetConfigurationDynamicAdaption(device, &dca);
checkFail(status, "Get DCA configuration failed!", true);
dca.SatPxThExp = 1; // [1;33]
dca.SatPxThLin = 1; // [1;33]
dca.SatPxThRst = 1; // [1;33]
status = Argus_SetConfigurationDynamicAdaption(device, &dca);
checkFail(status, "Set DCA configuration failed!", true);
If not, what approach should be used to discard them? Discarding the first ~4 readings is possible, but adds latency. That helps entering the beam, but not exiting. For exiting I could discard based on too large of a distance from previous readings, but it doesn't seem great.
I'd like to run at 30Hz rather than the 60Hz shown above. The behavior is roughly the same at 30Hz.
BTW, it'd be helpful if the doxygen API documentation listed default values.