1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-19 22:35:23 +03:00

Refactor Rx code and better support 25Hz links (#13435)

* RX task update rate to 22Hz, to improve 25Hz link stability

* modified Rx code

* add LQ to debug

* use max of frameAge or FrameDelta

* Require a dropouit of 200ms, not 100ms, before RXLOSS

* remove FrameAge, use 150ms timeout 50ms checks

* fix tests and tidy up the comments

* Handle NULL input as before, log frame time

* possible solutions to review comment about names

* Remove rxFrameTimeUs

- prepare for direct use of lastRcFrameTimeUs
- refactor rx_spi callback

* remove global currentRxRateHz

* simplify updateRcRefreshRate

* re-name to recheck interval, return frame time debug

* Calculate RxRate only once

* use rxReceivingSignal for consistency

* use signalReceived not rxDataReceived for consistency

* suggestions from review PL

* move defines, thanks K

* fixes from review, thanks MH

* review changes, undo task interval change

rename bool rxIsReceivingSignal to isRxReceivingSignal
thanks Steve for resolving that tasks changes are not needed
thanks PL for your feedback also

---------

Co-authored-by: Petr Ledvina <ledvinap@hp124.ekotip.cz>
This commit is contained in:
ctzsnooze 2024-10-01 09:23:24 +10:00 committed by GitHub
parent a37bd7c974
commit 776e8c7b3c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
29 changed files with 108 additions and 116 deletions

View file

@ -292,7 +292,7 @@ void updateArmingStatus(void)
// If switch is used for arming then check it is not defaulting to on when the RX link recovers from a fault
if (!isUsingSticksForArming()) {
static bool hadRx = false;
const bool haveRx = rxIsReceivingSignal();
const bool haveRx = isRxReceivingSignal();
const bool justGotRxBack = !hadRx && haveRx;
@ -762,7 +762,7 @@ bool processRx(timeUs_t currentTimeUs)
return false;
}
updateRcRefreshRate(currentTimeUs);
updateRcRefreshRate(currentTimeUs, isRxReceivingSignal());
// in 3D mode, we need to be able to disarm by switch at any time
if (featureIsEnabled(FEATURE_3D)) {