From 41752bab5736af78ff16b8ea1f40cbc59c6c69cf Mon Sep 17 00:00:00 2001 From: Csaba Halasz Date: Sun, 25 Oct 2009 15:11:20 +0100 Subject: [PATCH] Fix NaNs in TACAN::update --- src/Instrumentation/tacan.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Instrumentation/tacan.cxx b/src/Instrumentation/tacan.cxx index e00ac4f1a..b17c8bb34 100755 --- a/src/Instrumentation/tacan.cxx +++ b/src/Instrumentation/tacan.cxx @@ -127,6 +127,9 @@ TACAN::init () void TACAN::update (double delta_time_sec) { + // don't do anything when paused + if (delta_time_sec == 0) return; + if (!_serviceable_node->getBoolValue() || !_electrical_node->getBoolValue()) { _last_distance_nm = 0; _in_range_node->setBoolValue(false); @@ -237,7 +240,7 @@ TACAN::update (double delta_time_sec) } _distance_node->setDoubleValue( tmp_dist ); _speed_node->setDoubleValue(speed_kt); - _time_node->setDoubleValue(distance_nm/speed_kt*60.0); + _time_node->setDoubleValue(speed_kt > 0 ? (distance_nm/speed_kt*60.0) : 0); _bearing_node->setDoubleValue(bearing); _x_shift_node->setDoubleValue(x_shift); _y_shift_node->setDoubleValue(y_shift);