This adds a new option in the aprsd.conf [DEFAULT] section
that denotes who is the callsign that officially owns this APRSD
instance. This will be used for sending the instance info to the
registry. It's useful when the callsign used by the instance is
something useful on the APRS network, which isn't necessarily the
same as the person that owns it.
It's been confusing for a while that when we configured aprsd,
we had to enter the callsign in the [DEFAULT] section and
the [aprs_network] section.
This patch removes the login from the aprs_network section. aprsd
will now use the main callsign in the [DEFAULT] section as the callsign
to login to the aprsis network.
This patch changes how plugins are processed. This patch processes
each plugin in a separate thread using a threadpool. This allows
us to process packets through plugins in parallel. Previous to this
patch we processed plugins serially, which could mean that it takes
longer to get a single packet through all of the plugins, as each
plugin could be blocking for a while.
The Main RX Thread that runs the client.consumer() call used to
parse packets as soon as it got them. This lead to an iffecient
strategy for listen and acquire packets as fast as possible.
The APRSDRXThread now gets the raw packet from the client and
shoves it on the packet_queue. The other threads that are looking
for packets on the packet_queue will parse the raw packet with
aprslib. This allows us to capture packets as quickly as we can,
and then process those packets in the secondary threads.
This prevents a bottleneck capturing packets.
This patch fixes an issue with rebuilding a
WeatherPacket from json. The 'weather' key wasn't
in the json that gets generated from the packet.to_json()
because it isn't part of the packet declaration. The 'weather'
key only exists in the json that comes from aprslib, when decoding
a raw packet string -> json -> WeatherPacket.
The watchList was updating the last seen during RX time.
This happens before the NotifySeenPlugin even sees the packet,
so the callsign is never 'old'. this patch fixes that, so the
watch list works.
this adds the new logging options for all commands.
By default now the output doesn't show the thread and the log level.
This makes it easier to read the logs. You can add them back by
passing in --show-thread --show-level