1
0
Fork 0
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:
Konstantin Sharlaimov 2018-04-19 17:45:11 +10:00 committed by GitHub
commit c9d0a98556
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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();
}