summaryrefslogtreecommitdiff
path: root/navit/track.c
diff options
context:
space:
mode:
authorakashihi <akashihi@ffa7fe5e-494d-0410-b361-a75ebd5db220>2010-06-29 08:16:05 +0000
committerakashihi <akashihi@ffa7fe5e-494d-0410-b361-a75ebd5db220>2010-06-29 08:16:05 +0000
commit59eb0e5ee19fba699301e3b0fe218e723e05e180 (patch)
tree5f402e2e47aeb2b8e86c66ac308dadad663ff32a /navit/track.c
parenta8690113b05faeea5ee304f336acb5fbe3e794bb (diff)
downloadnavit-59eb0e5ee19fba699301e3b0fe218e723e05e180.tar.gz
Add:code:Added configurable static_speed/static_distance attributes to
the vehicleprofiles. They're used for static position detection. For ticket #17 git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@3445 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/track.c')
-rw-r--r--navit/track.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/navit/track.c b/navit/track.c
index 32d26ed7a..97319db4b 100644
--- a/navit/track.c
+++ b/navit/track.c
@@ -613,7 +613,7 @@ tracking_update(struct tracking *tr, struct vehicle *v, struct vehicleprofile *v
int i,value,min,time;
struct coord lpnt;
struct coord cin;
- struct attr valid,speed_attr,direction_attr,coord_geo,lag,time_attr;
+ struct attr valid,speed_attr,direction_attr,coord_geo,lag,time_attr,static_speed,static_distance;
double speed, direction;
if (v)
tr->vehicle=v;
@@ -635,12 +635,18 @@ tracking_update(struct tracking *tr, struct vehicle *v, struct vehicleprofile *v
dbg(0,"failed to get position data\n");
return;
}
+ if (!vehicleprofile_get_attr(vehicleprofile,attr_static_speed,&static_speed,NULL) || !vehicleprofile_get_attr(vehicleprofile,attr_static_distance,&static_distance,NULL)) {
+ static_speed.u.num=3;
+ static_distance.u.num=10;
+ dbg(1,"Using defaults for static position detection\n");
+ }
+ dbg(0,"Static speed: %u, static distance: %u\n",static_speed.u.num, static_distance.u.num);
time=iso8601_to_secs(time_attr.u.str);
speed=*speed_attr.u.numd;
direction=*direction_attr.u.numd;
tr->valid=attr_position_valid_valid;
transform_from_geo(pro, coord_geo.u.coord_geo, &tr->curr_in);
- if ((speed < 3 && transform_distance(pro, &tr->last_in, &tr->curr_in) < 10 )) {
+ if ((speed < static_speed.u.num && transform_distance(pro, &tr->last_in, &tr->curr_in) < static_distance.u.num )) {
dbg(1,"static speed %f coord 0x%x,0x%x vs 0x%x,0x%x\n",speed,tr->last_in.x,tr->last_in.y, tr->curr_in.x, tr->curr_in.y);
tr->valid=attr_position_valid_static;
tr->speed=0;