mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-25 01:05:21 +03:00
Merge pull request #3030 from giacomo892/ltm_shared_scheduler_fix
Fix LTM Scheduler not being set if port is shared.
This commit is contained in:
commit
c9d0a98556
1 changed files with 20 additions and 9 deletions
|
@ -400,6 +400,21 @@ void initLtmTelemetry(void)
|
|||
ltmPortSharing = determinePortSharing(portConfig, FUNCTION_TELEMETRY_LTM);
|
||||
}
|
||||
|
||||
|
||||
|
||||
static void configureLtmScheduler(void)
|
||||
{
|
||||
|
||||
/* setup scheduler, default to 'normal' */
|
||||
if (telemetryConfig()->ltmUpdateRate == LTM_RATE_MEDIUM)
|
||||
ltm_schedule = ltm_medium_schedule;
|
||||
else if (telemetryConfig()->ltmUpdateRate == LTM_RATE_SLOW)
|
||||
ltm_schedule = ltm_slow_schedule;
|
||||
else
|
||||
ltm_schedule = ltm_normal_schedule;
|
||||
|
||||
}
|
||||
|
||||
void configureLtmTelemetryPort(void)
|
||||
{
|
||||
if (!portConfig) {
|
||||
|
@ -410,14 +425,6 @@ void configureLtmTelemetryPort(void)
|
|||
baudRateIndex = BAUD_19200;
|
||||
}
|
||||
|
||||
/* setup scheduler, default to 'normal' */
|
||||
if (telemetryConfig()->ltmUpdateRate == LTM_RATE_MEDIUM)
|
||||
ltm_schedule = ltm_medium_schedule;
|
||||
else if (telemetryConfig()->ltmUpdateRate == LTM_RATE_SLOW)
|
||||
ltm_schedule = ltm_slow_schedule;
|
||||
else
|
||||
ltm_schedule = ltm_normal_schedule;
|
||||
|
||||
/* Sanity check that we can support the scheduler */
|
||||
if (baudRateIndex == BAUD_2400 && telemetryConfig()->ltmUpdateRate == LTM_RATE_NORMAL)
|
||||
ltm_schedule = ltm_medium_schedule;
|
||||
|
@ -436,14 +443,18 @@ void checkLtmTelemetryState(void)
|
|||
if (portConfig && telemetryCheckRxPortShared(portConfig)) {
|
||||
if (!ltmEnabled && telemetrySharedPort != NULL) {
|
||||
ltmPort = telemetrySharedPort;
|
||||
configureLtmScheduler();
|
||||
ltmEnabled = true;
|
||||
}
|
||||
} else {
|
||||
bool newTelemetryEnabledValue = telemetryDetermineEnabledState(ltmPortSharing);
|
||||
if (newTelemetryEnabledValue == ltmEnabled)
|
||||
return;
|
||||
if (newTelemetryEnabledValue)
|
||||
if (newTelemetryEnabledValue){
|
||||
configureLtmScheduler();
|
||||
configureLtmTelemetryPort();
|
||||
|
||||
}
|
||||
else
|
||||
freeLtmTelemetryPort();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue