mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-26 01:35:35 +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);
|
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)
|
void configureLtmTelemetryPort(void)
|
||||||
{
|
{
|
||||||
if (!portConfig) {
|
if (!portConfig) {
|
||||||
|
@ -410,14 +425,6 @@ void configureLtmTelemetryPort(void)
|
||||||
baudRateIndex = BAUD_19200;
|
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 */
|
/* Sanity check that we can support the scheduler */
|
||||||
if (baudRateIndex == BAUD_2400 && telemetryConfig()->ltmUpdateRate == LTM_RATE_NORMAL)
|
if (baudRateIndex == BAUD_2400 && telemetryConfig()->ltmUpdateRate == LTM_RATE_NORMAL)
|
||||||
ltm_schedule = ltm_medium_schedule;
|
ltm_schedule = ltm_medium_schedule;
|
||||||
|
@ -436,14 +443,18 @@ void checkLtmTelemetryState(void)
|
||||||
if (portConfig && telemetryCheckRxPortShared(portConfig)) {
|
if (portConfig && telemetryCheckRxPortShared(portConfig)) {
|
||||||
if (!ltmEnabled && telemetrySharedPort != NULL) {
|
if (!ltmEnabled && telemetrySharedPort != NULL) {
|
||||||
ltmPort = telemetrySharedPort;
|
ltmPort = telemetrySharedPort;
|
||||||
|
configureLtmScheduler();
|
||||||
ltmEnabled = true;
|
ltmEnabled = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
bool newTelemetryEnabledValue = telemetryDetermineEnabledState(ltmPortSharing);
|
bool newTelemetryEnabledValue = telemetryDetermineEnabledState(ltmPortSharing);
|
||||||
if (newTelemetryEnabledValue == ltmEnabled)
|
if (newTelemetryEnabledValue == ltmEnabled)
|
||||||
return;
|
return;
|
||||||
if (newTelemetryEnabledValue)
|
if (newTelemetryEnabledValue){
|
||||||
|
configureLtmScheduler();
|
||||||
configureLtmTelemetryPort();
|
configureLtmTelemetryPort();
|
||||||
|
|
||||||
|
}
|
||||||
else
|
else
|
||||||
freeLtmTelemetryPort();
|
freeLtmTelemetryPort();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue