New protocol and telemetry: FlySky AFHDS2A (#3948)

* New protocol for multimode FlySky AFHDS2A

* Also add AFHDS2A protocol to companion

* fix compile error
This commit is contained in:
Arne Schwabe
2016-10-25 22:51:34 +02:00
committed by Bertrand Songis
parent d218b33609
commit 92dde79dec
23 changed files with 179 additions and 71 deletions
+18 -3
View File
@@ -671,6 +671,9 @@ bool menuModelSetup(event_t event)
case MM_RF_PROTO_HONTAI:
lcdDrawTextAtIndex(MODEL_SETUP_4TH_COLUMN, y, STR_SUBTYPE_HONTAI, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==2 ? attr : 0);
break;
case MM_RF_PROTO_FS_AFHDS2A:
lcdDrawTextAtIndex(MODEL_SETUP_4TH_COLUMN, y, STR_SUBTYPE_AFHDS2A , g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==2 ? attr : 0);
break;
case MM_RF_CUSTOM_SELECTED:
lcdDrawNumber(MODEL_SETUP_4TH_COLUMN, y, g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false), menuHorizontalPosition==2 ? attr : 0, 2);
lcdDrawNumber(MODEL_SETUP_4TH_COLUMN + MODEL_SETUP_BIND_OFS, y, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==3 ? attr : 0, 2);
@@ -738,6 +741,7 @@ bool menuModelSetup(event_t event)
case MM_RF_PROTO_MT99XX:
case MM_RF_PROTO_FRSKY:
case MM_RF_PROTO_DSM2:
case MM_RF_PROTO_FS_AFHDS2A:
CHECK_INCDEC_MODELVAR(event, g_model.moduleData[EXTERNAL_MODULE].subType, 0, 3);
break;
case MM_RF_PROTO_MJXQ:
@@ -892,6 +896,8 @@ bool menuModelSetup(event_t event)
}
#if defined(MULTIMODULE)
else if (IS_MODULE_MULTIMODULE(moduleIdx)) {
int optionValue = g_model.moduleData[moduleIdx].multi.optionValue;
switch (g_model.moduleData[moduleIdx].getMultiProtocol(true))
{
case MM_RF_PROTO_FRSKY:
@@ -901,13 +907,22 @@ bool menuModelSetup(event_t event)
case MM_RF_PROTO_HUBSAN:
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MULTI_VIDFREQ);
break;
case MM_RF_PROTO_FS_AFHDS2A:
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MULTI_SERVOFREQ);
optionValue = 50 + 5 * optionValue;
break;
default:
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MULTI_OPTION);
break;
}
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, g_model.moduleData[moduleIdx].multi.optionValue, LEFT | attr);
if (attr)
CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -128, 127);
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, optionValue, LEFT | attr);
if (attr) {
if (g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(true) == MM_RF_PROTO_FS_AFHDS2A) {
CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, 0, 70);
} else {
CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -128, 127);
}
}
}
#endif
break;