edgetx icon indicating copy to clipboard operation
edgetx copied to clipboard

feat: increase model limit from 60 to 120

Open pfeerick opened this issue 7 months ago • 14 comments

Summary of changes:

  • doubles maximum model count to 120

pfeerick avatar May 06 '25 08:05 pfeerick

@pfeerick I was able to test the windows version and it worked great! However, as I was testing, I was able to discover a couple bugs on the radio firmware. I'll submit those now.

gfalgiano avatar May 07 '25 06:05 gfalgiano

Added an issue here. Hope this is the proper process as I haven't submitted a bug against a pull request before. https://github.com/EdgeTX/edgetx/issues/6213

gfalgiano avatar May 07 '25 06:05 gfalgiano

A mix of 2 and 3 digit name suffixes could also trigger more issues eg sorting

elecpower avatar May 07 '25 07:05 elecpower

It doesn't really matter, but it is probably better to annotate an open PR if there are "bugs" in it/resulting from it (since they are not relevant to the main code base) rather than create an new issue... probably more relevant here as this PR is more an experiment and to ease getting hold of companion builds. Regardless, thank you for the feedback and testing it out... good to know it "sort of works" and where it breaks ;)

pfeerick avatar May 07 '25 08:05 pfeerick

@elecpower I assume the solution would be to structure the name with 3 digits and padding: Model001, Model011, Model100, Model255, etc so we'd always have the same number of digits.

gfalgiano avatar May 08 '25 02:05 gfalgiano

That would avoid sorting/sequencing problems.

I have a nagging thought of some regex filters existing in the code that may only accept 2 digits.

elecpower avatar May 08 '25 02:05 elecpower

That would avoid sorting/sequencing problems.

I have a nagging thought of some regex filters existing in the code that may only accept 2 digits.

@elecpower this is the only file I could find that appears to be handling model naming, but it's in the companion folder. Any other thoughts for where I can poke around? Looking for how the radio names new models "model01.yaml" files it creates on the SD card. https://github.com/EdgeTX/edgetx/blob/bf1ef5c98ece054381e630e43ff0bd8afad924ea/companion/src/firmwares/modeldata.cpp#L235

gfalgiano avatar May 08 '25 03:05 gfalgiano

In Companion read models and settings from radio and sd card may use a filter.

elecpower avatar May 08 '25 04:05 elecpower

Color radios name the model files without leading 0's in the number (model1, model10.yml, model100.yml etc). Color radios start from model1.yml.

B&W radio code is hard wired to generate model file names with a two digit number in the model name and start from model00.yml.

Maybe limit the change to 100 models for B&W radios (for now).

philmoz avatar May 08 '25 09:05 philmoz

No, for the specific application that triggered this more than 100 is needed on B&W, so is not really an option. If this PR was to be something that is actually merged, sure, limiting to 99/100 models will probably work just great, and there is probably no real reason not to bump it to that (and uniformally - rather than be the same but different for three 'categories' of radio :-/). But this is also helping in finding where some parts of the code are still quite brittle / limited by certain assumptions, so is worth pursing further since someone is interested in making it happen.

pfeerick avatar May 08 '25 10:05 pfeerick

Extending B&W to handle > 100 will be complex. It will also need to able to handle/convert all existing model files in both radio and companion.

philmoz avatar May 08 '25 10:05 philmoz

Extending B&W to handle > 100 will be complex. It will also need to able to handle/convert all existing model files in both radio and companion.

@philmoz what if we don’t extend the padding?

Ex: model00, model01, model10, model100, model120, etc

I mention that because if I use the companion app in this PR, I’m able to create models at slots 105 and 120 with no issue and the radio can read and interact with them just fine (reads models named model105, model120, etc). Based on my investigation thus far, the issue might be limited to generating new models and moving models into this slot ranges from the radio, as noted in the issue I posted. #6213

If you happen to know which part of the code for B&W radios controls naming new model files on the SD card, I can try some experiments.

gfalgiano avatar May 08 '25 20:05 gfalgiano

what if we don’t extend the padding

This is what I was thinking also, as there is no "need" to alter the naming of the old models, only work with the new ones. But probably no reason it can't be an automatic startup rename if the filename name is matched to be one character short and right filename structure if that was needed. Then there is no "strange" handling that only kicks in only some of the time.

On Fri, 9 May 2025, 6:38 am gfalgiano, @.***> wrote:

gfalgiano left a comment (EdgeTX/edgetx#6208) https://github.com/EdgeTX/edgetx/pull/6208#issuecomment-2864252885

Extending B&W to handle > 100 will be complex. It will also need to able to handle/convert all existing model files in both radio and companion.

@philmoz https://github.com/philmoz what if we don’t extend the padding?

Ex: model00, model01, model10, model100, model120, etc

I mention that because if I use the companion app in this PR, I’m able to create models at slots 105 and 120 with no issue and the radio can read and interact with them just fine (reads models named model105, model120, etc). Based on my investigation thus far, the issue might be limited to generating new models and moving models into this slot ranges from the radio, as noted in the issue I posted. #6213 https://github.com/EdgeTX/edgetx/issues/6213

If you happen to know which part of the code for B&W radios controls naming new model files on the SD card, I can try some experiments.

— Reply to this email directly, view it on GitHub https://github.com/EdgeTX/edgetx/pull/6208#issuecomment-2864252885, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABJ66KMGYPJQWKF3TYGPLEL25O6DTAVCNFSM6AAAAAB4QRJ4GSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDQNRUGI2TEOBYGU . You are receiving this because you were mentioned.Message ID: @.***>

pfeerick avatar May 08 '25 20:05 pfeerick

@pfeerick I found the sections we need to change. edgetx/radio/src/storage/sdcard_yaml.cpp https://github.com/EdgeTX/edgetx/pull/6231

One section of the code controls how the models are named on the SD card. It was limiting the number at the end to two digits. Once I changed that, I found a similar issue when you try to back up one of the models over 100. I made another change to address that. Finally, I corrected an issue where it would ignore small model names such as "a" and incorrectly use the model number as the backup file name.

With those fixed, the only remaining issue I've seen is with the * next to the selected model. It's one charter overlapping when a model over 100 is selected on a B&W radio. It's minor, so I thought the GUI didn't need to be touched at this time.

gfalgiano avatar May 10 '25 04:05 gfalgiano