GPSを楽しむ!
![]() 2002年07月に購入した 初代 eTrex です。 |
第1章 『プログラム作成を思い立つ!』 webで公開しているフリーのソフトを使用していますが、どうも使いずらくて何とか自分で出来ないものかと、今回、プログラムの作成にチャレンジしてみようと思います。 まずは、言語の選択ですが、一番楽なC言語が良いんですが、画面作成が面倒なのでVBでいきたいと思います。 あと必要なのがGARMINの通信プロトコルですね、通信プロトコルはGARMINのホームページに行けば手に入るので、そこでGET! http://www.garmin.com/support/commProtocol.html |
![]() 2002年08月に購入した eTrex Legend 日本語版 |
第2章 『とにかく作ってみる!』 GARMINの通信プロトコルを見てみると、英語なのでさっぱり何が書いてるのか判らないのだぁ。 翻訳プログラムを使って訳してみたけど笑っちゃうほど変な訳なので解読しながら読むことに・・・。 解読した結果、製品情報の取得が簡単に出来そうなので試しながらプログラムを組んでみましょう。 |
| Option Explicit ' 共通変数 Public ERRMSG As String Public PRODUCT_ID As Integer Public SOFT_VERSION As Integer Public DESCRIPTION1 As String Public DESCRIPTION2 As String Public DESCRIPTION3 As String ' L000 - リンクプロトコル0(基本パケットID) Public Const Pid_Dle_Byte = 16 Public Const Pid_Etx_Byte = 3 Public Const Pid_Ack_Byte = 6 Public Const Pid_Nak_Byte = 21 Public Const Pid_Protocol_Array = 253 Public Const Pid_Product_Rqst = 254 Public Const Pid_Product_Data = 255 ' L001 - リンクプロトコル1(汎用) Public Const Pid_Command_Data = 10 Public Const Pid_Xfer_Cmplt = 12 Public Const Pid_Date_Time_Data = 14 Public Const Pid_Position_Data = 17 Public Const Pid_Prx_Wpt_Data = 19 Public Const Pid_Records = 27 Public Const Pid_Rte_Hdr = 29 Public Const Pid_Rte_Wpt_Data = 30 Public Const Pid_Almanac_Data = 31 Public Const Pid_Trk_Data = 34 Public Const Pid_Wpt_Data = 35 Public Const Pid_Pvt_Data = 51 Public Const Pid_Rte_Link_Data = 98 Public Const Pid_Trk_Hdr = 99 ' L002 - リンクプロトコル2(航空用) 'Public Const Pid_Almanac_Data = 4 'Public Const Pid_Command_Data = 11 'Public Const Pid_Xfer_Cmplt = 12 'Public Const Pid_Date_Time_Data = 20 'Public Const Pid_Position_Data = 24 'Public Const Pid_Records = 35 'Public Const Pid_Rte_Hdr = 37 'Public Const Pid_Rte_Wpt_Data = 39 'Public Const Pid_Wpt_Data = 43 ' A010 - デバイスコマンドプロトコル1 Public Const Cmnd_Abort_Transfer = 0 Public Const Cmnd_Transfer_Alm = 1 Public Const Cmnd_Transfer_Posn = 2 Public Const Cmnd_Transfer_Prx = 3 Public Const Cmnd_Transfer_Rte = 4 Public Const Cmnd_Transfer_Time = 5 Public Const Cmnd_Transfer_Trk = 6 Public Const Cmnd_Transfer_Wpt = 7 Public Const Cmnd_Turn_Off_Pwr = 8 Public Const Cmnd_Start_Pvt_Data = 49 Public Const Cmnd_Stop_Pvt_Data = 50 ' A011 - デバイスコマンドプロトコル2(航空用) 'Public Const Cmnd_Abort_Transfer = 0 'Public Const Cmnd_Transfer_Alm = 4 'Public Const Cmnd_Transfer_Rte = 8 'Public Const Cmnd_Transfer_Time = 20 'Public Const Cmnd_Transfer_Wpt = 21 'Public Const Cmnd_Turn_Off_Pwr = 26 |
左は、標準モジュールに記述した共通変数・リンクプロトコル・デバイスコマンドプロトコル用の規定値です。 この変数を使用してプログラミングしていきますが、この変数をすべて使用するかと言うと、そうではありません。 参考までに記載してみました。 忘れていましたが、OCXコントロールのMicrosoft Comm Controlをフォームに追加してください。 ここに記載したプログラムは、実際のロジックを切り出して、一部編集しているので、このまま使用しても動く確証はありません。 また、このロジックを使用してGPSおよびHOSTが故障しても当方は一切責任は負いませんので自己責任において参考までにご使用ください。 |
![]() 【製品情報を表示】 |