This release includes a really good protocol improvement. While investigating/fixing:
I noticed a funny side effect of lora being so slow: Usually when making a protocol there isn’t much need to use message priority to change the order of transmission (because interfaces are fairly fast). But for lora where packets can take a few seconds each, it is very important to make sure that critical packets are sent ASAP. In the case of meshtastic that means we want to send protocol acks as soon as possible (to prevent unneeded retransmissions), we want routing messages to be sent next, then messages marked as reliable and finally ‘background’ packets like periodic position updates.
So I bit the bullet and implemented a new (internal - not sent over the air) field in MeshPacket called ‘priority’. And the transmission queue in the router object is now a priority queue.
I also updated the position and node info plugins to never have more than one transmission queued. This also helps save airtime & power.
The combined effect of these changes is a dramatic increase in speed and reliability for ‘busy’ networks. Also the networks will become much less busy, because we can prevent unneeded flood routing events sooner.
The device build is up now. The android app (which also includes a layout fix for @luxonn) will go up in about an hour.