diff --git a/radio/src/pulses/modules_helpers.h b/radio/src/pulses/modules_helpers.h index a16e24dcf..15df24165 100644 --- a/radio/src/pulses/modules_helpers.h +++ b/radio/src/pulses/modules_helpers.h @@ -245,29 +245,15 @@ inline bool isModuleRFAccess(uint8_t idx) } } -#if defined(DSM2) -inline bool isModuleDSM2(uint8_t idx) +inline bool isModuleDSM2(uint8_t moduleIdx) { - return idx == EXTERNAL_MODULE && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_DSM2; + return g_model.moduleData[moduleIdx].type == MODULE_TYPE_DSM2; } -#else -inline bool isModuleDSM2(uint8_t idx) -{ - return false; -} -#endif -#if defined(SBUS) -inline bool isModuleSBUS(uint8_t idx) +inline bool isModuleSBUS(uint8_t moduleIdx) { - return idx == EXTERNAL_MODULE && g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_SBUS; + return g_model.moduleData[moduleIdx].type == MODULE_TYPE_SBUS; } -#else -inline bool isModuleSBUS(uint8_t idx) -{ - return false; -} -#endif // order is the same as in enum Protocols in myeeprom.h (none, ppm, pxx, pxx2, dsm, crossfire, multi, r9m, r9m2, sbus) static const int8_t maxChannelsModules[] = { 0, 8, 8, 16, -2, 8, 4, 8, 16, 8}; // relative to 8! @@ -486,11 +472,11 @@ inline void setModuleType(uint8_t moduleIdx, uint8_t moduleType) ModuleData & moduleData = g_model.moduleData[moduleIdx]; memclear(&moduleData, sizeof(ModuleData)); moduleData.type = moduleType; - moduleData.channelsCount = defaultModuleChannels_M8(EXTERNAL_MODULE); - if (isModuleSBUS(moduleIdx)) + moduleData.channelsCount = defaultModuleChannels_M8(moduleIdx); + if (moduleData.type == MODULE_TYPE_SBUS) moduleData.sbus.refreshRate = -31; - else if (isModuleTypePPM(moduleData.type)) - setDefaultPpmFrameLength(EXTERNAL_MODULE); + else if (moduleData.type == MODULE_TYPE_PPM) + setDefaultPpmFrameLength(moduleIdx); } #endif // _MODULES_HELPERS_H_