Skip to content

Commit

Permalink
Version 1.5
Browse files Browse the repository at this point in the history
This is a massive release for version 1.5 of aprs-weather-submit.
Altitudes can now be reported, small bugs were fixed, and the package
now conforms to GNU coding standards.

For more information, please consult the change log or NEWS files.
  • Loading branch information
rhymeswithmogul committed Sep 26, 2020
1 parent 1205f0e commit e31dbcc
Show file tree
Hide file tree
Showing 18 changed files with 457 additions and 150 deletions.
2 changes: 1 addition & 1 deletion AUTHORS
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Colin Cogle <colin@colincogle.name>
Colin Cogle, KC1HBK <colin@colincogle.name>
10 changes: 8 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
## Changes since version 1.4
* Added the `--no-comment` option to suppress this app's user agent in the comment section of the packet.
## Version 1.5
<time datetime="2020-09-26T13:19:22-05:00">September 26, 2020</time>
* Replace the Makefile with an Autoconf script.
* Replace the `-DNO_APRSIS` make option with the `--disable-aprs-is` configure switch.
* Add support for disabling assertions with the `--disable-assert` configure switch (though I recommend not using this).
* Conform with GNU standards by adding a ChangeLog file (plain-text copy of GitHub's CHANGELOG.md), COPYING (a copy of LICENSE), NEWS, and README (a plaintext copy of GitHub's README.md).
* Add the `--no-comment` option to suppress this app's user agent in the comment section of the packet.
* Add the `--altitude` (`-A`) option to allow for reporting the location's altitude, in feet above mean sea level.

## Version 1.4
<time datetime="2020-03-08T22:59:19-04:00">March 8, 2020</time>
Expand Down
1 change: 1 addition & 0 deletions COPYING
82 changes: 82 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
Version 1.5 (September 26, 2020):
- Replace the Makefile with an Autoconf script.
- Replace the -DNO_APRSIS make option with the --without-aprs-is configure
switch.
- Add support for disabling assertions with the --disable-assert configure
switch (though I recommend not using this).
- Conform with GNU coding standards by adding plain-text versions of GitHub's
CHANGELOG.md (as ChangeLog), LICENSE (COPYING), and README.md (as README).
Also, added a NEWS document.
- Add the --no-comment option to suppress this app's user agent in the comment
section of the packet.
- Add the --altitude option to allow for reporting the location's altitude, in
feet above mean sea level.

Version 1.4 (March 8, 2020):
- Fixed a bug where latitudes and longitudes were not being converted into DMS
exactly as they should be, which had been leading to minor position inaccuracies.
- Made uncompressed positions the default again, because APRS.fi doesn't support
weather packets with compressed positions. This is a long-standing bug on
their web site. For more information, see: https://groups.google.com/forum/#!searchin/aprsfi/compressed%7Csort:date/aprsfi/uzjdm026NZQ/FqES7V2iAwAJ
- The -0 and --uncompressed-positions options are still accepted for backwards
compatibility, but no longer do anything.
- Better documentation for the compression type byte.
- Changed the copyright date for the new year.

Version 1.3.1 (September 14, 2019):
- Fixed a bug where uncompressed latitudes greater than 90° were truncated.
This was not the default behavior. My apologies to anyone in Asia, Australia,
Oceania, and most of the Americas.

Version 1.3 (July 31, 2019):
- Added the compile-time option NO_APRSIS to strip all Internet-related
functionality, just in case you're *really* low on space.

Version 1.2.1 (July 31, 2019)
- Added <stdint.h> to prevent compiler errors. (Thank you to UR3QJW for
reporting this.)
- Switched from ANSI C to the C99 standard, in order to keep using snprintf().
Some compilers are stricter than mine and refuse to compile K&R C with it.
(Another thank you to UR3QJW.)
- Since we switched to C99, I added some tiny performance enhancements with the
restrict and inline keywords.
- Fixed a pair of bugs where uncompressed packets would fail to encode the
location correctly.
- Fixed a bug where wind speeds would not be reported properly in compressed
packets, because math is hard.
- Added linker options to the Makefile to fix linking errors with GCC 7.
- Code cleanup.
- Known issue when compiling with GCC 7 and newer: there will be many warnings
about formatting. These can be ignored. Adding -Wno-format-detection to the
Makefile will quiet it down. This will be patched in a future release.

Version 1.2 (April 16, 2019):
- Added preliminary support for compiling on Windows.
- Added the option of using APRS uncompressed positions at runtime with the
--uncompressed-position switch, rather than a compile-time choice.
- Removed a dependency on <stdint.h>. (This would be restored in v1.2.1.)
- Fixed a bug where impractically large APRS-IS packets would be truncated. This
was unlikely to affect real-world use.

Version 1.1 (January 23, 2019), codename "QLF"
- Added support for reporting temperatures in degrees Celsius.
- Added a Makefile for POSIX systems.
- Added a man page.
- Fixed a bug where negative temperatures may cause the packet to fail to encode.
- Cleaned up some documentation.

Version 1.0 (January 21, 2019), codename "QRV"
- Added significant documentation.

Version 0.3 (January 20, 2019), codename "QST"
- Wrote help.
- Added support for actually sending the packet to an APRS-IS IGate.
- Changed the position and wind data to compressed from uncompressed. For now,
this can only be undone at compile-time.

Version 0.2 (January 18, 2019), codename "Strings are hard"
- Added support for snowfall, as clarified in APRS 1.1's errata.
- Added support for the APRS 1.2 parameters: radiation, water level, and voltage.

Version 0.1 (January 14, 2019), codename Q
- Initial private release.
84 changes: 0 additions & 84 deletions Makefile

This file was deleted.

23 changes: 23 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# aprs-weather-submit version 1.5
# Copyright (c) 2019-2020 Colin Cogle <colin@colincogle.name>
#
# This file, Makefile.am, is part of aprs-weather-submit.
# <https://github.com/rhymeswithmogul/aprs-weather-submit>
#
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the Free
# Software Foundation, either version 3 of the License, or (at your option) any
# later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see <https://www.gnu.org/licenses/agpl-3.0.html>.

bin_PROGRAMS = aprs-weather-submit
aprs_weather_submit_SOURCES = src/main.c src/aprs-wx.c src/aprs-is.c
man1_MANS = man/aprs-weather-submit.man
LDADD = -lm
43 changes: 42 additions & 1 deletion NEWS
Original file line number Diff line number Diff line change
@@ -1 +1,42 @@
See CHANGELOG.md.
# aprs-weather-submit news

This file details all of the user-facing changes that are in version 1.5 of
aprs-weather-submit. For more details, please consult the CHANGELOG file or
this project's GitHub page.

## NEW AND IMPROVED INSTALLATION PROCESS

The Makefile was replaced by an Autoconf script. Users will be able to
install this package with the usual *nix process:

./configure
make
make install

Because of this, the -DNO_APRSIS make option is being removed. Instead, run
./configure --without-aprs-is.


## ALTITUDE REPORTING

This app now supports reporting your altitude. Use the --altitude (-A) option
and include how far above sea level you are.

Per the APRS 1.01 specification, this is included in the comment field, so not
all APRS parsers may recognize it.


## DISABLE COMMENTS

Do you want to shrink your APRS packets? Use the --no-comment runtime option,
and aprs-weather-submit will no longer include a comment. This will remove its
name and version in the comment section of your packet, and it will strip the
"APRS Software Type" character (which has been hardcoded to X for Linux). Note
that this will not affect the aforementioned altitude reporting.

However, if you do use this option, please consider telling a friend about
aprs-weather-submit.

-----
For information about older versions, consult the CHANGELOG or CHANGELOG.md
files.
80 changes: 80 additions & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# aprs-weather-submit

Not everyone has a fancy weather station with APRS connectivity built in. Maybe
you're like me, and have an old-school thermometer and CoCoRaHS-approved rain
gauge. This command-line app, written in C99, can compile on most Linux tool-
chains (Windows support is in the works) and will manually submit APRS 1.2.1-
compliant weather information to the APRS-IS network.


## Help

Anyone can use this app to create an APRS packet. However, to send it to the
APRS-IS network, you must have an account on an APRS-IS IGate server, as well
as an amateur radio license or CWOP identifier (more on that below).


## Installation
$ ./configure
$ make
$ make install


## Examples

At the bare minimum, you can submit your weather station's position with a
command line like this:

aprs-weather-submit --callsign W1AW-13 --latitude 41.714692 \
--longitude -72.728514 --server example-igate-server.foo --port 12345 \
--username hiram --password percymaxim

If you'd like to report a temperature of 68°F, you can use a command like this:

aprs-weather-submit -k W1AW-13 -n 41.714692 -e -72.728514 \
-I example-igate-server.foo -o 12345 -u hiram -d percymaxim -t 68


Or, if you just want the raw packet for your own use, don't specify server
information:

$ aprs-weather-submit -k W1AW-13 -n 41.714692 -e -72.728514 -t 68
W1AW-13>APRS,TCPIP*:@090247z4142.88N/07243.71W_.../...t068Xaprs-weather-submit/1.5


This app supports all of the weather data parameters defined in APRS versions
up to and including version 1.2.1:
* Altitude (-A, --altitude)
* Barometric pressure (-b, --pressure)
* Luminosity (-L, --luminosity)
* Radiation (-X, --radiation)
* Rainfall in the past 24 hours (-p, --rainfall-last-24-hours)
* Rainfall since midnight (-P, --rainfall-since-midnight)
* Rainfall in the past hour (-r, --rainfall-last-hour)
* Relative humidity (-h, --humidity)
* Snowfall in the past 24 hours (-s, --snowfall-last-24-hours)
* Temperature (°F) (-t, --temperature)
* Temperature (°C) (-T, --temperature-celsius)
* Water level above flood stage or mean tide (-F, --water-level-above-stage)
* Weather station battery voltage (-V, --voltage)
* Wind direction (-c, --wind-direction)
* Wind speed, peak in the last five minutes (-g, --gust)
* Wind speed, sustained over the last minute (-S, --wind-speed)


## Legal Notices

To use this app, you *must* be either:
1. a licensed amateur radio operator, or
2. a member of the Citizen Weather Observer Program in good standing.
Getting your ham radio license is easy, and joining CWOP is even easier.

Like it says in the license: this app is distributed in the hope that it
will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero
General Public License 3.0 for more details. As such, you and you alone are
solely responsible for using this app to submit complete and correct weather
and/or location data. Please do not use this app for evil. Don't make me
regret writing this app.

QTH. 73, KC1HBK
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Anyone can use this app to create [an APRS packet](http://www.aprs.org/doc/APRS1
## Examples
At the bare minimum, you can submit your weather station's position with a command line like this:
```console
$ ./aprs-weather-submit --callsign W1AW-13 --latitude 41.714692 --longitude -72.728514 --server example-igate-server.foo --port 12345 --username hiram --password percymaxim
$ ./aprs-weather-submit --callsign W1AW-13 --latitude 41.714692 --longitude -72.728514 --altitude 240 --server example-igate-server.foo --port 12345 --username hiram --password percymaxim
```

If you'd like to report a temperature of 68°F, you can use a command like this:
Expand All @@ -18,10 +18,11 @@ $ ./aprs-weather-submit -k W1AW-13 -n 41.714692 -e -72.728514 -I example-igate-s
Or, if you just want the raw packet for your own use, don't specify server information:
```console
$ ./aprs-weather-submit -k W1AW-13 -n 41.714692 -e -72.728514 -t 68
W1AW-13>APRS,TCPIP*:@090247z4142.88N/07243.71W_.../...t068Xaprs-weather-submit/1.4
W1AW-13>APRS,TCPIP*:@090247z4142.88N/07243.71W_.../...t068Xaprs-weather-submit/1.5
```

This app supports all of the weather data parameters defined in APRS versions up to and including version 1.2.1:
* Altitude (`-A`, `--altitude`)
* Barometric pressure (`-b`, `--pressure`)
* Luminosity (`-L`, `--luminosity`)
* Radiation (`-X`, `--radiation`)
Expand Down
Loading

0 comments on commit e31dbcc

Please sign in to comment.