I think another major restructuring is due soon, for two reasons:
A "master manager" would be useful for keeping track of the PocketGeiger and D3S processes on the same Pi, and potentially more devices in the future. (It could also make it harder to accidentally put the device in a state where it can't get on-the-fly updates.)
There are now several different types of data packets that get sent to the server, including PocketGeiger old data format (which could actually be removed now), PocketGeiger new data format, D3S data, and log messages. They share a lot of code such as encryption and network error handling. With some careful thought, we might implement a DataPacket base class and a variety of classes inheriting from it.
I think another major restructuring is due soon, for two reasons:
DataPacket
base class and a variety of classes inheriting from it.