diff options
author | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2008-12-28 16:02:55 +0000 |
---|---|---|
committer | martin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2008-12-28 16:02:55 +0000 |
commit | 4cb555bb46c5c801812dacb973a10856b40da8a4 (patch) | |
tree | 6f43da61a2faa8cf2f77b9feeea3eaa104dab78a | |
parent | a5f05bfd674054ba03c4cafdde51303f36a83643 (diff) | |
download | navit-4cb555bb46c5c801812dacb973a10856b40da8a4.tar.gz |
Add:vehicle_file:Added attribute to get direction of a magnetic compass
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@1862 ffa7fe5e-494d-0410-b361-a75ebd5db220
-rw-r--r-- | navit/attr_def.h | 1 | ||||
-rw-r--r-- | navit/vehicle/file/vehicle_file.c | 18 |
2 files changed, 19 insertions, 0 deletions
diff --git a/navit/attr_def.h b/navit/attr_def.h index 7619ee0af..0bcf4f6c6 100644 --- a/navit/attr_def.h +++ b/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/vehicle/file/vehicle_file.c b/navit/vehicle/file/vehicle_file.c index 7ddc3e1e0..9c57af5b5 100644 --- a/navit/vehicle/file/vehicle_file.c +++ b/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; |