Commit Graph

660 Commits

Author SHA1 Message Date
Hemna 357a193a75 Update Changelog for 3.0.2 2023-01-16 11:41:42 -05:00
Hemna 4aa4a4b5d3 Import RejectPacket 2023-01-16 11:38:48 -05:00
Hemna 062f3caf83 3.0.1 2023-01-14 12:56:03 -05:00
Walter A. Boring IV 9ac9835541
Merge pull request #109 from craigerl/reject_packet
Add support for Reject messages.
2023-01-14 12:53:19 -05:00
Hemna c68b270ee2 Add support to Reject messages.
This patch adds support for receiving reject messages.
2023-01-14 12:41:22 -05:00
Hemna 38725907f3 Update Docker builds for 3.0.0 2023-01-09 11:54:50 -05:00
Hemna 4a10511d8b Update Changelog for 3.0.0 2023-01-09 11:05:14 -05:00
Hemna c5aba17ad1 Ensure server command main thread doesn't exit
This patch adds join calls on the running threads to prevent
the main thread from exiting prematurely.
2023-01-07 14:57:25 -05:00
Hemna 233d49bb4c Fixed save directory default 2023-01-03 15:38:19 -05:00
Hemna 6391c7eed6 Fixed pep8 failure 2023-01-03 09:01:53 -05:00
Hemna 0758a58101 Cleaned up KISS interfaces use of old config 2023-01-02 14:20:13 -05:00
Hemna a5520b2cd3 reworked usage of importlib.metadata
For whatever reason passing in group in python 3.9.x
fails for importlib_metadata.entry_points.  This patch
fetches all and filters through them to get the real
oslo.config.opts entry points now.  This is to find all
of the config options of aprsd and the plugins
2023-01-02 14:13:49 -05:00
Hemna 29b8764124 Added new docs files for 3.0.0 2023-01-02 14:13:49 -05:00
Hemna fe2f7b5b71 Removed url option from healthcheck in dev 2023-01-01 17:37:43 +00:00
Hemna c5acdba6de Updated Healthcheck to use rpc to call aprsd
After adding the rpc service for aprsd server and separating the
admin web REST interface, healthcheck no longer worked.   The stats
are available via rpc now.
2022-12-31 16:52:50 -05:00
Hemna 79e7ed1e91 Updated docker/bin/run.sh to use new conf
This patch updates the docker shell run script to use the
new aprsd.conf file.  The new aprsd config is an aprsd.conf file
now not, aprsd.yml
2022-12-30 10:13:25 -05:00
Hemna ed284a42cc Added ObjectPacket
This patch adds the ObjectPacket.  This is used by the REPEAT plugins
to send out an object in message packet to let radios tune directly
to the station.
2022-12-30 09:44:25 -05:00
Hemna 3d0bb8ae8e Update regex processing and regex for plugins
The regex search is now by default case insensitive.
Also update each core plugin to better match the command.

ping plugin can now match on
p
p foo
ping
pIng

Weather plugins can now match on
w
wx
wX
Wx KM6LYW
weather
WeaTher
2022-12-29 14:34:46 -05:00
Hemna 83d2e708eb Change ordering of starting up of server command
This patch moves the plugin manager to early in the startup
process so that the plugins get loaded, which also means each
plugin's custom config settings will be in the CONF object.
This allows dumping the entire CONF with all the plugin settings.
2022-12-29 14:15:56 -05:00
Walter A. Boring IV 473f00973b
Merge pull request #107 from craigerl/oslo-config
Convert config to oslo_config
2022-12-29 09:17:51 -05:00
Hemna c929689647 Update documentation and README
This updates the documentation in prep for 3.0.0
2022-12-28 16:50:34 -05:00
Hemna ff392395ed Decouple admin web interface from server command
This patch introduces rpyc based RPC client/server for
the flask web interface to call into the running aprsd server
command to fetch stats, logs, etc to send to the browser.

This allows running the web interface via gunicorn command
gunicorn -k gevent --reload --threads 10 -w 1 aprsd.flask:app --log-level DEBUG
2022-12-28 15:55:09 -05:00
Hemna 02e4f78d0e Dockerfile now produces aprsd.conf
This patch updates Dockerfile and Dockerfile-dev
to produce aprsd.conf instead of aprsd.yaml
2022-12-27 15:44:32 -05:00
Hemna e9a954a8fd Fix some unit tests and loading of CONF w/o file 2022-12-27 15:31:49 -05:00
Hemna f4a6dfc8a0 Added missing conf 2022-12-27 14:46:41 -05:00
Hemna 7ccfc253cf Removed references to old custom config
Also updated unittests to pass.
2022-12-27 14:30:03 -05:00
Hemna e13ca0061a Convert config to oslo_config
This patch is the initial conversion of the custom config
and config file yaml format to oslo_config's configuration mechanism.

The resulting config format is now an ini type file.

The default location is ~/.config/aprsd/aprsd.conf

This is a backwards incompatible change.  You will have to rebuild
the config file and edit it.

Also any aprsd plugins can now define config options in code and
add an setup.cfg entry_point definition
oslo_config.opts  =
  foo.conf = foo.conf:list_opts
2022-12-24 16:51:40 -05:00
Hemna ce3b29f990 Added rain formatting unit tests to WeatherPacket 2022-12-22 12:04:17 -05:00
Hemna bbcd7c8a5b Fix Rain reporting in WeatherPacket send.
Made a fix for a rain setting of 1.04 inches, the packet
has to be r104 instead of r001
2022-12-22 09:42:30 -05:00
Hemna 4a65f52939 Removed Packet.send()
This patch decouples sending a message from the internals of
the Packet classes.  This allows the rest of the code to use
Packet objects as type hints in methods to enforce Packets
in the plugins.

The send method was moved to a single place in the threads.tx.send()
2022-12-21 16:26:36 -05:00
Hemna f464ff0785 Removed watchlist plugins
All plugins can be loaded with the enabled_plugins
Also added unit tests for the PluginManager
2022-12-21 11:18:26 -05:00
Hemna 2ca36362ec Fix PluginManager.get_plugins
This patch fixes the result of get_plugins to be a list correctly.
2022-12-21 10:05:27 -05:00
Walter A. Boring IV eca5972ebd
Merge pull request #106 from craigerl/dataclasses
Dataclasses
2022-12-20 17:26:46 -05:00
Hemna 7dfa4e6dbf Cleaned up PluginManager
Added a separate pluggy track for normal plugins
and watch list plugins.
2022-12-20 16:19:05 -05:00
Hemna 220fb58f97 Cleaned up PluginManager
Added a separate pluggy track for normal plugins
and watch list plugins.
2022-12-20 15:13:13 -05:00
Hemna 088cbb81ed Update routing for weatherpacket
update the routing to
WIDE1-1, WIDE2-1
2022-12-20 11:51:47 -05:00
Hemna f19043ecd9 Fix some WeatherPacket formatting 2022-12-19 21:27:05 -05:00
Hemna a1188d29d4 Fix pep8 violation 2022-12-19 20:41:57 -05:00
Hemna d01392f6a5 Add packet filtering for aprsd listen
Now aprsd listen can filter by packet types.
2022-12-19 17:28:18 -05:00
Hemna 899a6e5363 Added WeatherPacket encoding
This patch adds the ability to output a correctly formatted
APRS weather packet for sending.
2022-12-19 14:04:14 -05:00
Hemna ad0d89db40 Updated webchat and listen for queue based RX
This patch updates both the webchat and listen commands
to be able to use the new queue based packet RX processing.

APRSD used to start a thread for every packet received, now
packets are pushed into a queue for processing by other threads
already running.
2022-12-19 10:28:22 -05:00
Hemna e37f99a6dd reworked collecting and reporting stats
This is the start of the cleanup of reporting of
packet stats
2022-12-18 21:54:34 -05:00
Hemna 9fc5356456 Removed unused threading code 2022-12-18 09:14:12 -05:00
Hemna 123b3ffa81 Change RX packet processing to enqueu
This changes the RX thread to send the packet into a queue instead of
starting a new thread for every packet.
2022-12-18 08:52:58 -05:00
Hemna 1187f1ed73 Make tracking objectstores work w/o initializing
This changes the objectstore to test to see if the config has been
set or not.  if not, then it doesn't try to save/load from disk.
2022-12-17 20:06:28 -05:00
Hemna c201c93b5d Cleaned up packet transmit class attributes
This patch cleans up the Packet class attributes used to
keep track of how many times packets have been sent and
the last time they were sent.  This is used by the PacketTracker
and the tx threads for transmitting packets
2022-12-17 18:06:24 -05:00
Hemna f1de7bc681 Fix packets timestamp to int
Python's default timestamp is a float.
APRS packet expect to have an old style unix integer
timestamp.
2022-12-16 15:58:03 -05:00
Hemna 6030cb394b More messaging -> packets cleanup
Fixed the unit tests and the notify plugin
2022-12-16 15:58:03 -05:00
Hemna bfc0a5a1e9 Cleaned out all references to messaging
The messaging.py now is nothing but a shell that
contains a link to packets.NULL_MESSAGE to help maintain
some backwards compatibility with plugins.

Packets dataclass has fully replaced messaging objects.
2022-12-16 15:58:02 -05:00
Hemna 59e5af8ee5 Added contructing a GPSPacket for sending
This patch adds the needed code to construct the raw output
string for sending a GPSPacket.

TODO: Need to incorporate speed, course, rng, position ambiguity ?
TODO: Need to add option to 'compress' the output location data.
2022-12-16 15:58:02 -05:00