@@ -118,7 +118,7 @@ static struct LinkStat {
118118
119119static constexpr uint8_t ELRS_FLAGS_INFO_MAX_LEN = 20 ;
120120static char elrsFlagsInfo[ELRS_FLAGS_INFO_MAX_LEN] = " " ;
121- static uint8_t expectedParamsCount = 0 ;
121+ static uint8_t expectedParamsCount = 0 ; // TODO: folderLastId
122122
123123static tmr10ms_t devicesRefreshTimeout = 50 ;
124124static 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+
408414static 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