论坛风格切换切换到宽版
  • 4539阅读
  • 9回复

garmin的导航仪研究帖! [复制链接]

上一主题 下一主题
离线bg6qbv
 
发帖
5831
只看楼主 倒序阅读 0楼 发表于: 2012-04-05
目前掌握的情况,支持aprs的车载有garmin3xx和6xx系列等。主要是是支持garmin的协议航点输入,导航仪显示。

查到的数据是:
the pvt record data in the dumb c formats
                    ' 1   datalinkescape (one byte) &h10
                    ' 2   recordtype (one byte) &h33
                    ' 3   length (one byte) &h40 = 64 bytes of data to follow
  alt       as single     ' 4   altitude above wgs 84 ellipsoid   (meters)
  epe       as single     ' 8   estimated position error, 2 sigma (meters)
  eph       as single     ' 12 estimated position error, horizontal only (meters)
  epv       as single     ' 16 estimated position error, vertical   only (meters)
  pfx       as integer     ' 20 type of position fix
  tow       as double     ' 22 time of week since the beginning of the current week (seconds)
  lat       as double     ' 30 latitude (radians)
  lon       as double     ' 38 longitude (radians)
  ve       as single     ' 46 velocity east (meters/second)
  vn       as single     ' 50 velocity north (meters/second)
  vu       as single     ' 54 velocity up   (meters/second)
  msl       as single     ' 58 msl_hght height of wgs 84 ellipsoid above msl (meters)
  lsec     as integer     ' 62 leap_scnds difference between gps and utc (seconds)
  wdys     as long       ' 64 wn_days week days from december 31st, 1989
                    ' 68 checksum (one byte)
                    ' 69 datalinkescape (one byte) &h10
                    ' 70 endtransmission (one byte) &h03
end type                 ' total bytes


同时我也追踪到了garmin 的输出协议:(这是garmin310输出的数据)
10725401950e39540115068c0a1a6200150739090ea300150ef90e3c5a00151010ce0a1cd3001514b9080c3f0115166a0a19ae00051910100e353a01151e960b222c00151fb60e3a430105ff000000000000ff0000000000003d10031033406c314f43000040400000c040000034420300000000000075b540cdc4047bfe16e13f3b50551ea0eaff3f000000000000000000000000f1425141
用garmin的专用软件可以将这些数据还原成经纬度和时间等参数。

现在的问题是 我如何提取经纬度并且换算出来。看了几天的协议和手册还是没有明白!
这里有代码介绍:
http://www.powerbasic.com/support/pbforums/showthread.php?t=24565
离线bg6qbv
发帖
5831
只看该作者 1楼 发表于: 2012-04-05
还有个问题是garmin 2xx系列也支持车队管理功能,但是听说不能支持显示waypoint,不知道是否准确,如何能加入支持aprs。
离线自行
发帖
131
只看该作者 2楼 发表于: 2012-04-05
技术贴 顶起来
离线bg6qbv
发帖
5831
只看该作者 3楼 发表于: 2012-04-05
理论研究ok,pc模拟通过,准备考虑代码......
离线42821
发帖
1584
只看该作者 4楼 发表于: 2012-04-06
不晓得那些手持gps能用数据线连aprs。
离线BA1AK
发帖
1431
只看该作者 5楼 发表于: 2012-04-06
同求经纬度换算的算法。
离线i86net
发帖
368
只看该作者 6楼 发表于: 2012-04-06
1erb,你是要这个吗?


度分转换:
将度分单位数据转换为度单位数据
度=度+分/60
例如:
经度 = 116°20.12’
纬度 = 39°12.34’
经度 = 116 + 20.12 / 60 = 116.33533°
纬度 = 39 + 12.34 / 60 = 39.20567°

度分秒转换:
将度分秒单位数据转换为度单位数据
度 = 度 + 分 / 60 + 秒 / 60 / 60
例如:
经度 = 116°20’43”
纬度 = 39°12’37”
经度 = 116 + 20 / 60 + 43 / 60 / 60 = 116.34528°
纬度 = 39 + 12 / 60 + 37 / 60 / 60 = 39.21028°
离线i86net
发帖
368
只看该作者 7楼 发表于: 2012-04-06
'
不晓得那些手持gps能用数据线连aprs。
'
我知道的高明手持机400系列以后的都行,但是数据线要自己做
离线BG9AFX
发帖
22
只看该作者 8楼 发表于: 2012-04-07
离线bg6qbv
发帖
5831
只看该作者 9楼 发表于: 2012-04-07
目前的进展是:还没有搞定8字符串转换为double的问题!
单片机可以编译通过,但是估计当成了单精度处理了!