committed by
Raphael Coeffic
parent
03efcdf22c
commit
5960d0aac2
@@ -548,6 +548,10 @@ void perMain()
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
checkFailsafeMulti();
|
||||
#endif
|
||||
|
||||
#if defined(KEYS_GPIO_REG_BIND) && defined(BIND_KEY)
|
||||
bindButtonHandler(evt);
|
||||
#endif
|
||||
|
||||
@@ -710,15 +710,9 @@ static void checkRTCBattery()
|
||||
#endif
|
||||
|
||||
#if defined(PCBFRSKY) || defined(PCBFLYSKY)
|
||||
void checkFailsafe()
|
||||
static void checkFailsafe()
|
||||
{
|
||||
for (int i=0; i<NUM_MODULES; i++) {
|
||||
#if defined(MULTIMODULE)
|
||||
if (isModuleMultimodule(i)) {
|
||||
getMultiModuleStatus(i).requiresFailsafeCheck = true;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if (isModuleFailsafeAvailable(i)) {
|
||||
ModuleData & moduleData = g_model.moduleData[i];
|
||||
if (moduleData.failsafeMode == FAILSAFE_NOT_SET) {
|
||||
|
||||
@@ -232,15 +232,12 @@ static void processMultiStatusPacket(const uint8_t * data, uint8_t module, uint8
|
||||
status.protocolName[0] = 0;
|
||||
}
|
||||
}
|
||||
if (getMultiModuleStatus(module).requiresFailsafeCheck) {
|
||||
getMultiModuleStatus(module).requiresFailsafeCheck = false;
|
||||
|
||||
if (getMultiModuleStatus(module).supportsFailsafe() &&
|
||||
g_model.moduleData[module].failsafeMode == FAILSAFE_NOT_SET) {
|
||||
ALERT(STR_FAILSAFEWARN, STR_NO_FAILSAFE, AU_ERROR);
|
||||
}
|
||||
if (!getMultiModuleStatus(module).failsafeChecked) {
|
||||
getMultiModuleStatus(module).requiresFailsafeCheck = true;
|
||||
getMultiModuleStatus(module).failsafeChecked = true;
|
||||
}
|
||||
|
||||
|
||||
if (wasBinding && !status.isBinding() && getMultiBindStatus(module) == MULTI_BIND_INITIATED)
|
||||
setMultiBindStatus(module, MULTI_BIND_FINISHED);
|
||||
}
|
||||
@@ -695,3 +692,16 @@ void processMultiTelemetryData(uint8_t data, uint8_t module)
|
||||
}
|
||||
}
|
||||
|
||||
void checkFailsafeMulti()
|
||||
{
|
||||
for (int i=0; i<NUM_MODULES; i++) {
|
||||
if (isModuleMultimodule(i) &&
|
||||
getMultiModuleStatus(i).requiresFailsafeCheck) {
|
||||
getMultiModuleStatus(i).requiresFailsafeCheck = false;
|
||||
if (getMultiModuleStatus(i).supportsFailsafe() &&
|
||||
g_model.moduleData[i].failsafeMode == FAILSAFE_NOT_SET) {
|
||||
ALERT(STR_FAILSAFEWARN, STR_NO_FAILSAFE, AU_ERROR);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,6 +104,7 @@ struct MultiModuleStatus {
|
||||
|
||||
uint8_t flags;
|
||||
uint8_t requiresFailsafeCheck;
|
||||
uint8_t failsafeChecked;
|
||||
tmr10ms_t lastUpdate;
|
||||
|
||||
uint8_t protocolPrev = 0;
|
||||
@@ -137,4 +138,6 @@ enum MultiBindStatus : uint8_t {
|
||||
uint8_t getMultiBindStatus(uint8_t module);
|
||||
void setMultiBindStatus(uint8_t module, uint8_t bindStatus);
|
||||
|
||||
void checkFailsafeMulti();
|
||||
|
||||
#endif //OPENTX_MULTI_H
|
||||
|
||||
Reference in New Issue
Block a user