Ais Decoder by Neal Arundale

Revision History

Comm Poll timer error (buffer overflow) changed to non fatal
Possible error 457 (Duplicate key in collection) [fixed]
Msg 8-367-33-10 updated
Possibility if input log file not rolling over [fixed]
Minor changes to make csv output compatible with V129 group sentences
If File input did not contain a NMEA encapsulated terminator (*), program could loop [fixed]
All numeric output file name caused error 5 ! [fixed]

New Minor version (4)
Auto-Version Updater on test
Programmatical termination could fail (eg in batch file) [fixed]
Vessels.dat could lose data [fixed]
New version checks written to start up log
Option to suppress sentence rejection if NMEA AIS fill bits incorrect added (ask me how)
Terminating AisDecoder could cause "Program Not Responding" error [fixed]
Nmea sentence prefix with invalid time stamp caused NMEA sentence not to be processed [fixed]
Non existent input file caused error [fixed]
Form unloading changed
Static Vessel Data now cached and output with all Tagged and CSV
Note: Cached Static Data will be lost if Tags are changed
Allow non integer for number of parts in encapsulated sentence (eq 2.0000)
Licence info blacked out Win7 + only [fixed]
Administrator Privilege no longer required to access Options (please email me if you require this restriction)
Non existent Serial Port in .ini file, incorrectly caused invalid format error (could cause program crash) [fixed]
Serial port input/settings changed to use NmeaRouter api's
Serial ports no's over 16 now supported
Autobaud rate detection added
Output File Rollover without output file caused error [fixed]
Text string @ suppression removed (except cached vessel name)
Incorrect no of fields in VD* sentence could cause error [fixed]
Unix Time added in description of received time, allowing filtering by time
Msg 25,26 ambiguities in M1371-5 coding changed
File input did not always pause
Allow non-null nmea single part sequential ID
Option to disable OwnShip (VDO) display
Replace any nulls in sentence pre-fix
GPS sentences not always tagged correctly

Live website moved from to
Update code re-written, to report new version when available
Font changed to fix formatting on recent windows installations
IFM 1-0 Text Telegram incorrect with Msg 25/26 [fixed]
Input filter by MMSI to added
GIS & LatLon filter re-written
MMSI definitions updated
Input filter definitions changed (nmea & dac/fi)
Input filter walk changed
TCP client timeout increased to 5 secs, before trying as server
Major performance increase now > 200k sentences per min on average PC
(dependant on complexity of output)
Support for all files larger than 2GB increased to approx to 400TerraBytes
TCP Client not always disconnecting [fixed]
Encryption of FTP password changed, will need re-entering if using an earlier version
Create Tag GUI could setup incorrect Tag [fixed]
Name of AtoN now shown as Vessel Name
7 new MID's added
User Tag name not saved from V128 [fixed]
High receive rates (> 30k sentences/min) causing errors [fixed]
Tags not synchronised when profile first loaded [fixed]
IEC Encapsulated sentences added
Large numbers of sequential CRC errors could cause crash [fixed]
Nmea log file size is limited to 2GB - WIP
Program terminates unexpectedly when Input Log File exceeded 4GB [fixed]
Overflow error, Maximum message statistics increased from 2Giga to 400Terra
Named Vessels statistic included some vessels for which name had not been received [fixed]
Provision to filter through non-NMEA sentences added
Input Filter Settings may not be saved if synchronise filter set with no tags [fixed]
Msg26 decoding changed to reflect specification change in ITU-R M.1371-5
$GPRMC decoded to assist time stamping
Deleting current .ini file could cause AisDecoder to abort [fixed]
Output all Ais message fields as CSV did not work [fixed]
Msg 8-367-33 minor field name changes
NMEA output available without using Scheduler
Range Filtering by Lat/Lon now uses vessels last known position for all AIS sentence types
Minor improvements to display windows
Cancelling selecting a file name could cause program to exit [fixed]
Enhanced identification of embedded Time Stamps
Nmea sentences $--TXT and $--ALR parsed out & error code descriptions reported
Nmea esc ^ handled
ExactEarth Comment block Group Parameter-Code parsing bug [fixed]
Bad MID could cause program to crash [fixed]
Shell on Output File Close function added to enable another program to process the output file
(Please backup any user created initialisation files created prior to V118)
Significant changes to Initialisation File formats (Input Filter and Field Tags)
Default and all sample initialisation files changed, to support fast MMSI input filter
Individual fields on any type of NMEA sentence may now be tagged.
Tags for AIS payload fields common to all AIS payloads (Msg Type, MMSI & repeat) in
    addition to received time no longer need specifying for individual AIS message types
Time Stamps now also displayed and also taggable in unix time format
Support for $PGHP sentence encapsulation
Bug in multi-part sentence payload re-combiner when part1 missing, fixed
Changed links and email contact to new web server
Major re-write of non-AIS NMEA sentence and Comment Block handling
    Tags on NMEA sentence fields and Comment Block parameters now allowed
    Duplicated Field Tags purged
    Synchronisation of Input Filter to Output Tags now handles NMEA sentence tags
    More support for unix style Time Stamps
    Sentences prefixed with Time Stamps can be tagged.
Multiple sentence delimiters on File Input could cause duplicated output [fixed]
Output File could be overwritten with "No Data" on file closure [fixed]
Enumeration of serial ports now same as NmeaRouter
Output of bit map in ASM 6/8-1-22 for debugging (temporary)
Test DAC 0 May be mapped to a User specified DAC (email me for how to do this)
Enumeration of Serial Ports could fail with More data available [fixed]   
If no filtered data since last scheduled output, output file will contain "No Data"
If Time To Live is 0, all filtered data received since last scheduled will be output
If no data received since last scheduled, scheduler will still run
Auto-detection of TCP Client/Server improved
Asynchronous user message display implemented
Detect NMEA sentence delimiter error
Split TCP sentences re-assembled
If TCP Client fails, TCP server is attempted
!**VDO sets MyShip position and range
Input filter by range from MyShip
Passive FTP now the default client
ASM 1-31 minor decoding errors [fixed]
Allow Dot in FTP directory name
FTP could time out if server login was very slow [fixed]
Zip using GE Overlay could fail [fixed]
Range Filter not always applied with NMEA Output [fixed]
Suppress Template Output if no tags replaced       
If CSV field contains delimiter and double-quote ("), escapes double-quote with double-quote ("") RFC4180
ASM 367/33 added (13Aug2012 replaces ASM 366/33)
Precision field added to ASM 366/33 (V1.5 12Apr11-1May13)
ASM 366 defaults corrected
Enumeration of COM ports on start up could cause error [fixed]   
Incorrectly formatted initialisation file could cause error on start up [fixed]
Attempts auto-detection of Serial Baud rate
Slow serial data could be lost during reset [fixed]
Serial Input buffer terminator identifier must be <CR><LF>
Type error possible with invalid Nmea format of !AI sentence [fixed]
If only one serial port - option not enabled, problem introduced in V103 [fixed]
Overflow error at very high message rates > 60,000/min [fixed]
Enumeration of PC Serial ports changed
Characters prior to $ or ! are not removed if NMEA is Output
!AIVDO added as filter option
Special Tag nmea_lat and nmea_lon created to reformat lat/lon in GPS format
CSV header prefixed with ~ to enable Excel to distinguish between header and data
Spoofing of $GPHDT & $GPRMC tags from !AIVDM
Undecoded Binary Hex output base incorrect [Fixed]
$GPGGA with null time field caused Error 13 [Fixed]
Optionally Allow User without Administrator rights to Edit Options
Property error on start-up [fixed]
Changing installation folder could cause file not found error [fixed]
If PC had no serial ports connected, decoder failed to load [fixed]
DBCS (Japanese) in date format could cause decoder to stop [fixed]
Timing issue could cause partial sentence loss on serial input [fixed] 
IEC 61162 Comment Block parsed and parameter values output
IEC Comment Block Stripped out
Msg type 25 could cause decoder to stop [fixed]
DAC 1, FI 31 Meteorolgical and Hydrographic Data decoded
Time at midnight output to log file was blank [fixed]
Binary Message 8 with no data could cause AisDecoder to stop [fixed]
GoogleEarth scaled closeup of vessels
Occasional overflow error on file rollover [fixed]
Now accepts all talker ID's defined in IEC 62320-1 as valid AIS sentences
Changes to scheduling to allow local processing while upload in progress
Changes to try to ensure web server does not serve a partial file, if big.
TCP input option added
Default CSV separator is changed to | if decimal separator is comma (European)
Complete rewrite of FTP upload module
New FTP Window added to make user debugging of website upload problems easier
KMZ Zip DLL not extracted by installer in some Windows versions
FTP status added at bottom of Control/Stats window
Local Time Zone description truncated if very long [fixed]
FTP upload could fail if password contained multi-lingual characters [fixed]
FTP upload could fail if output file name contained spaces [fixed]
Minor change to Google Earth Template
Help last updated at V83
Time now logged as UTC
Optional display of file locations & names
Major rewrite of file handling
Output files may be rolled over to a new name daily (if not scheduled)
Now decodes !BSVDM and !BSVDO messages
Option to output a CSV header added
Temperature decode error fixed
!AIVDO messages not always being accepted by input filter fixed
Various Google Earth issues fixed
Bug fixes to v76-8 Cached Vessel Names
Saves vessel names between sessions.
Checks an startup and every hour to see if a new update is available (if enabled).
Another fix to settings not being saved.
Minor changes to stats display.
Another internationalisation issue causing some settings not to be saved fixed.
Minor performance enhancements.
Startup log file now created.
Internationalisation (language) problem could cause Path not found error on startup fixed.
Badly formatted messages very occasionally could cause program to crash now fixed.
Serial Input settings not always retained fixed.
Further changes to example files and transfer to User Accounts.
Sample Initialisation files updated
Help file updated
New option to output CSV heading added
Sample Excel initialisation file added
Help now includes details on how to configure Google Earth for Automatic updates.
Output display options moves to Control/stats window
Not retaining settings on Msg 24 Class B fixed
Not retaining Input source fixed 
User defined date/time formats for output added
Time stamp format now uses PC's locale setting
Command line option to force initialisation file added
HTML Character substitution split between UDP and File output
Not all sample initialisation files had been included with the setup distribution
Help updated - spnmea added, several issues clarified (I hope!)
When ALL fields were output as CSV, NMEA sentences that were not !AIVDM or !AIVDO were not being output. Fields are now output exactly the same as the rows in column 2 on the detail display. This differs from the column order in Version 68.
Problem with NMEA GPS tags and synchronisation fixed.
    Help File
There is now a "Windows Style" help file (AisDecoder.chm), which is downloaded on installation to your Program Files directory. When press the Help button, you will be using this file. The new Help can be viewed independently of AisDecoder by locating this file and clicking on it.The Web Help File is out of date, but still on the Web Site for users who are using older versions (access from download page).
Installer now checks to ensure AisDecoder is not running prior to installing a later version
There are some incompatible changes with previous versions.
The installed executable is now named AisDecoder - not AisDecoder_V3.

The installation executable is now AisDecoder_setup_3.1.0.67.exe (and will change with each version).
    Downloading New Versions
I have changed the complete download mechanism to
1.    To try and make it more robust
2.    To create a unique install executable file with each version
3.    To as far as is possible allow multiple users on the same PC to have their own settings files
4.    Removed the Automatic Download of new versions.
On start-up AisDecoder will (if there is an internet connection) check if there is a later version.
If so, it will enable the Update button on the Control/Stats window (the Update text will cease to be "greyed out").
On clicking the Update button AisDecoder will close and your browser will start with the release notes. Having read the notes, you should click the link on the Release Notes to go to the Download page.
You cannot install AisDecoder unless you have Administrator privileges.
    Sample and Settings Files
For AisDecoder to start, it must have a valid initialisation file (.ini).
The current user's files are kept in the "Current User" profile.
There are a number of Sample or Example files to demonstrate some of the possible options. These are explained in Help.
    Other Changes
Any user who is not an Administrator, will not be able to access the Options Window so can only change settings on the Control/Stats Window, cannot save these settings and will not be prompted to save changes on exit.
If the Input Window was clicked, when no input sentences displayed, AisDecoder stopped. This has been fixed.
The Decoder will now output all decoded value fields as CSV, if CSV output is selected and NO field Tags are selected.
The sample file CsvAll.ini is preset to do this.
The Ouput format is:-
Received Timestamp (if it exists) , Vessel Name (blank if not received) , NMEA Payload field , Delimited Decoded Payload Fields.
The order in which the Delimited Decoded Payload Fields are output is the same as in the Detail Window.
KMZ output files are now supported for Google Earth. Just name the output file *.KMZ
Msg 21 (AtoN), if there is a name extension, the decoder now displays in the Detail Window the number of fill bits (if any).
If the Payload within a NMEA AIS message is too short to hold all the required bits to decode the whole message, the number of bits short are displayed at the bottom of the detail window. Any fields past the actual payload length will have all bits set to 0 (zero).
When you exit the program, if you have not saved your settings & they have changed, you will be prompted to save them. This will not happen for non-administrators as they cannot save their settings anyway.
If an AIS NMEA sentence had a valid CRC but insufficent words Ais Decoder could crash, this is now reported as an error.
If you are the only user on your PC and you installed AisDecoder you do not need to worry about Profiles.
When the Ais Decoder Setup program downloaded user file files (including sample files) are now placed into the "All Users" profile.
The first time AisDecoder is run by any user, all files currently existing in  "\All Users\Application Data\Arundale\AisDecoder" are copied to "Current User\Application Data\Arundale\AisDecoder". This will include all the above list of sample files as well as any additional files the Administrator may have placed in the All Users profile.
Although the Current User does have access to their own files, by default, files in \Application Data\ are hidden, unless you are an Administrator.
If the current user requires directory access to any of the AisDecoder folders or files, create a shortcut in the user's "My Documents".
After re-installing a new version of AisDecoder (or you have Adminstrator priviledge), when you first run the new version, you will be prompted as to whether you require any of the above sample files which differ from those in your own profile, being overwriten.
If you are not an administrator, they will be overwritten anyway.
The first time a user runs a new version, default.ini is always overwritten in the Current Users profile.
The uninstaller will only remove the downloaded files (in All Users), the "Current User" files will be automatically removed if you delete the "Current User" profile.
Code to output fill bits when added at the end of variable length messages to fill message to next 8 bit boundary has been re-written, to correctly decode when fill bits are tagged. This is used by message 20 (Shore Station Data Link Management).
Note a significant no of shore stations transmit incorrect message length.
An Out of memory error fixed, caused by under certain circumstances a Microsoft size limit being exceeded.
An occasional Subscript error fixed.
There were a number of problems in the decoding of the Communications State, due to the variability of the bit positions. I believe the decoding is now correct. Some shore stations appear to transmit incorrect data, for example Next Slot Offset of 2250 - the maximum permitted slot is 2249 (these may be test transmissions).
The MMSI decoding has been split into MMSI and MID
The MMSI description is the type of MMSI (for example Shore Station, SART etc)
The MID description is the Country.
Where the MMSI does not contain a MID (for example SART) ,the MID is output as 0 (not blank).
The special Tag <IconHeading> will output 511 if neither COG or HDG is available.
Internal changes to scheduled output, speed improvement of about 30%.
The special Tag <IconHeading> will always be in whole degrees even if COG is used. This is for compatibility between Google Maps and Google Earth.
If FTP fails, error messages now written to /logs/error.log to enable error to be recovered when running in nowindow mode.
The current version number on the Control/Stats window can be "clicked" to bring up a list of all version changes. 
Suppress error messages on FTP, if command option noWindow is set. If nowindow is set FTP errors will no longer trigger an error window.
I will be changing my Tags from <tag> to [Tag], ie () to [] shortly.
This is to enable a kml template to be compatible with an XML parser, before the Tag is substituted. This will necessitate you changing all your tags (not Google Tags) in your kml template files.
Added a special Tag <IconHeading> which may be used to align Vessel Icon on a GIS display with North relative to COG if HDG is not available. This is only available on Tagged output when GIS
If a range has been set for a Tag and no messages has been received containing the Tag the MMSI will now fail the range check and no output will occur for this MMSI.
This check is only done if Tags are output on MMSI Change, otherwise if all Tagged messages are being output separately (ie not on a change of MMSI) and Tags are set on different AIS message types, no output would occur, as there would always be blank Tags on every message.
Another minor change to try and ensure the correct column is selected when adding a new Tag
Yet another try at making the Automatic Version Updater work properly, next time.
When Field Tag was selected on Detail Window, intermittently incorrect column was selected to output. The effect was instead of Tag value being output, Tag description was output.
Input Field Window, previous fix to retain focus resulted in changed tag name being "lost".
If serial port failed to open, Decoder kept trying even after stop pressed. Max & Min Range tag not always output
Serial Input from Com Port added
Improvements to Accept Input Filter when ticking deep sub items.
Note you do not have to tick sub items - they are assumed to be ticked.
Problems with FTP upload output file location, hopefully fixed
Added FTP client to upload Output file to Web Server
The file is FTP'd to the server whenever the Output file is closed, this would normally be after the scheduler has created the file.
The Server logon password is held encrypted in the .ini file using some of the PC's parameters as a key. This means, if you save the .ini file on one PC then transfer it to another, you will have to re-enter your Server logon password. It does however mean you can send the .ini file to another user without revealing your password.
When outputting all Tag messages (not on MMSI change) each part of multipart AIS messages was output. This was incorrect and has been fixed.
GPS NMEA sentences were not given a unique default Tag, the default Tag is now unique
Tag Template File re-read on exiting Options Window, to ensure if min or max range is changed, and used as a Tag, they are replaced in the Template
Option added to output Tags/CSV after each message rather than on change of MMSI.
This is to allow, when reading a log file, to output the history of one vessel.
Alterations to directory options when selecting new files.
Downloaded initialisation files were retaining my directory paths.
Slight cleanup of display of $GPxxx NMEA sentence tags.
Additional sample template file GoogleMaps.xml now supplied with the download.
This template will output a XML file which is compatible with the widely used sample webpage Curt Deegan's which can be downloaded from the files section (vbscripts) of the ShipPlotter forum.
Limited processing of $GPZDA and $GPGGA messages added to allow GPS time stamping.
The default tags are the type of NMEA sentence (eg $GPZDA).
Note if trying to output tag values (including CSV), the Tag Value is only output when the
MMSI changes, as GPS sentences will not have a MMSI, you will not get any output until an AIS sentence with an MMSI is output. As with all tagged output, the decoder will only output the latest Tag value, if more than one message with the same Tag has been received, since the previous Tag was output.
If you require to see all messages, you should use NMEA output.
The above required adding additional input filter options in the sample initialisation files - default.ini,GoogleEarth.ini and udptagsrange.ini.
These files are overwritten each time you download a new version.
If you are using your own "save as" initialisation files, you will not see these additional Input Filter Options.   
If the Output File Name ends in .htm*, the content is now written to the output file WITHOUT a line terminator (crlf). This is to try and avoid browsers replacing the <crlf> with a space.
(This may cause other problems, so may have to be changed again).
You can insert the minimum or maximum Range value into a Tagged Output File by appending _min or _max to the name on the tag. Eg <lat_min> wil insert the minimum value of the lat tag into the output file.
Problem changing Output file with tag template file fixed
Some minor changes to output display
Download moved to ./aisdecoder_setup_v3.exe
Bug NMEA UDP with Range filtering and not Scheduled not outputting fixed
Download error bug fixed
Options window would not close bug fixed
Stats updating fixed
Help file button now links to V3 User Guide - which is progressively being updated.
GIS button added to Control/Stats window to automatically display KML file on Google Earth
Options Display format changed slightly again
Output routines altered to try and ensure output is split correctly (as the expense of some speed)
More comprehensive checking of options settings with improved user messages
(there is scope for improving these messages).
Options Display format changed slightly
Csv Delimiter selection coded
Duplicated message output bug fixed
Another significant code cleanup on output options.
Option Layout changed to further clarify and allow display of output without actually outputting data.
Both File and UDP output now displayed in separate windows.
Download timeout increased for 60 to 90 seconds.
Fixed bug that could result in a valid tag value not being output
If the CSV delimiter if found in the value of a tag, the value is output as a quoted string for example if the delimiter is a comma:---
244387000,20/10/2010 14:15:19,PRIDE OF BRUGES,"Passenger-carrying DG,HS,MP,IMO haz or pollutant X"
Fixed bug that could result in nmea and tagged output intermingled
Main and Options Display layout and terminology changed
Raw called NMEA and NMEA called Time Stamped
Output Options and display re-structured to be clearer
You can now set the same Options independently for both File or UDP output
Some combination of Options can result in no output if they are mutually exclusive
Before Output all sentences are Input Filtered.
Sentences can then be Scheduled and/or Range Filtered.
When Output they can be NMEA, CSV or Tagged.
The Scheduler holds the latest AIS sentence, by message type, for the Time to Live.
After the Scheduled Time has elapsed, all the buffered sentences are released in MMSI order.
A Tag is a name + value allocated to an AIS Message field. The same Tag (eg MMSI or Latitude) can be allocated to different AIS message types. This is necessary if the same data for example a vessel's position, can be extracted from more than one AIS message type.
The Range Filter extracts the value of any Field (defined in the Output Fields and Tags on the Options Display), keeping the latest value received.
A From-To Range may be set for the Tag (defined in the Output Tags and Range on the Options Display).
AIS messages are checked if they are within Range for Output in groups by MMSI.
Any Group of messages (having the same MMSI), not containing an AIS message which has a Tag Range set, will be output. This is because it is indeterminate at the time whether the MMSI is or not within the range.
Likewise a message without a Tag, not previously rejected by the Input Filter, will be output.
NMEA    If "Raw" is ticked, the NMEA sentence will have the Time Stamp removed.
CSV      If a Tag has no value, or has not been seen, a null will be output at the Tag's position.
           If no Tags have been specified, nothing will be output.
Tagged    If "GIS" is ticked, only messages containing both a Latitude and Longitude will be output, as outputing data to Geographic Information Systems, without a position is meaningless.     
I have set three sample initialisation (.ini) files.
default.ini is a basic file to just ouput received data
UdpTagsRange.ini has UDP output, Common Vessel data, and Lat/lon Range pre-set. You will need to reset the lat/lon to get any output.
GoogleEarth.ini    Creates a GoogleEarth KML file.
Once a minute Data.kml should be created in the Output directory. Provided you have Google Earth installed on your PC, if you clickon the data.kml file, you should see all received vessels on GoogleEarth. The template file (in the Templates directory) is about a simple as it can be to still work.
I have tested this using the data from AisHub, receiving around 6000 messages a minute, Outputting around 6000 vessels to a 1Mb file in around 10 seconds, on my XP pc. You can of course alter any of these files if you wish, but bear in mind if you do not rename them, I'll overwrite them when you upload a later version of my decoder.
I still need to do some work on the actual displays, this is rather time consuming and I wish to ensure the basic engine is working as expect, without bugs, and with all the main options in place.
As there are now a large number of output options, it's impossible for myself to test all the options so if you find any bugs, I would appreciate you letting me know.
Additional UDP output option CSV added
Renamed the UDP Output Options, Raw Scheduled to Raw, Scheduled to Tagged. These will not be renamed unless you re-create any saved .ini files
The new default.ini and udptagsrange.ini that are downloaded to your PC with this version are already fixed.
On installation, I have placed in the Files directory "Output Options Schematic.pdf" which should help you to understand how the options should work.
The Tag Template File being used was not retained between restarts if a Tagged file was selected for output.
There is a minor change to the code but it also requires the file name to be loaded first in the initialisation process.
Tag range filter changed from OR to AND, all range conditions (if set) must be met otherwise no output will happen for the current MMSI.
Well there were some bugs, in particular with selecting different output combinations
Hopefully these are mainly fixed - if you find any more where it does not seem to be doing what your expecting, please let me know.
There was also a mistake in the example.aspx
I have added an example.html and a data.kml file in the templates directory, and a UdpTagsRange.ini file in the Settings directory.
If you select the UdpTagsRange.ini file (Options > Open) it can create a file, provided your Ships are within the pre-set Latitude range, which will contain the Tags required for the HTML or KML file. The HTML file can be opened with any browser and the KML file
can be opened with Google Earth (you can also upload it to Google Maps server).
Option Added If you Right Click on Detail display the content will be placed on the Clip Board as CSV. You may Paste the contents into Notepad and open it with Excel.
I would like to try and concentrate for a while on fixing any bugs (which there will be) and getting it stable before adding any additional features, unless anyone has any relatively simple issues. There are so many different options now that I cannot check all of them, so if anything does not work as you or I expect, I need to sort these out as well.
In addition, I would like to make a start on documentation, as this would help understanding what it will and won't do at the moment.
Program may not start if default initialisation file not set.
The startup initialisation file is now reset to default after new version downloaded.
This is caused by changes I'm still making to the initialisation file format, which is not yet stable. I now make an attempt to recover and if you save the file, save it in the "new" format. You may however loose some of the settings, if I've madean incompatible change.
Scroll added to Splash Display (version changes on startup)
Note:--- Any existing .ini files will probably fail.
Option to output "Raw" Log file (without time stamp) added
Option to output filtered UDP "Raw" sentences added
Option to Output UDP Scheduled "Raw" - allowing you to only output those sentences that pass the Tag output range filtering. For example Vessels within a defined geographic area. You do not have to create a Tagged file to do this, but you must create the tags
because the range is set by Tag and not individual AIS message no fields.
Option to merge the Tags with a "Tagged" template file enabling you to create, for example, a HTML, XML, KML, CSV or aspx etc file. The Template file should be in the Ais Decoder/Templates directory. The output file will have the same name but will be placed in the Ais Decoder/Output directory. There should be a simple example file in the directory. I have also included a more complicated setup file.
Major rewrite of Open, Save and SaveAs routine error trapping and informing users of problems opening or saving initialisation and log files.
I have tried to cover all angles including:---
    Files or directories not existing.
    Files being deleted
    Incorrectly formatted files
    ReadOnly files
Next up - Fixing bugs permitting !
    Save Option on Detail Display
UDP output of Tagged output enabled.
You must set the IP address and port no on the Options Display while the decoder is STOPed.
Clicking the Nmea List Display will Display the Detail of the Nmea Sentence, in the same manner as clicking the Ais List Display.
Hour Glass mousepointer fixed again (mistake last time)
More changes to display layouts
Clicking on a Tag in Options > Output Tags will delete all fields in Options > Output Fields containing the same Tag.
Next up (apart from fixing any bugs you find) is Outputting a file to your template with embedded values in the tags.
Inform Users of changes since last version - Like this !
Main Display Screen Layout changed
Please note:-
I will be making some changes to the Initialisation (.ini) files which will be incompatible with any existing files, so please don't create loads of individual settings as they may not work until I've stabalised the format.
When you download a new version, the existing default.ini file will be overwritten.
Options I'm about to implement are "Greyed Out".
I'm Experimentally outputting the Scheduled Output on UDP data on port 39421, to allow me to test it over the internet.
If you wish to re-read this message (you'll only see it once), the file should be in the directory (\Files\) as displayed on the bottom of the main display.
Hour Glass fixed
Save As File filename corrected on Options display