Stdlcd UI for Lemon-Rx DSMP
This commit is contained in:
committed by
Raphael Coeffic
parent
2c6bd12c6e
commit
9e40aaa215
@@ -986,6 +986,7 @@ void menuModelSetup(event_t event)
|
||||
g_model.moduleData[moduleIdx].type = reusableBuffer.moduleSetup.newType;
|
||||
reusableBuffer.moduleSetup.previousType = reusableBuffer.moduleSetup.newType;
|
||||
setModuleType(moduleIdx, g_model.moduleData[moduleIdx].type);
|
||||
storageDirty(EE_MODEL);
|
||||
}
|
||||
else if (g_model.moduleData[moduleIdx].type == MODULE_TYPE_NONE) {
|
||||
g_model.moduleData[moduleIdx].type = reusableBuffer.moduleSetup.newType;
|
||||
@@ -1005,7 +1006,7 @@ void menuModelSetup(event_t event)
|
||||
}
|
||||
else
|
||||
#endif
|
||||
reusableBuffer.moduleSetup.newType = checkIncDec(event, reusableBuffer.moduleSetup.newType, MODULE_TYPE_NONE, MODULE_TYPE_MAX, EE_MODEL,
|
||||
reusableBuffer.moduleSetup.newType = checkIncDec(event, reusableBuffer.moduleSetup.newType, MODULE_TYPE_NONE, MODULE_TYPE_MAX, 0,
|
||||
isExternalModuleAvailable);
|
||||
break;
|
||||
|
||||
@@ -1519,6 +1520,7 @@ void menuModelSetup(event_t event)
|
||||
lcdDrawText(lcdNextPos + 2, y, STR_MODULE_RANGE, l_posHorz == 2 ? attr : 0);
|
||||
}
|
||||
uint8_t newFlag = 0;
|
||||
uint8_t oldFlag = moduleState[moduleIdx].mode;
|
||||
#if defined(MULTIMODULE)
|
||||
if (isModuleMultimodule(moduleIdx) &&
|
||||
getMultiBindStatus(moduleIdx) == MULTI_BIND_FINISHED) {
|
||||
@@ -1548,7 +1550,7 @@ void menuModelSetup(event_t event)
|
||||
startBindMenu(moduleIdx);
|
||||
continue;
|
||||
}
|
||||
if (moduleState[moduleIdx].mode == MODULE_MODE_BIND) {
|
||||
if (oldFlag == MODULE_MODE_BIND) {
|
||||
newFlag = MODULE_MODE_BIND;
|
||||
}
|
||||
else {
|
||||
@@ -1560,6 +1562,12 @@ void menuModelSetup(event_t event)
|
||||
else {
|
||||
newFlag = MODULE_MODE_BIND;
|
||||
}
|
||||
|
||||
if (!event && (oldFlag != newFlag) &&
|
||||
(oldFlag == MODULE_MODE_NORMAL)) {
|
||||
// Bind mode switched off from somewhere else
|
||||
s_editMode = 0;
|
||||
}
|
||||
}
|
||||
else if (l_posHorz == 2) {
|
||||
newFlag = MODULE_MODE_RANGECHECK;
|
||||
@@ -1582,6 +1590,12 @@ void menuModelSetup(event_t event)
|
||||
setMultiBindStatus(moduleIdx, MULTI_BIND_INITIATED);
|
||||
}
|
||||
#endif
|
||||
if (isModuleDSMP(moduleIdx) &&
|
||||
(oldFlag != newFlag) &&
|
||||
(oldFlag == MODULE_MODE_BIND)) {
|
||||
// Restart DSMP module when exiting bind mode
|
||||
restartModule(moduleIdx);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -956,6 +956,7 @@ void menuModelSetup(event_t event)
|
||||
g_model.moduleData[EXTERNAL_MODULE].type = reusableBuffer.moduleSetup.newType;
|
||||
reusableBuffer.moduleSetup.previousType = reusableBuffer.moduleSetup.newType;
|
||||
setModuleType(EXTERNAL_MODULE, g_model.moduleData[EXTERNAL_MODULE].type);
|
||||
storageDirty(EE_MODEL);
|
||||
}
|
||||
else if (g_model.moduleData[EXTERNAL_MODULE].type == MODULE_TYPE_NONE) {
|
||||
g_model.moduleData[EXTERNAL_MODULE].type = reusableBuffer.moduleSetup.newType;
|
||||
@@ -965,7 +966,7 @@ void menuModelSetup(event_t event)
|
||||
if (s_editMode > 0) {
|
||||
switch (menuHorizontalPosition) {
|
||||
case 0:
|
||||
reusableBuffer.moduleSetup.newType = checkIncDec(event, reusableBuffer.moduleSetup.newType, MODULE_TYPE_NONE, MODULE_TYPE_MAX, EE_MODEL, isExternalModuleAvailable);
|
||||
reusableBuffer.moduleSetup.newType = checkIncDec(event, reusableBuffer.moduleSetup.newType, MODULE_TYPE_NONE, MODULE_TYPE_MAX, 0, isExternalModuleAvailable);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
@@ -1360,6 +1361,7 @@ void menuModelSetup(event_t event)
|
||||
lcdDrawText(lcdNextPos + FW, y, STR_MODULE_RANGE, l_posHorz == 2 ? attr : 0);
|
||||
}
|
||||
uint8_t newFlag = 0;
|
||||
uint8_t oldFlag = moduleState[moduleIdx].mode;
|
||||
#if defined(MULTIMODULE)
|
||||
if (isModuleMultimodule(moduleIdx) &&
|
||||
getMultiBindStatus(moduleIdx) == MULTI_BIND_FINISHED) {
|
||||
@@ -1381,7 +1383,7 @@ void menuModelSetup(event_t event)
|
||||
startBindMenu(moduleIdx);
|
||||
continue;
|
||||
}
|
||||
if (moduleState[moduleIdx].mode == MODULE_MODE_BIND) {
|
||||
if (oldFlag == MODULE_MODE_BIND) {
|
||||
newFlag = MODULE_MODE_BIND;
|
||||
}
|
||||
else {
|
||||
@@ -1393,6 +1395,12 @@ void menuModelSetup(event_t event)
|
||||
else {
|
||||
newFlag = MODULE_MODE_BIND;
|
||||
}
|
||||
|
||||
if (!event && (oldFlag != newFlag) &&
|
||||
(oldFlag == MODULE_MODE_NORMAL)) {
|
||||
// Bind mode switched off from somewhere else
|
||||
s_editMode = 0;
|
||||
}
|
||||
}
|
||||
else if (l_posHorz == 2) {
|
||||
newFlag = MODULE_MODE_RANGECHECK;
|
||||
@@ -1406,6 +1414,12 @@ void menuModelSetup(event_t event)
|
||||
setMultiBindStatus(moduleIdx, MULTI_BIND_INITIATED);
|
||||
}
|
||||
#endif
|
||||
if (isModuleDSMP(moduleIdx) &&
|
||||
(oldFlag != newFlag) &&
|
||||
(oldFlag == MODULE_MODE_BIND)) {
|
||||
// Restart DSMP module when exiting bind mode
|
||||
restartModule(moduleIdx);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -160,7 +160,7 @@ inline uint8_t MODULE_BIND_ROWS(int moduleIdx)
|
||||
else
|
||||
return 2;
|
||||
}
|
||||
else if (isModuleXJTD8(moduleIdx) || isModuleSBUS(moduleIdx) || isModuleAFHDS3(moduleIdx)) {
|
||||
else if (isModuleXJTD8(moduleIdx) || isModuleSBUS(moduleIdx) || isModuleAFHDS3(moduleIdx) || isModuleDSMP(moduleIdx)) {
|
||||
return 1;
|
||||
}
|
||||
else if (isModulePPM(moduleIdx) || isModulePXX1(moduleIdx) || isModulePXX2(moduleIdx) || isModuleDSM2(moduleIdx)) {
|
||||
|
||||
Reference in New Issue
Block a user