diff options
author | akashihi <akashihi@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2010-06-29 08:16:05 +0000 |
---|---|---|
committer | akashihi <akashihi@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2010-06-29 08:16:05 +0000 |
commit | 59eb0e5ee19fba699301e3b0fe218e723e05e180 (patch) | |
tree | 5f402e2e47aeb2b8e86c66ac308dadad663ff32a /navit/track.c | |
parent | a8690113b05faeea5ee304f336acb5fbe3e794bb (diff) | |
download | navit-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.c | 10 |
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; |