Fixes a race condition on proto list class init between UI and mixer task
This commit is contained in:
committed by
Peter Feerick
parent
6684489f01
commit
ba03d02b7a
@@ -584,8 +584,8 @@ bool setupPulsesInternalModule()
|
||||
|
||||
if (moduleState[INTERNAL_MODULE].protocol != protocol) {
|
||||
intmoduleStop();
|
||||
moduleState[INTERNAL_MODULE].protocol = protocol;
|
||||
enablePulsesInternalModule(protocol);
|
||||
moduleState[INTERNAL_MODULE].protocol = protocol;
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
@@ -612,8 +612,8 @@ bool setupPulsesExternalModule()
|
||||
|
||||
if (moduleState[EXTERNAL_MODULE].protocol != protocol) {
|
||||
extmoduleStop();
|
||||
moduleState[EXTERNAL_MODULE].protocol = protocol;
|
||||
enablePulsesExternalModule(protocol);
|
||||
moduleState[EXTERNAL_MODULE].protocol = protocol;
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -133,18 +133,22 @@ void telemetryWakeup()
|
||||
#endif
|
||||
|
||||
#if defined(INTERNAL_MODULE_MULTI)
|
||||
if (intmoduleFifo.pop(data)) {
|
||||
LOG_TELEMETRY_WRITE_START();
|
||||
do {
|
||||
processMultiTelemetryData(data, INTERNAL_MODULE);
|
||||
LOG_TELEMETRY_WRITE_BYTE(data);
|
||||
} while (intmoduleFifo.pop(data));
|
||||
}
|
||||
if (isModuleMultimodule(INTERNAL_MODULE)) {
|
||||
if (intmoduleFifo.pop(data)) {
|
||||
LOG_TELEMETRY_WRITE_START();
|
||||
do {
|
||||
processMultiTelemetryData(data, INTERNAL_MODULE);
|
||||
LOG_TELEMETRY_WRITE_BYTE(data);
|
||||
} while (intmoduleFifo.pop(data));
|
||||
}
|
||||
#if defined(MULTI_PROTOLIST)
|
||||
if (MultiRfProtocols::instance(INTERNAL_MODULE)->isScanning()) {
|
||||
MultiRfProtocols::instance(INTERNAL_MODULE)->scanReply();
|
||||
}
|
||||
if ((moduleState[INTERNAL_MODULE].protocol ==
|
||||
PROTOCOL_CHANNELS_MULTIMODULE) &&
|
||||
MultiRfProtocols::instance(INTERNAL_MODULE)->isScanning()) {
|
||||
MultiRfProtocols::instance(INTERNAL_MODULE)->scanReply();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(PCBNV14)
|
||||
@@ -170,11 +174,13 @@ void telemetryWakeup()
|
||||
|
||||
#if defined(MULTI_PROTOLIST)
|
||||
if (isModuleMultimodule(EXTERNAL_MODULE) &&
|
||||
MultiRfProtocols::instance(EXTERNAL_MODULE)->isScanning()) {
|
||||
MultiRfProtocols::instance(EXTERNAL_MODULE)->scanReply();
|
||||
(moduleState[EXTERNAL_MODULE].protocol ==
|
||||
PROTOCOL_CHANNELS_MULTIMODULE) &&
|
||||
MultiRfProtocols::instance(EXTERNAL_MODULE)->isScanning()) {
|
||||
MultiRfProtocols::instance(EXTERNAL_MODULE)->scanReply();
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#elif defined(PCBSKY9X)
|
||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY) {
|
||||
while (telemetrySecondPortReceive(data)) {
|
||||
|
||||
Reference in New Issue
Block a user