home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 February / Chip_2000-02_cd.bin / sharewar / gypsyp / gypsy.txt < prev   
Text File  |  1999-05-13  |  13KB  |  279 lines

  1. Gypsy Documentation
  2.  
  3. Introduction
  4.  
  5. I wrote Gypsy to help me in my travels.  I wanted an easier way of 
  6. manipulating waypoint databases than using the Garmin multi-purpose 
  7. button, and did╒t want to schlepp a Mac Powerbook into the wilds when I 
  8. went travelling.  Gypsy is also my first stab at a a Palm application, so it has 
  9. a few rough edges.
  10.  
  11. Obviously, to up-and download, you'll need a serial cable from your Palm 
  12. to the GPS. My GPS II+ is usually mounted in my Land Rover, with a 
  13. Garmin power cable. I have connected the Tx and Rx data conductors to a 
  14. DB9 connector on the daskboard, and use a Palm modem cable to connect 
  15. my Palm to the GPS while on the move. There are some pictures of this at 
  16. <http://users.iafrica.com/p/pn/pnash>.
  17.  
  18. The basic idea is that you can download waypoints from your Garmin GPS 
  19. into a number of different databases on the Palm.  These can then be 
  20. manipulated (names edited, databases merged, waypoint deleted) and can 
  21. be uploaded to the GPS when the time is right.  While you *can* edit 
  22. latitude and longitude on the Palm, I wouldn╒t recommend it, because I 
  23. haven╒t written anything to cope with the different co-ordinate systems.  
  24. You may just find yourself a long, long way from where you expect to be.
  25.  
  26. Gypsy can also download and buffer your routes and track log.  Ths allows 
  27. you to transfer this information between your GPS and PC without the 
  28. two having to be directly linked.  It can be useful if your GPS is 
  29. permanently mounted in a vehicle and you haven╒t got a laptop (or prefer 
  30. to carry the smaller Palm).
  31.  
  32. The program╒s name
  33.  
  34. This program was originally called ╥Gulliver╙ (after my cat, who is a great 
  35. explorer and likes playing with my GPS).  However, after submitting it to 
  36. Palm Central, I discovered that Landware have a product called 
  37. ╥Gulliver╙, so I have renamed this release to Gypsy.  This is the name of 
  38. Gulliver the cat╒s sister, and is almost a pun on GPS.  Karen Nakamura has 
  39. a fine GS program for Apple Macintoshes called GPSy, which is a better 
  40. pun.
  41.  
  42. There is no relationship between me and Karen, or between ╥Gypsy╙ and 
  43. ╥GPSy╙ (other than the fact that I own a legal copy of GPSy which I use 
  44. from time to time).  Let me apologise in advance for any confusion that 
  45. this may cause.  If Karen hears about ╥Gypsy╙, I hope that she will take this 
  46. as a compliment, as her program, is a fine piece of work, and does far, far 
  47. more than ╥Gypsy╙ was ever intended to.
  48.  
  49. Operation:  waypoints
  50.  
  51. When you first start Gypsy, it will create a new database called ╥GPS 
  52. Waypoint DB╙.  At this point, you will probably want to connect a hotsync 
  53. cable to your Garmin data cable, and use the Xfer->Fetch menu to 
  54. download the waypoints that you have stored in your GPS.  Please make 
  55. sure that your GPS is set to Garmin/Garmin communications protocol, or 
  56. this will not work.
  57.  
  58. After a few seconds, you should see a list of the waypoints on your Palm.  
  59. Each waypoint shows as four fields:  a checkbox that you can use to flag the 
  60. waypoint for selective transfer or delete; the waypoint number 
  61. (meaningful only to the Palm application); the waypoint name, which you 
  62. can edit in this list; and the description, which the GPS usually sets to the 
  63. date and time the waypoint was dropped.
  64.  
  65. The buttons are fairly self-explanatory.  ╥Edit╙ will let you edit the name, 
  66. description, latitude and longitude.  ╥New╙ will append a new waypoint to 
  67. the current database and allow you to edit it.  ╥Delete╙ will delete the 
  68. currently selected waypoint, and ╥Sort╙ will sort the list alphabetically by 
  69. name.
  70.  
  71. Operation:  waypoint edit
  72.  
  73. When editing a waypoint, the usual menu items (cut, paste, etc) work as 
  74. they should.  Two of the buttons (╥Ok╙ and ╥Cancel╙) take you back to the 
  75. waypoint list, eiter saving or discarding your changes.  ╥Here╙ queries the 
  76. GPS to find the current location, which it inserts into the latitude and 
  77. longitude fields.  ╥Delete╙ will delete the waypoint that you are editing and 
  78. take you back to the waypoint list.
  79.  
  80. Latitude and longitude are displayed as HH:MM:SS.S n/s/e/w.  They can 
  81. be input in any of the following formats: HH.HHHHH, HH:MM.MMM or 
  82. HH:MM:SS.SS.  With no hints, they are taken as being North and West.  
  83. They can be preceded by a ╘-╘ to indicate South and East, or can be followed 
  84. by N/S/W/E to spell this out in a more normal manner.  **There is no 
  85. correction for the various grid systems**.  This is all just raw values, and I 
  86. don╒t know enough about GPS technology to know how this will affect 
  87. accuracy if you read values off a map and shove them into the Palm.
  88.  
  89. A number without any ╘:╒ or ╘.╒ characters will be assumed to be in Garmin 
  90. native semicircles.  For those who don╒t know, 23**31 semicircles = 180 
  91. degrees.
  92.  
  93. For ease of input (╘cos I find a ╘:╒ tricky in grafitti), you can use a ╘,╒, ╘I╒, or ╘!╒ 
  94. instead of a ╘:╒ as a separator between degrees, minutes and seconds.  If 
  95. anyone wants any other separators, please let me know.
  96.  
  97. Operation:  databases
  98.  
  99. Gypsy can cope with multiple waypoint databases.  In the waypoint list 
  100. view, the ╥File╙ menu includes options to create a new database (╥New 
  101. DB╙), open an exiting database (╥Open DB╙), merge another database into 
  102. the current database (╥Merge DB╙), and manipulate databases (╥DB Utils╙).
  103.  
  104. These are all pretty self-explanatory.  If you end up deleting the currently 
  105. active database, you cannot go back to the waypoint list view without 
  106. selecting or creating a new database.  If you switch to another application 
  107. and back to Gypsy without an active database, it will open the first database 
  108. that it can find.  If there is no waypoint database, it will create one called 
  109. ╥GPS Waypoint DB╙ and activate that.
  110.  
  111. ╥DB Utils╙ will only let you manipulate as many databases as can fit on 
  112. one screen.  If you create more than 10 database, you╒ll only be able to use 
  113. the first 10 until you delete some.  Sorry, but I didn╒t think that it was 
  114. worth writing the code necessary to handle a scrolling directory list.
  115.  
  116. Operation:  Garmin IO
  117.  
  118. In the waypoint list view, you can use the ╥Xfer╙ menu to exchange 
  119. waypoints with a Garmin GPS.  I have only tested this with a Garmin II+, 
  120. so it may not work with other Garmin units.  When you fetch waypoints, 
  121. the GPS will send all the waypoints in its memory.  However, when you 
  122. send waypoints, you can send either all the waypoints, or those that have 
  123. been altered since downloading, or those that have been flagged.
  124.  
  125. I allow almost any user input in the edit phase, but mange it into the 
  126. Garmin character set.  I don╒t check for duplicate names, and the GPS will 
  127. happily overwrite existing waypoints.
  128.  
  129. I ave had reports of Gypsy 1.3 working with Garmin II, III, 12, 12XL and 45 
  130. units.  I cannot confirm or test this, as I don╒t have any of these (yet).  In 
  131. host mode, Gypsy will report itself as being a GPS II+ (pre 2.11).
  132.  
  133. Operation:  Host mode
  134.  
  135. Since version 1.3, I now support a rudimentary host mode.  This has only 
  136. been tested with MacGPS Pro (a fine program, running on fine hardware).  
  137. You can upload or download waypoints only.  A request for routes, tracks, 
  138. or anything else will transfer the contents of the relevant buffer.  You can 
  139. upload routes or a track log into the buffer while in host mode.  Be aware 
  140. that, unlike waypoints, this will remove the previous buffer entries.
  141.  
  142. Operation:  Track/route buffer
  143.  
  144. This is a new feature with version 1.4, and was inspired by GPS2P2PC.  It 
  145. allows you to transfer routes and track logs between your GPS and Palm 
  146. Pilot, or between your Palm Pilot and host.  This is quite crude, and a 
  147. transfer from GPS or host will wipe out all previous information.  There 
  148. are separate buffers for route and track information, so you can transfer 
  149. both at the same time.
  150.  
  151. You cannot access the buffer files other than from an external device.  A 
  152. tool like ╥Insider╙ will allow you to explore them, but they are simply the 
  153. raw packets as received from the sending device.
  154.  
  155. Reporting bugs
  156.  
  157. As I said above, this is my first stab at a Palm application, and is probably 
  158. riddled with bugs and with inconsistencies.  I am quite happy to try to fix 
  159. these if there is a demand and if you let me know what bothers you about 
  160. Gypsy.  Please let me know by email at <paul@frcs.alt.za>.  Please include 
  161. the version information in the ╥About╙ screen.  Without this, I may end 
  162. up having to bounce between multiple versions.
  163.  
  164. This software has only been tested with a Garmin II+.  It *should* work on 
  165. a II, III, 12, 12xl, III+, etc, but this is not guaranteed.  If it doesn╒t I am quite 
  166. happy to make it sense what sort of unit it is talking to and to talk in the 
  167. correct manner for that unit, *but* then I need one of them to play with 
  168. (hint, hint).
  169.  
  170. Further development:
  171.  
  172. There is still a lot on my TODO list, which I may or may not get around to, 
  173. depending on my own needs and whether anyone asks for any of them:
  174.  
  175. Some things that I want to implement and/or change:
  176.  
  177. 1)    Make the "Cancel" button work during merges and waypoint 
  178. transfers.
  179.  
  180. 2)    Make host mode understand several other Garmin commands.
  181.  
  182. 3)    Routes.  Don't quite know what to do about this yet, but it'd make 
  183. sense (even if just a load/store/xfer type of operation).
  184.  
  185. 4)    Copy/Paste Special to copy/paste the *entire* waypoint. Put all the 
  186. info in a formatted fashion into the clipboard, plus store it in a local 
  187. data structure for the paste.
  188.  
  189. 5)    A more robust Garmin comms protocol.  This will probably need to 
  190. be totally rewritten as a couple of state machines, implementing 
  191. progress screens from (1) and (2).  Cope with timeouts, garbled 
  192. packets, etc.
  193.  
  194. 6)    Query the GPS and allow for different types.  There is so much 
  195. Garmin-specific junk scattered around  (thingslike allowable 
  196. character sets, field sizes, etc) that it'd probably be impractical to deal 
  197. with other makes, but I should at least do some sanity checking about 
  198. what model I'm talking to.  Currently everything is specific to the 
  199. GPS II+ (but should work with the II, III, III+, 12, etc)
  200.  
  201. 7)    Tidy up the internal code.  As this was my first stab at writing 
  202. anything for the Palm platform, things are mostly done in a sub-
  203. optimal manner :-).
  204.  
  205. 8)    Provide some help functions.
  206.  
  207. 9)    Document everything:  how to use this program; how to talk to a 
  208. Garmin GPS; how to write crude Palm programs.
  209.  
  210. 10)    Add some labels to forms like the "edit"/"new" form
  211.  
  212. 11)    Try to make the Palm work from my Land Rover's electrical system, 
  213. so that I can leave it on and not chew up AAA batteries.
  214.  
  215. PLEASE SEND ANY CHANGES, BUG FIXES, REQUESTS OR BUGS TO 
  216. ME.  I WILL DO WHAT I CAN TO INCORPORATE THEM IN LATER 
  217. RELEASES (BUT NO PROMISES)
  218.  
  219. Send *everything* to "Paul Nash" <paul@frcs.alt.za>
  220.  
  221.  
  222. Source Code
  223.  
  224. If anyone want the source code, please email me at <paul@frcs.alt.za>.  
  225. Gypsy was written on a FreeBSD box, using the 0.5 release of the GNU 
  226. toolchain.  However, it shouldn╒t be too much work to convert it to work 
  227. with CodeWarrior.  Once again, I╒m happy to do the conversion if 
  228. someone will give me a copy of CodeWarrior for the Mac (yet another 
  229. hint).
  230.  
  231. I╒ve put the source on <http://users.iafrica.com/p/pn/pnash>.  However, I 
  232. still request that you let me know if you have taken a copy, and let me 
  233. know of any changes that you make, so that I can roll them in to newer 
  234. versions.
  235.  
  236. If you really like it
  237.  
  238. Gypsy is freeware, but if you *really* like it and find it useful, you can send 
  239. me postcards of some of the exotic places where you╒ve used it.  If you like 
  240. it even more than that, I╒m quite happy to receive other Garmin GPS 
  241. units, money, shares in publicly traded companies, more money, a new 
  242. Land Rover Td5, even more money ╔
  243.  
  244. My postal address (just in case someone *does* want to send me a card) is:
  245.  
  246.     PO Box 12845
  247.     Onderstepoort
  248.     0110
  249.     SOUTH AFRICA
  250.  
  251. Changes since version 1.3
  252.  
  253. 1) Source code now compiles under PalmOS 2 (thanks to 
  254. <andre@drfmc.ceng.cea.fr>).  This leaves out progress boxes.
  255.  
  256. 2) Fixed a display bug in progress reports (total modulo 256).
  257.  
  258. 3) Added buffer capability for routes and tracks (see above).
  259.  
  260. 4) Fixed a potentially nasty bug in the Garmin protocol that deleted 
  261. successive 0x10 (DLE) characters in the data stream.
  262.  
  263. Changes since version 1.0
  264.  
  265. Versions 1.1 and 1.2 were internal test versions.  Since version 1.0 (called 
  266. ╥Gulliver╙), I have done the following:
  267.  
  268. 5) Fixed a potentially nasty bug in the routine that converts D:M:S into 
  269. semicircles (thanks to the Palm Emulator╒s gremlins for finding 
  270. this)
  271.  
  272. 6) Added the first rudimentary host mode.
  273.  
  274. 7) Added the ╥send position╙ protocol support for the ╥here╙ button
  275.  
  276. 8) Tidied things up generally.
  277.  
  278.  
  279.