1
0
mirror of https://github.com/craigerl/aprsd.git synced 2026-06-01 21:54:42 -04:00
Commit Graph

742 Commits

Author SHA1 Message Date
hemna 5ece2a10ef Reworked README and documentation 2025-12-10 14:57:12 -05:00
hemna 2b2dbb114b ensure join has timeout 2025-12-09 17:06:23 -05:00
hemna ebbde0ccde Ensure should quit returns a value 2025-12-09 17:04:49 -05:00
hemna e821fbf53e fixed some formatting issues with filter.py 2025-12-09 17:03:05 -05:00
hemna c34a82108b fixed tox failures 2025-11-26 20:28:25 -05:00
hemna 50022e1e9e Got the serial KISS driver working 2025-11-26 16:19:37 -05:00
hemna 6bd0f50dc0 Move some class vars out of __init__
This ensures that connected doesn't change between calls
to the constructor.
2025-11-26 16:16:08 -05:00
hemna d28ed86f31 Added @trace.no_trace
this adds the new decorator to stop tracing specific methods
when tracing is enabled.  this is useful when debugging.
2025-11-26 16:15:02 -05:00
hemna a8822672d8 Added SerialKISSDriver
This refactors the tcp kiss driver into the base class KISSDdriver
and implements the serial kiss driver.
2025-11-26 13:49:21 -05:00
hemna 909827545c Added new passcode command
Now users can generate an aprs passcode for a callsign

aprsd passcode WB4BOR
2025-10-22 09:46:07 -04:00
hemna be26f31896 remove some debug noise 2025-10-17 15:40:20 -04:00
hemna 6c3c16f09d Remove update_timestamp during _send_direct
This was added 2 years ago with no explanation.
This is causing ack tracking problems as the 2nd time
the packet is transmitted (because of not getting an ack),
the timestamp changes and then the ack lookup doesn't work right.
2025-10-17 13:01:17 -04:00
hemna 24019ae353 Fixed client base class connection tracking
This patch fixes some issues with the base client class
that caused unnecessary reconnections.
2025-10-10 11:06:45 -04:00
hemna 056acc3ba5 Fixed aprsis client connected tracking
Every time the setup_connection() was called it forced
the connected = False, which effectively ignored previous
successful connections.
2025-10-10 11:05:33 -04:00
hemna 093ada06b1 Make fake driver conform to protocol
the send method is supposed to return a boolean.
2025-10-10 11:00:34 -04:00
hemna 7c5d9ee92d Driver protocol is_alive is property
Update the driver protocol to make the is_alive() a property.
2025-10-10 10:59:39 -04:00
hemna 3d353dcd26 Cleanup of tcpkiss
Removed some unneeded logic based around running.  This
patch just uses the connected attribute instead.
2025-10-10 10:58:44 -04:00
hemna 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
hemna 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
hemna 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
hemna 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
hemna 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.
2025-10-08 08:33:39 -04:00
hemna 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
hemna 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
hemna e15322ede3 Added package
refactored some package related code to the new
utils/package.py
2025-10-05 16:27:51 -04:00
hemna 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
hemna 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
hemna 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
hemna 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
hemna 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
hemna 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
hemna 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
hemna 74887af507 Fix tox failures
With the UnknownPacket
2025-06-17 10:51:42 -04:00
hemna 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
hemna 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
hemna 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
hemna 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
hemna ce79f0112f Remove flask_enabled 2025-04-23 20:52:58 -04:00
hemna 4c53c13e79 Ensure filter is set
Ensure the filter is set when a client reset happens
2025-04-23 20:52:02 -04:00
hemna 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
hemna 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
hemna 8f471c229c removed old flask_enabled global 2025-04-23 10:06:44 -04:00
hemna 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
Philip Duvall bd83e53838 Merge branch 'master' into master 2025-03-07 22:06:44 -07:00
hemna 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
hemna 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
Philip Duvall 16bfda431c use OWM onecall v3.0 2025-03-01 09:29:05 -07:00
hemna 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
hemna 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
hemna 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