README CHART 1.2x 980903 - work in progress CHART - Electronic Chart System (c) Heiko Purnhagen 1993-1998 e-mail: purnhage@tnt.uni-hannover.de WWW: http://www.fet.uni-hannover.de/~purnhage/ All usual disclaimers apply! You use CHART at your own risk! This program may be copied according to the GNU General Public Licence. See file COPYING for further details. TOC === Overview ======== CHART is a litte Electronic Chart System for PCs running DOS and is written in Turbo Pascal 6.0. It supports vector charts and bitmap charts and includes a vector chart and waypoint editor. GPS data in NMEA format and from GPSPAC (Rockwell NavCore V format) can be received via the serial port and displayed in real time. An additional tool (GRMN2CHA) permits to convert vector charts created with CHART to the "track" file format used by GARMIN's PC interface software. Thus you can upload your own vector charts to a GARMIN 45 (and probably most other handheld GPS navigators by GARMIN) ... g7to / garmin12 To be honest, it wasn't a bad feeling at all when I managed for the first time to see my own vector map on the GRAMIN 45 display ... I switched to head-up mode and watched us sailing between the islands on that tiny display. This was something nearly as impressive as the real world outside - the Norwegian archipelago ;-) link/url Acknowledgements ================ I really would like to thank Otto Lier for providing the the greatest "programming environment" I've ever been able to work in. Most parts of CHART were written on a Toshiba 387 notebook connected to GPS receivers like GPSPAC (Rockwell NavCore V) or GARMIN 45 whilst sailing in the waters of Horten and Tjome in the Oslofjord. Thus CHART was developed, tested and used in its natural environment ;-) FILES ===== readme this file copying executables chart86.exe CHART (no numeric coprocessor required) chart87.exe CHART (numeric coprocessor required) gpslog.exe GPSLOG - log GPS track to a file grmn2cha.exe GRMN2CHA - convert between CHART and GARMIN file formats att.bgi driver ATT400/M24 cga.bgi driver CGA egavga.bgi driver EGA/VGA data files for CHART theworld.cha initial chart demo.bmc demo bitmap chart demo.bmp bitmap for demo.bmc demo.cha demo chart demo.log demo logfile demo.mem demo memo file demo.trk demo.cha in GARMIN "track" format demo.wpt demo waypoint file source code chart.pas CHART main program chargps.pas gps i/o unit chargraf.pas graphics unit chartran.pas lat/lon transform unit grafbmp.pas bitmap i/o unit mousedrv.pas mouse unit serial.pas serial i/o unit gpslog.pas GPSLOG grmn2cha.pas GRMN2CHA serialt.pas test for serial.pas grafbmpt.pas test for grafbmp.pas CHART ===== CHART is available in two versions - with and without coprocessor support. If you have a 8087, 80287, 80387, 80486DX or 80586 in your PC then CHART87 is your choice. Otherwise you have to use CHART86. Compatibility: DOS, Win3.1, Win95, Linux (dosemu) ????Please note that the menu structure is rather sophisticated (you could also call it "odd"). There are 4 different menus (File, Display, Navigate, Edit) which can be selected via "Menu". The file formats used by CHART are plain ASCII and should be rather self-explaining. There are for different 4 different vector file types: .cha vector charts (line, poly, text, mark) .wpt waypoints (mark) .mem memo marks (mark) .log GPS log files (line) All the vector files have the same basic structure. Additionally there is the .bmc file format. These bitmap chart files contain the alignment data required for lat/lon conversions for the correspondig .bmp bitmap file. Since .bmp files will be display in B/W anyway, I'd suggest to use B/W bitmap files only. CHART uses the Mercator Projection and does not care about the chart datum. Since the chart datum is not stored in the vector and bitmap files handled by CHART, I strongly recommend to set your GPS receiver to WGS84. To create your own vector charts, you should have a real chart on your PC screen and "follow the coastline" in the edit menu. There are two ways to accomplish this: You can copy a chart on a transparency, fix this trancparency as close as possible (to avoid parallax) in front of your screen (an LCD has no geometry error!) and then align the lat/lon transformation using 3 fixpoints. The more convenient way is to have a scan of the chart available as B/W bitmap. Then you can align this bitmap (i.e. create a .bmc file) and simply load it as bitmap. CHART has some command line options. Type chart86 h to get a list of all available options. CHART Help (Quick Reference) ============================ ********************* CHART 1.2 Quick Reference ********************* / / / / / Help CentCursor CentGpsPos CentGpsHead SetMarkCsr SetMarkGps ShowMark MoveGps ReloadBmp LastView ShowAll ShowVector ShowText ShowOverlay ScaleLimit GpsStatus GpsMark GpsCircle ShowBitmap Reverse 2* Bmp@Gps VecOut VecIn BmpOut BmpIn Move MoveFast L-Btn Abort More ****** HELP Electronic Chart System - CHART 1.2x 980903 ****** HELP scroll: ,,,,, quit: SPECIAL FUNCTION KEYS abort / big cross at cursor position zoom out (vector chart) zoom in (vector chart) zoom out (bitmap chart) zoom in (bitmap chart) 2* recenter view at GPS headline, reload bitmap help recenter view at cursor position recenter view at GPS position recenter view at GPS headline set mark at cursor position set mark at GPS position show mark info at cursor position & send as nmea wpt move GPS mark to curcor position reload bitmap use last chart & bitmap view + show everything (chart,bitmap,gps) + vector chart on/off + chart text on/off + chart overlay on/off + chart scale limit on/off + gps status line on/off + gps mark on/off + gps mark circle on/off + bitmap on/off + reverse display MOUSE BUTTONS mouse key functions displayed in upper right corner: [ left button | right button ] MOUSE CURSOR KEYS move slow: ,,, move fast: + ,,, left button: right button: & other keys VECTOR CHART TYPE CHARACTERS text position: (e = centered) a b c d e f g h i line/poly type: a = solid line b = dotted line c = center line d = dashed line e = thick solid line f = solid & dashed line (ccw around "land") mouse key functions displayed in upper right corner: left button | right button keys: = left button & others = right button = zoom out = zoom in = move = last scale = set gps lat&lon = center gps move mouse cursor slow fast up ^E down ^X left ^S right ^D rel. text position type char: a b c d e f g h i line/poly type char: a = solid line b = dotted line (optional) c = center line d = dashed line e = thick solid line VECTOR CHART TYPE CHARACTERS text position: (e = centered) a b c d e f g h i line/poly type: a = solid line b = dotted line c = center line d = dashed line e = thick solid line f = solid & dashed line (ccw around "land") GPSLOG ====== This program logs the current GPS position in given time intervals to a file in CHART format. It can be used with NMEA and GPSPAC serial data streams. Optinal it is also possible to collect all waypoints currently transmitted on NMEA and save them to a file. GPSLOG has no command line options ... just start it and answer the questions ... GPSLOG was mainly written to be used on a HP-95LX palmtop. GRMN2CHA ======== This program converts files between the CHART format and the "track" and "waypoint" format used by GARMIN's PCX5 software. With PCX5 and probably as well with free software supporting GARMIN's proprietary interface format, you can upload and download "track" and "waypoint" data to your GARMIN GPS receiver. By converting a CHART vector map to a GARMIN "track" file and the uploading this file to e.g. a GARMIN 45, you have your own vector maps (with e.g. up to 600 points) avaliable in your handheld GPS navigator. GRMN2CHA has no command line options ... just start it and answer the questions ... G7TO support, link to G7TO ... G7TO URL ????? GMT === GMT (Generic Mapping Tools) is a very good set of UNIX mapping programs available on the Internet: http://www.soest.hawaii.edu/soest/gmt.html It includes a 50 MByte data base with the vectorised shoreline of the world in a resolution corresponding to an 1:250000 map. It uses WGS84 an and usualy has an error of only a few 100m (<500m). See GMT2CHART for a conversion utility to generated CHART .cha files from the GMT data base. ???? Thus, I'd like to write a conversion tool to make this vector data avaliable in the format used by CHART. This would be a great starting point for areas where you don't have any bitmap or vector charts available. link / url Changes history, known bugs, and things to do ... ================================================= CHART94 (??-jan-94, unreleased) -------------------- Inital version with vector charts and NavCore V support CHART95 (??-aug-95, unreleased) -------------------- added NMEA 1.5 support added GPSLOG CHART96 (??-aug-96, unreleased) -------------------- added NMEA 2.0 support added bitmap charts added GRMN2CHA CHART 1.0 (08-jun-97) ---------------------- first version released with GNU copyleft fixed some mouse cursor bugs etc. CHART 1.1 (11-aug-97, unreleased) ---------------------------------- improved menu structure added improved online help (aka F1) improved pop-up window handling (move to prev/next field) save/load setup & configuration fixed "loading old bmp" bug if new file not found fixed "CHART crash" bug if no further memory availabel added button to reload bitmap with current center/scale auto reload bitmap on home/pgup/pgdn added several function keys CHART 1.2 (xx-xxx-98) ---------------------- accelerated BMP handling (by factor 5 ;-) using getimage, putimage, blockread, blockwrite instead of getpixel/putpixel reduced memory requirements for bitmap buffer from 150k to 40k MEMO points not supported by GRMN2CHA improve handling of serial port (for NMEA) interrupt / continue log during other operations enable mouse in GPS mode improved config file handling send NMEA waypoints (e.g. for GARMIN) fix com port interrupt handling fill "land" areas for vector maps or just mark the "land"-side of the shoreline like .:.:.:.:. ??? add head-up mode, N/S/E/W-up mode ??? mouse zoom fkt key ??? pos1/end better center ??? unit: metric/nautical ??? projection: mercator/UTM ??? course/distance: great circle/loxodrome ??? delay / timeout / gps&mouse ??? description of chart format ??? some ideas ... (LaTeX) Known bugs ---------- distance/bearing calculation is only exact for small distances probably several others ... Things to do ... ---------------- Let's start with the most ambitious item on the TODO list: ????????Port CHART to C ... ... and add X11 support to make it available to the Linux world ;-) (yes - CHART already runs fine using DOSEMU!) Please not that "Windows"-support is NOT on this TODO list! I'd like to keep the requirements of CHART as low as possible since I guess you'd have less problems taking your old 386 notebook offshore than moving your $5000 PPro machine to a rather salty environment ... But here are the more realistic ones: make handling of overlay charts faster & less memory consuming add binary chart format add EBL/VRM, additional marker (besides GPS and mouse) add simulator mode (no exteral GPS required) add navigational functions (as available in most GPS receivers) routes (list of wayppoints) steering display MOB function display area covered by vector maps graphically "click" on map to load it move all menu/status stuff from top and bottom to one side -> chart area more square-shaped improved edit functions: -move object -split -join -change poly<->line -reverse point order (i.e. swap land and water ;-) Add formats DD:MM:SS and DD:MM.MM end of README