The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl extension Ham::APRS::FAP.

0.01  Wed Feb 16 15:58:47 2005
	- original version; created by h2xs 1.22

0.02  Sun Dec  9 22:10:04 EET 2007 - Hessu, OH7LZB
	- Merged first bunch of aprs.fi enhancements:
	- Return parser errors in the return hash, instead of printing
	  to STDERR, so that they're more usable. See the 'resultcode'
	  and 'resultmsg' hash entries - resultcode is a machine-readable
	  error code, and 'resultmsg' is the human-readable equivalent.
	- The result_messages() function returns a hash of all possible
	  resultcodes and their plain english descriptions.
	- Permit source callsigns to be in lower case
	- Catch experimental packets (report error)
	- Catch but ignore telemetry packets (report error)
	- Accept broken uncompressed location packets with minute > 59.99
	  in initial regexp parsing, and report a proper error code for them

0.03  Sun Dec  9 23:47:19 EET 2007 - Hessu, OH7LZB
	- Merged weather parsing code from aprs.fi branch, now parses
	  a good majority of weather packets on the APRS-IS. The data goes
	  in a new wx hash (see keys %{ $rethash->{'wx'} }).

0.04  Sun Dec  9 23:52:14 EET 2007 - Hessu, OH7LZB
	- Merged the rest of changes in the aprs.fi branch:
	- The third argument of parseaprs(), $isax25, is now gone and
	  replaced with an options hash, which knows two options
	  'isax25' and 'accept_broken_mice'. They're used like this:
	  
	  my $ret = parseaprs(
	  	$l, $p, 'accept_broken_mice' => 1, 'isax25' => 0
	  );
	  
	  The hash is optional, so parseaprs($l, $p); will work for
	  APRS-IS lines.
	- The new 'accept_broken_mice' option enables parsing of mic-e
	  packets from which some nonprintable characters have been
	  removed. At least aprsd has a bug which replaces them with
	  spaces, and possibly some other software then replaces
	  multiple spaces with a single space. Some data is lost, but
	  the position is still parseable.
	- Catches more PHG data and the newer PHGR format. It's not really
	  parsed, just passed back in 'phg' field of the hash.

0.05  Wed Dec 12 17:04:31 EET 2007 - Hessu, OH7LZB
	- Added a lot of unit test cases over the last couple days - over
	  200 unique test items in 13 files. It isn't complete, though.
	- Renamed from APRS::Parser to Ham::APRS::FAP (Fabulous
	  APRS Parser) to better align with the CPAN hierarchy, and to
	  avoid clashing with the existing Ham::APRS::Parser)

0.06  Wed Dec 19 17:46:12 EET 2007 - Tapio, OH2KKU
	- Relaxed non-AX.25 callsign checking, i.e. now accept any
	  alphanumeric "callsign" (including a variable amount of
	  '-' chars) with a maximum total length of 9 characters.
	- Some cosmectic changes to unit conversions and comment
	  clarifications.

0.07  Wed Dec 19 23:26:52 EET 2007 - Hessu, OH7LZB
	- Fixed tests. Tapio's changes removed the -0 from source callsigns
	  with an SSID of 0, so I removed it from the destination callsigns
	  too, and changed tests accordingly.

1.00  Wed Dec 19 23:39:55 EET 2007 - Hessu, OH7LZB
	- Some small POD documentation changes
	- Bumped version number for initial public release

1.01  Thu Dec 20 00:05:59 EET 2007 - Hessu, OH7LZB
	- Added Date::Calc in the Makefile.PM required modules list, so that
	  CPAN installations will work properly

1.02  Fri Jan  4 01:29:47 EET 2008 - Hessu, OH7LZB
	- Fixed bug: Rain over past 24 hours and since midnight were mixed
	  up by the "normal" APRS weather packet parser (thanks DK7IN)
	- Tuned POD documentation a little bit

1.10  Wed Mar 12 16:23:20 EET 2008 - Hessu, OH7LZB
	- Committed APRS telemetry parsing code (has been tested on aprs.fi
	  for quite some time now)
	- Disabled timestamp checking in t/41decode-object.t - the parsed
	  timestamp varies depending on when the parsing code is run, since
	  the timestamp in the APRS packet is not fully specified.

1.11  Wed Mar 12 17:14:14 EET 2008 - Hessu, OH7LZB
	- Removed accidentally forgotten dependency on Data::Dumper
	- Documented dependency on the (standard) Math::Trig module
	  in Makefile.PL
	- Added t/53decode-tlm.t to the distribution, oops

1.12  Mon May 19 18:13:54 EEST 2008 - Tapio, OH2KKU, and Hessu, OH7LZB
	- !DAO! extension support (Datum and additional position resolution
	  for uncompressed and mic-e packets) implemented by Tapio.
	- Added position resolution reporting in meters (posresolution) to
	  all packets containing a location and corresponding tests. Also
	  added a quick test for position ambiguity parsing.
	- Additional unit tests and CPAN distribution cleanups.
	- Added an example script in the examples/ subdirectory.

1.13  Tue Nov 17 12:24:07 EET 2009 - Tapio, OH2KKU, and Hessu, OH7LZB
	- Allow anyone to update telemetry parameters, skip the source
	  callsign check
	- Allow a PHG of 0000 for deleting PHG
	- Added new error code sym_inv_table for invalid symbol table char
	- Added local time zone parsing to object timestamps
	- Fixed comments parsing for last resort !-location packets
	- Parse APRS message rejects

1.14  Tue May  4 20:31:33 EEST 2010 - Hessu, OH7LZB
	- Fixed humidity parsing, h0 means 100%
	- Fixed peet bros $ULTW packet parsing, integers are signed (not
	  unsigned), negative fahrenheit temperatures are now correctly
	  parsed (and converted to Celsius)
	- Parse comment from end of weather reports - if it's short enough,
	  treat it as the wx station/software type string
	- Parse weather data sent after a compressed position
	- Parse snowfall from normal wx packet
	- Added test for positionless wx packets
	- Added position packet format in hash ('format' => 'compressed')

1.15  Tue May  4 20:44:31 EEST 2010 - Hessu, OH7LZB
	- Added a couple of missing tests and 'format' => 'nmea'

1.16  Wed May 19 22:34:43 EEST 2010 - Hessu, OH7LZB
	- Added a couple of test cases
	- Added an example script to parse a whole file of timestamped
	  APRS-IS packets
	- Fixed peet WX packet parsing for Perl 5.8 and older, which don't
	  support n! packing
	- Minor speedups by reducing amount of regular expressions, extra
	  variables, reordering things to catch the most common case
	  first, and tightening a loop
	- Put '' around hash key strings (style issue)

1.17  Fri Sep 10 08:10:29 EEST 2010 - Hessu, OH7LZB
	- Remove / or ' ' from beginning of comment after parsing away PHG,
	  altitude and other optional data
	- Allow hexadecimal IPv6 addresses in APRS-IS paths after q..
	  construct
	- Added tests for uncompressed packet altitude (negative, too)
	- Fixed destination callsign based symbol selection for 'BC'
	- Updated URLs to aprs.org, etc

1.18  Fri Aug  5 08:39:49 EEST 2011 - Hessu, OH7LZB and Tapio, OH2KKU
	- Added Ham::APRS::IS module - an APRS-IS client library
	- Fixed position resolution calculation for whole degree cases,
	  and added tests
	- Implemented a 'raw_timestamp' option to return undecoded timestamps
	  in all but status packets
	- Added tests for timestamp and status message parsing
	- Added support for new base91 comment telemetry

1.19  Sun Dec 30 13:13:19 EET 2012 - Hessu, OH7LZB
	- Fixed Binary Value bit order in base91 comment telemetry

1.20  Sun Feb 16 16:13:58 EET 2014 - Hessu, OH7LZB
	- Mic-E: Catch invalid symbol table errors even in broken mic-e
	  packets
	- Mic-E: Indicate demangled packets with a 'mice_mangled' flag
	- Mic-E: If a mic-e packet was demangled, do not decode speed or
	  course which were lost in transit
	- Mic-E: Obtain correct symbol table identifier after demangling
	- Mic-E: Added tests for demangled case
	- Added sock() method to IS.pm for obtaining socket
	- Comment telemetry: Decode before DAO to avoid stripping "DAO"
	  from middle of telemetry

1.21  Fri Mar 24 07:55:01 EET 2017 - Hessu, OH7LZB
	- Improve make_position() to support HMS UTC timestamp.
	  make_position() now returns the packet type character so that it
	  can signal the presence of a timestamp.
	- Improve make_position() to support comment string, !DAO!
	  extension, altitude encoding. Fix rounding errors
	  in lat/lon/speed. Support generating packets with no speed
	  or course. Take optional parameters in a hash parameter. Implement
	  unit tests for make_position().
	- Set up Travis for automatic unit test runs.
	- Additional character escaping in regular expressions to deal
	  with deprecated functionality in Perl 5.22.