From e894ab07c07ab8a284f89bc487116d1232d01c42 Mon Sep 17 00:00:00 2001 From: Pawel Jalocha Date: Tue, 26 Oct 2021 13:13:10 +0100 Subject: [PATCH] Fix relay rank calc. --- main/ogn.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/main/ogn.h b/main/ogn.h index db8f10e..82dc462 100644 --- a/main/ogn.h +++ b/main/ogn.h @@ -229,7 +229,7 @@ template +Count1s(FEC[0]^RefPacket.FEC[0]) +Count1s((FEC[1]^RefPacket.FEC[1])&0xFFFF); } - void calcRelayRank(int32_t RxAltitude) // [0.1m] altitude of reception + void calcRelayRank(int32_t RxAltitude) // [m] altitude of reception { if(Packet.Header.Emergency) { Rank=0xFF; return; } // emergency packets always highest rank Rank=0; if(Packet.Header.NonPos) return; // only relay position packets @@ -238,9 +238,9 @@ template if(RxRSSI>128) // [-0.5dB] weaker signal => higher rank Rank += (RxRSSI-128)>>2; // 1point/2dB less signal if(Packet.Header.Encrypted) return; // for exncrypted packets we only take signal strength - RxAltitude -= 10*Packet.DecodeAltitude(); // [0.1m] lower altitude => higher rank + RxAltitude -= Packet.DecodeAltitude(); // [m] lower altitude => higher rank if(RxAltitude>0) - Rank += RxAltitude>>9; // 2points/100m of altitude below + Rank += RxAltitude>>6; // 1points/64m of altitude below int16_t ClimbRate = Packet.DecodeClimbRate(); // [0.1m/s] higher sink rate => higher rank if(ClimbRate<0) Rank += (-ClimbRate)>>3; // 1point/0.8m/s of sink