From 97285f4f00aa7c866149d524a6e3f309a024d600 Mon Sep 17 00:00:00 2001 From: martin-s Date: Sun, 28 Dec 2008 16:02:55 +0000 Subject: [PATCH] Add:vehicle_file:Added attribute to get direction of a magnetic compass git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@1862 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- navit/navit/attr_def.h | 1 + navit/navit/vehicle/file/vehicle_file.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/navit/navit/attr_def.h b/navit/navit/attr_def.h index 7619ee0..0bcf4f6 100644 --- a/navit/navit/attr_def.h +++ b/navit/navit/attr_def.h @@ -115,6 +115,7 @@ ATTR(district_id) /* fixme? */ ATTR(drag_bitmap) ATTR(use_mousewheel) ATTR(fullscreen) +ATTR(position_magnetic_direction) ATTR2(0x0002ffff,type_int_end) ATTR2(0x00030000,type_string_begin) ATTR(type) diff --git a/navit/navit/vehicle/file/vehicle_file.c b/navit/navit/vehicle/file/vehicle_file.c index 7ddc3e1..9c57af5 100644 --- a/navit/navit/vehicle/file/vehicle_file.c +++ b/navit/navit/vehicle/file/vehicle_file.c @@ -87,6 +87,7 @@ struct vehicle_priv { struct attr ** attrs; char fixiso8601[128]; int checksum_ignore; + int magnetic_direction; }; #ifdef _WIN32 @@ -411,6 +412,20 @@ vehicle_file_parse(struct vehicle_priv *priv, char *buffer) priv->fixyear = atoi(item[4]); } } + if (!strncmp(buffer, "$IISMD", 6)) { + /* + 0 1 2 3 4 + $IISMD,dir,press,height,temp*CC" + dir Direction (0-359) + press Pressure (hpa, i.e. 1032) + height Barometric height above ground (meter) + temp Temperature (Degree Celsius) + */ + if (item[1]) { + priv->magnetic_direction = g_ascii_strtod( item[1], NULL ); + dbg(0,"magnetic %d\n", priv->magnetic_direction); + } + } return ret; } @@ -520,6 +535,9 @@ vehicle_file_position_attr_get(struct vehicle_priv *priv, case attr_position_direction: attr->u.numd = &priv->direction; break; + case attr_position_magnetic_direction: + attr->u.num = priv->magnetic_direction; + break; case attr_position_hdop: attr->u.numd = &priv->hdop; break; -- 2.7.4