This patch updates the Makefile to allow for creating
development vs runtime python virtual environments.
If you only want to run aprsd commands
make run
If you want to work on aprsd code
make dev
the device detector was taking 1 minute on a raspi to parse out the
user-agent string from the browser. user-agents takes 2 seconds,
which still isn't great, but 'doable' for the webchat interface.
twine is only used for building a distribution and uploading
to pypi. Unfortunately it has a dependency that pulls in
cryptography which is painful on rpi systems as it requires
the latest version of rustc and cargo.
This patch refactors the rx threads a bit to reuse some code
responsible for processing acks when packets are received.
This also eliminates a custom thread in the webchat command for
processing received packets now that there is common code in the base
classes.
This patch fixes an issue where aprsd was deciding if it was
supposed to process a packet destined for itself or not. It was
making a case sensitive comparison. This patch makes that comparison
case insensitive for the callsign itself.
This patchset allow getting the GPS coordinates from the browser's
geolocation API (which can be denied by user), then send's the GPS
coordinates to aprsd via socketio and then aprsd sends a beacon.
This allows the APRS network to know the location of the person running
the webchat app via browser so packets can get routed back to it.
This patch reworks the KISS client to get rid of
aioax25 as it was too difficult to work with due to
heavy use of asyncio.
Switched to the kiss3 pypi library.
This patch updates the main aprsd threads class to use
a shared queue to notify all aprsd thread classes they need
to exit. This ensures any closing down of sockets, etc happens from
inside the context of the thread itself, not the MainThread that
calls stop.
This patch changes how aprsd identifies itself when connected to
any client, which is not relying on the login for each client.
There are 3 supported clients currently
aprsis,
tcpkiss
serialkiss.
Each client has their own potential login/callsign to connect
to the remote. This patch tells aprsd to use the new config option
aprsd.callsign as a means to identify itself. It will accept
packets as <aprsd.callsign> and reply as <aprsd.callsign> regardless
of which client object is being used to connect to the remote.
Note: this breaks backwards compatibility. This patch now requires
the new config option
aprsd:
callsign: <callsign>
This patch creates a threads directory and separates out
the contents of threads.py into separate files in the
threads directory to make it easier to find and maintain.