Backpack icon indicating copy to clipboard operation
Backpack copied to clipboard

Make 1 in 10 HEARTBEATS from the MAV get broadcasted so new GCSes can find the Backpack

Open MUSTARDTIGERFPV opened this issue 1 year ago • 1 comments

If we always unicast, then a newly-arrived GCS won't be able to connect since the MAVLink traffic will be going to the IP of the old GCS until we receive a heartbeat from the new GCS - which we won't because it's not seeing heartbeats. This broadcasts 1/10 heartbeats so that newly-joining GCSes can find the Backpack.

MUSTARDTIGERFPV avatar Aug 10 '24 05:08 MUSTARDTIGERFPV

This causes the Pkts Lost counter in MP to count up incorrectly because we've broken packet ordering; I'll fix this.

MUSTARDTIGERFPV avatar Aug 10 '24 05:08 MUSTARDTIGERFPV

multiple connection will work badly, because backpack devWIfi.cpp assumes that there will be only one client, which IP address gets stored into one variable "gcsIP" - which will get reset every time UDP packet is received from any host... so real speed will be appalling

jiri-jirus avatar Sep 30 '24 18:09 jiri-jirus

multiple connection will work badly, because backpack devWIfi.cpp assumes that there will be only one client, which IP address gets stored into one variable "gcsIP" - which will get reset every time UDP packet is received from any host... so real speed will be appalling

Yes, that's exactly how multiple connections would work. The idea of this is to improve the process of switching GCSes without requiring a restart of the backpack.

MUSTARDTIGERFPV avatar Sep 30 '24 20:09 MUSTARDTIGERFPV

well sorry, instead of multiple I mean "concurrent". which is, I hope, not supposed to work this way. btw, mavesp8266 works by having a timeout on heartbeat from GCS, which makes much more sense in this state of concurrent GCS support.

jiri-jirus avatar Oct 01 '24 08:10 jiri-jirus