From b2c4a9b94f3ee8c4332a93625cd8097efef7abfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Jos=C3=A9=20Pereira?= Date: Mon, 26 Aug 2019 14:15:12 -0300 Subject: [PATCH] ping360: Improve pulse duration equation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Duplicate pulse duration as requested to improve visualization Signed-off-by: Patrick José Pereira --- src/sensor/ping360.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sensor/ping360.h b/src/sensor/ping360.h index 8675969c8..60d101a9d 100644 --- a/src/sensor/ping360.h +++ b/src/sensor/ping360.h @@ -404,16 +404,16 @@ class Ping360 : public PingSensor if (_autoTransmitDuration) { /* * Per firmware engineer: - * 1. Starting point is TxPulse in usec = ((one-way range in metres) * 4000) / (Velocity of sound in metres per second) + * 1. Starting point is TxPulse in usec = ((one-way range in metres) * 8000) / (Velocity of sound in metres per second) * 2. Then check that TxPulse is wide enough for currently selected sample interval in usec, i.e., - * if TxPulse < (1.25 * sample interval) then TxPulse = (1.25 * sample interval) + * if TxPulse < (2.5 * sample interval) then TxPulse = (2.5 * sample interval) * 3. Perform limit checking */ // 1 - int autoDuration = round(4000*range()/_speed_of_sound); + int autoDuration = round(8000*range()/_speed_of_sound); // 2 (transmit duration is microseconds, samplePeriod() is nanoseconds) - autoDuration = std::max(static_cast(1.25*samplePeriod()/1000), autoDuration); + autoDuration = std::max(static_cast(2.5*samplePeriod()/1000), autoDuration); // 3 _transmit_duration = std::max(static_cast(_firmwareMinTransmitDuration), std::min(transmitDurationMax(), autoDuration));