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
+17 -3
View File
@@ -740,6 +740,9 @@ void menuModelSetup(event_t event)
case MM_RF_PROTO_HONTAI:
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN+11*FW, y, STR_SUBTYPE_HONTAI, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==2 ? attr : 0);
break;
case MM_RF_PROTO_FS_AFHDS2A:
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN+10*FW, y, STR_SUBTYPE_AFHDS2A , g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==2 ? attr : 0);
break;
case MM_RF_CUSTOM_SELECTED:
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN+14*FW, y, g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(false), menuHorizontalPosition==2 ? attr : 0, 2);
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN+16*FW, y, g_model.moduleData[EXTERNAL_MODULE].subType, menuHorizontalPosition==3 ? attr : 0, 2);
@@ -806,6 +809,7 @@ void 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:
@@ -983,7 +987,9 @@ void menuModelSetup(event_t event)
}
#if defined(MULTIMODULE)
else if (IS_MODULE_MULTIMODULE(moduleIdx)) {
switch ( g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(true))
int optionValue = g_model.moduleData[moduleIdx].multi.optionValue;
switch (g_model.moduleData[EXTERNAL_MODULE].getMultiProtocol(true))
{
case MM_RF_PROTO_FRSKY:
case MM_RF_PROTO_SFHSS:
@@ -992,13 +998,21 @@ void menuModelSetup(event_t event)
case MM_RF_PROTO_HUBSAN:
lcdDrawTextAlignedLeft(y, STR_MULTI_VIDFREQ);
break;
case MM_RF_PROTO_FS_AFHDS2A:
lcdDrawTextAlignedLeft(y, TR_MULTI_SERVOFREQ);
optionValue = 50 + 5 * optionValue;
break;
default:
lcdDrawTextAlignedLeft(y, STR_MULTI_OPTION);
break;
}
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, g_model.moduleData[moduleIdx].multi.optionValue, LEFT | attr);
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, optionValue, LEFT | attr);
if (attr) {
CHECK_INCDEC_MODELVAR(event, g_model.moduleData[moduleIdx].multi.optionValue, -128, 127);
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