mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-13 11:29:58 +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:
parent
a37bd7c974
commit
776e8c7b3c
29 changed files with 108 additions and 116 deletions
|
@ -4770,10 +4770,9 @@ if (buildKey) {
|
|||
// Run status
|
||||
|
||||
const int gyroRate = getTaskDeltaTimeUs(TASK_GYRO) == 0 ? 0 : (int)(1000000.0f / ((float)getTaskDeltaTimeUs(TASK_GYRO)));
|
||||
int rxRate = getCurrentRxIntervalUs();
|
||||
if (rxRate != 0) {
|
||||
rxRate = (int)(1000000.0f / ((float)rxRate));
|
||||
}
|
||||
|
||||
int rxRate = getRxRateValid() ? getCurrentRxRateHz() : 0;
|
||||
|
||||
const int systemRate = getTaskDeltaTimeUs(TASK_SYSTEM) == 0 ? 0 : (int)(1000000.0f / ((float)getTaskDeltaTimeUs(TASK_SYSTEM)));
|
||||
cliPrintLinef("CPU:%d%%, cycle time: %d, GYRO rate: %d, RX rate: %d, System rate: %d",
|
||||
constrain(getAverageSystemLoadPercent(), 0, LOAD_PERCENTAGE_ONE), getTaskDeltaTimeUs(TASK_GYRO), gyroRate, rxRate, systemRate);
|
||||
|
@ -4960,12 +4959,11 @@ static void cliRcSmoothing(const char *cmdName, char *cmdline)
|
|||
if (rxConfig()->rc_smoothing_mode) {
|
||||
cliPrintLine("FILTER");
|
||||
if (rcSmoothingAutoCalculate()) {
|
||||
const uint16_t smoothedRxRateHz = lrintf(rcSmoothingData->smoothedRxRateHz);
|
||||
cliPrint("# Detected Rx frequency: ");
|
||||
if (getCurrentRxIntervalUs() == 0) {
|
||||
cliPrintLine("NO SIGNAL");
|
||||
if (getRxRateValid()) {
|
||||
cliPrintLinef("%dHz", lrintf(rcSmoothingData->smoothedRxRateHz));
|
||||
} else {
|
||||
cliPrintLinef("%dHz", smoothedRxRateHz);
|
||||
cliPrintLine("NO SIGNAL");
|
||||
}
|
||||
}
|
||||
cliPrintf("# Active setpoint cutoff: %dhz ", rcSmoothingData->setpointCutoffFrequency);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue