projects
/
jspeed
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added new theme. Made detail screen also themable.
[jspeed]
/
src
/
odometer.cpp
diff --git
a/src/odometer.cpp
b/src/odometer.cpp
index
161f0b2
..
41c6fe3
100644
(file)
--- a/
src/odometer.cpp
+++ b/
src/odometer.cpp
@@
-33,6
+33,7
@@
namespace
QString const MILE_UNIT = "mi";
QString const KM_SPEEDUNIT = "km/h";
QString const MILE_SPEEDUNIT = "mph";
QString const MILE_UNIT = "mi";
QString const KM_SPEEDUNIT = "km/h";
QString const MILE_SPEEDUNIT = "mph";
+ static const int FIX_TIMEOUT = 4000;
double const DEFAULT_SPEED_TRESHOLD = 8.0;
double const MIN_SPEED_TRESHOLD = 0.8;
double const SPEED_IGNORE_LEVEL = 0.01;
double const DEFAULT_SPEED_TRESHOLD = 8.0;
double const MIN_SPEED_TRESHOLD = 0.8;
double const SPEED_IGNORE_LEVEL = 0.01;
@@
-58,6
+59,10
@@
mainTimer_(0), emitUpdate_(true), location_(0), signalTimer_(0)
signalTimer_->setInterval(1000);
connect(signalTimer_, SIGNAL(timeout()), this, SIGNAL(timeUpdated()));
updateUnit();
signalTimer_->setInterval(1000);
connect(signalTimer_, SIGNAL(timeout()), this, SIGNAL(timeUpdated()));
updateUnit();
+ timeoutTimer_ = new QTimer(this);
+ timeoutTimer_->setSingleShot(true);
+ connect(timeoutTimer_, SIGNAL(timeout()), this, SLOT(fixTimeout()));
+
}
Odometer::~Odometer()
}
Odometer::~Odometer()
@@
-104,6
+109,7
@@
void Odometer::update(Location::Fix const& fix)
int elapsed = fixTimer_->elapsed();
fixTimer_->restart();
int elapsed = fixTimer_->elapsed();
fixTimer_->restart();
+ timeoutTimer_->start(FIX_TIMEOUT);
if(fix.kmSpeed > SPEED_IGNORE_LEVEL)
{
if(fix.kmSpeed > SPEED_IGNORE_LEVEL)
{
@@
-119,7
+125,7
@@
void Odometer::update(Location::Fix const& fix)
}
}
}
}
- if(fix.kmSpeed > treshold && elapsed > 200 && elapsed < 8000)
+ if(fix.kmSpeed > treshold && elapsed > 200 && elapsed < FIX_TIMEOUT)
{
double km = fix.kmSpeed * (static_cast<double>(elapsed) / (1000 * 3600));
trip_ += km;
{
double km = fix.kmSpeed * (static_cast<double>(elapsed) / (1000 * 3600));
trip_ += km;
@@
-140,16
+146,19
@@
void Odometer::update(Location::Fix const& fix)
}
else
{
}
else
{
- if(latestFix_.kmSpeed > SPEED_IGNORE_LEVEL)
- {
- latestFix_ = fix;
- latestFix_.speed = 0.0;
- latestFix_.kmSpeed = 0.0;
- emit dataUpdated();
- }
+ fixTimeout();
+ }
+}
- endTiming();
+void Odometer::fixTimeout()
+{
+ if(latestFix_.kmSpeed > SPEED_IGNORE_LEVEL)
+ {
+ latestFix_ = Location::Fix();
+ emit dataUpdated();
}
}
+
+ endTiming();
}
double Odometer::getTrip() const
}
double Odometer::getTrip() const