Skip to content

Commit c4cd346

Browse files
committed
Adjust ELRS to CRSF spec for TYPE_FOLDER,
Use enum naming closer to official CRSF specification
1 parent e9999fd commit c4cd346

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

radio/src/targets/flysky/tools/elrs.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ static struct LinkStat {
118118

119119
static constexpr uint8_t ELRS_FLAGS_INFO_MAX_LEN = 20;
120120
static char elrsFlagsInfo[ELRS_FLAGS_INFO_MAX_LEN] = "";
121-
static uint8_t expectedParamsCount = 0;
121+
static uint8_t expectedParamsCount = 0; // TODO: folderLastId
122122

123123
static tmr10ms_t devicesRefreshTimeout = 50;
124124
static uint8_t allParamsLoaded = 0;
@@ -405,6 +405,12 @@ static void paramStringSave(Parameter * param) {
405405
#endif
406406
}
407407

408+
static void paramFolderLoad(Parameter * param, uint8_t * data, uint8_t offset) {
409+
do {
410+
bufferPush((char*)&data[offset], 1); // push one child id at a time
411+
} while (data[offset++] != 0xff);
412+
}
413+
408414
static void paramMultibyteSave(Parameter * param) {
409415
uint8_t data[4];
410416
for (uint32_t i = 0; i < param->size; i++) {
@@ -562,7 +568,7 @@ static void parseDeviceInfoMessage(uint8_t* data) {
562568
if (deviceId == id && currentFolderId != otherDevicesId) {
563569
memcpy(&deviceName[0], (char *)&data[3], DEVICE_NAME_MAX_LEN);
564570
deviceIsELRS_TX = ((paramGetValue(&data[offset], 4) == 0x454C5253) && (deviceId == 0xEE)); // SerialNumber = 'E L R S' and ID is TX module
565-
uint8_t newParamCount = data[offset+12];
571+
uint8_t newParamCount = data[offset+12]; // TODO: newFolderLastId
566572
// TRACE("deviceId match %x, newParamCount %d", deviceId, newParamCount);
567573
reloadAllParam();
568574
if (newParamCount != expectedParamsCount || newParamCount == 0) {
@@ -589,7 +595,7 @@ static const ParamFunctions functions[] = {
589595
// { .load=paramFloatLoad, .save=paramMultibyteSave, .display=paramIntegerDisplay }, // FLOAT(8)
590596
{ .load=paramIntegerLoad, .save=paramMultibyteSave, .display=paramTextSelectionDisplay }, // SELECT(9)
591597
{ .load=paramStringLoad, .save=paramStringSave, .display=paramStringDisplay }, // STRING(10) editing
592-
{ .load=noopLoad, .save=paramFolderOpen, .display=paramUnifiedDisplay }, // FOLDER(11)
598+
{ .load=paramFolderLoad, .save=paramFolderOpen, .display=paramUnifiedDisplay }, // FOLDER(11)
593599
{ .load=paramInfoLoad, .save=noopSave, .display=paramStringDisplay }, // INFO(12)
594600
{ .load=paramCommandLoad, .save=paramCommandSave, .display=paramUnifiedDisplay }, // COMMAND(13)
595601
{ .load=noopLoad, .save=paramBackExec, .display=paramUnifiedDisplay }, // back(14)

0 commit comments

Comments
 (0)