1
0
mirror of https://github.com/craigerl/aprsd.git synced 2025-10-17 14:10:25 -04:00

1235 Commits

Author SHA1 Message Date
eb8104be2f Added stop_all to stats collector.
This unregisters all of the registered stats producers,
which in effect disables collecting.  This is called during
teardown of aprsd.
2025-10-09 10:52:30 -04:00
643e19b0ac Stop all collectors on signal
This ensures that we stop all collectors at the start of the
exit signal handlers.  This helps prevent restarting the client
after the threads have been asked to stop.
2025-10-09 10:51:15 -04:00
9a1c0961e6 Added line numbers in trace
Updated the trace decorator to output the line number for the file
that caused the trace.
2025-10-09 10:50:01 -04:00
4b9e7fee4e Remove printf from tcpkiss
This removes the raw printing of the socket contents
that was used during development.
2025-10-08 11:33:41 -04:00
49202569a8 Fixed an issue with client.reset
The reset for the aprsd client was accessing the older
delay_connect, which has been renamed to auto_connect.
4.2.2
2025-10-08 08:33:39 -04:00
9bf4bfd92c Update Changelog for 4.2.1 release 4.2.1 2025-10-07 14:22:59 -04:00
af0feaf9c8 Fixed some unit tests
Fixed unit tests related to the updated static method signatures
of the client and drivers.
2025-10-07 14:18:50 -04:00
328c027ad3 Some client and driver cleanup.
Fixed the declarations of some of the client and driver methods
to be staticmethod.
2025-10-07 14:11:54 -04:00
e15322ede3 Added package
refactored some package related code to the new
utils/package.py
2025-10-05 16:27:51 -04:00
c7c9a92b15 refactored list-plugins
created new package module that gets information from installed
plugins and extensions so we can print it out to log at startup.

Updated commands to output the the installed extensions and plugins
2025-09-27 17:21:32 -04:00
3961e1d1ad Added ThirdPartyPacket decoding in tcpkiss driver
This patch adds a check in the tcpkiss driver to
check to see if the packet is a 3rd party packet
and automatically return the subpacket if it is.
2025-09-26 11:55:40 -04:00
8cd61a72c8 Fixed missing f string
This updates a string output in process_other_packet where
the string being output wasn't prefixed with the f character
to denote that python needed to format the contents with the object.
2025-09-26 11:27:03 -04:00
556554b1a7 Fixed stats issue with tcpkiss client.
The tcpkiss client's stats method wasn't serializing all of
the datetime objects.  This patch ensures that all the dates
in the stats are serializable when requested.
2025-09-26 10:57:23 -04:00
f3039ebfa1 Added CONF.is_digipi
This will help Craig with custom code changes that might be
needed only on the digipi.  He likes to modify the UI for
webchat.  So in the new webchat extension simply add a call
if CONF.is_digipi:
  # Do your awesome changes here
else:
  # normal aprsd/webchat stuffs here.
2025-09-22 10:52:28 -04:00
58cb046b31 Sanity check around decoding packet
This adds another sanity try, except block at the
APRSDClient level call for decode_packet, just in
case the driver itself fails in it's decode_packet()
call.
2025-09-22 10:25:31 -04:00
b9fea982f9 Updated Changelog for 4.2.0 4.2.0 2025-08-12 20:59:17 -04:00
2c476d8a04 Updated requirements for 4.2.0 2025-08-12 19:39:11 -04:00
fa5d0c643a log the exception when tx fails.
If _send_direct fails, we log the exception so we can find out why
it failed to send.
2025-06-17 22:23:06 -04:00
74887af507 Fix tox failures
With the UnknownPacket
2025-06-17 10:51:42 -04:00
034f11b4f9 Make sure packet has addressee field
Before dereferencing it in the rx thread.
This covers the case for an Unknown Packet
2025-06-06 17:18:19 -04:00
1ae437581f Honor quiet setting for log.setup_logging
This updates the setup_logging() to honor the quiet setting.

This means that aprsd won't log to stdout when quiet is passed in
as True.
2025-04-24 20:45:13 -04:00
d41064ba05 Don't log an IOError on shutdown
This updates the consumer loop to only log an IOError if we are not
in the process of shutting down.
2025-04-24 20:44:07 -04:00
b201117e96
Merge pull request #191 from craigerl/client-refactor
Reworked the entire client and drivers
2025-04-23 21:06:13 -04:00
211ac1132b Updated requirements 2025-04-23 20:59:18 -04:00
acd639a910 Make some catchall fields non hashable.
This makes some of the packet fields non-hashable that
will eventually end up being dicts or lists.
2025-04-23 20:57:16 -04:00
ce79f0112f Remove flask_enabled 2025-04-23 20:52:58 -04:00
4c53c13e79 Ensure filter is set
Ensure the filter is set when a client reset happens
2025-04-23 20:52:02 -04:00
5469610779 Fixed a problem with WeatherPacket
WeatherPacket was calling self.filter_for_send, which doesn't
exist.  It's self._filter_for_send.
2025-04-23 20:52:02 -04:00
1c39546bb9 Reworked the entire client and drivers
This patch includes a completely reworked client structure.
There is now only 1 client object, that loads the appropriate
drivers.  The drivers are fake, aprsis and tcpkiss.

The TCPKISS client was written from scratch to avoid using asyncio.
Asyncion is nothing but a pain in the ass.
2025-04-23 20:52:02 -04:00
8f471c229c removed old flask_enabled global 2025-04-23 10:06:44 -04:00
2fcd574f12 Fixed setup for AVWXWeatherPlugin
This ensures that during setup() the plugin sets itself
to enabled if all checks pass.
2025-04-23 09:59:53 -04:00
44e2898c3f
Merge pull request #193 from craigerl/docker-compose
Update the docker-compose.yml
2025-04-22 09:16:37 -04:00
5a2bf6f3ba Update the docker-compose.yml
This updates the docker-compose.yml example file to show
how to install 2 plugins for the aprsd-server container
and how to deploy the admin interface container.
2025-04-21 15:53:14 -04:00
ad1e62b17c
Merge pull request #186 from pheezer/master
Use OpenWeatherMap One Call v3.0 API
2025-03-14 07:52:18 -04:00
Philip Duvall
bd83e53838
Merge branch 'master' into master 2025-03-07 22:06:44 -07:00
6dba56f74d Changelog for 4.1.2 4.1.2 2025-03-06 17:11:57 -05:00
d262589313 Allow passing in a custom handler to setup_logging
This adds the ability to pass in a custom log handler during
startup in the log.setup_logging().
2025-03-06 17:09:40 -05:00
7ed8028307 4.1.1 release 4.1.1 2025-03-05 17:00:12 -05:00
94ba915ed4 Fixed some more ruff checks
this updates some code to fix any more 'ruff check' failures.
2025-03-05 16:48:18 -05:00
2b185ee1b8 Update requirements
This removes the hard coded requirement for the old rich lib.
2025-03-04 14:01:27 -05:00
Philip Duvall
16bfda431c use OWM onecall v3.0 2025-03-01 09:29:05 -07:00
c1c89fd2c2 Added threads.service
This is just a handy wrapper to inject all the threads a service wants
to start and then start them all at once, and then join them all.
2025-02-28 17:16:53 -05:00
0fa5b07d4b Added new config to disable logging to console
This patch adds a new config setting to the logging
section that allows the user to disable logging to stdout.
This is useful for terminal UI apps :)
2025-02-26 17:41:40 -05:00
a3cda9f37d Update Changelog for 4.1.0 release 4.1.0 2025-02-20 15:15:31 -05:00
06bdb34642 CONF.logging.enable_color option added
This allows the user to turn off ANSI color output for
logging to the console.
2025-02-20 12:44:16 -05:00
4fd64a3c25
Merge pull request #184 from craigerl/packet_filtering
Added new PacketFilter mechanism
2025-02-19 16:45:10 -05:00
361663e7d2 Changed Objectstore log to debug
This should help silence the log a bit.
2025-02-19 16:38:48 -05:00
fd517b3218 updated gitignore 2025-02-19 16:38:48 -05:00
e9e7e6b59f Fixed some pep8 failures. 2025-02-19 16:38:47 -05:00
52dac7e0a0 Added new PacketFilter mechanism
This patch adds the new PacketFilter class as a generic mechanism
for doing packet filtering during the packet processing phase of
recieving packets.

The packet phases are:
1. reception and stats collection
2. packet processing.

Each phase has a single thread for handling that phase.

Phase 1:
The ARPSDRXThread connects to the APRS client, and gets packets
from the client.  Then it puts the packet through the Collector
for stats and tracking.  Then the packet is put into the packet_queue.

Phase 2:
Packets are pulled from the packet_queue.  Then packets are run
through the PacketFilter mechanism, then processed depending
on the command being run.
By default there is 1 loaded packet filter, which is the
DupePacketFilter which removes "duplicate" packets that aprsd has
already seen and processed within the configured time frame.

This PacketFilter mechanism allows an external extension or plugin
to add/remove packet filters at will depending on the function
of the extension or plugin.   For example, this allows an extension
to get a packet and push the packet into an MQTT queue.
2025-02-19 16:38:47 -05:00