- Posts: 649
- Forum
- News, Announcements and Feedback
- Feedback & Questions
- PB, request for code review and merge back(2)
PB, request for code review and merge back(2)
- sbstnp
- Offline
PhracturedBlue wrote: I'm still open to being convinced, but so far I have heard nothing to make me think the implementation you have brings any functionality over what I've stated I want.
It's all about user experience. Having fixed menu entries helps newbies and people not familiar with the firmware. Having customization options makes people already at home with Deviation able to make it fit their way of handling things. This is never a BAD THING(tm).
Look, I'm not trying to convince you, but if these options do not affect performance or usability they should be allowed in.
On Devo 10 this firmware will have 3 cutomization options:
1. Main screen
2. Main screen shortcuts to different pages
3. Main menu
Main screen shortcuts will not be that powerful unless we limit the option to about 2 pages left, 2 pages right, otherwise will become obscure and rarely used.
Think about it, you created Deviation for Devo 8 with themes in mind. Devo 10 will not have such things. Having menu customization is a plus for such a limited user experience.
EDIT:
I forgot to ask you if you tested the changes, everything I've written above was based on the assumption you did. If not, suvsuv did the following things:
1. Fixed Main Menu to Model setup and Transmitter configuration
2. Implemented a way to add more menu items.
That's it, you can't remove or change order of the first 2 menu entries, and that's good because you can't screw up documentation. You can only add.
Devo 10 + 4in1
FrSky Taranis + TBS Crossfire
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Offline
- Posts: 4402
So far everything that I can see going in the main menu either:
a) won't be accessed often enough that it causes any hardship for it to be in the 2nd level menu
or
b) is accessed so frequently you'd want it available from the main page
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Offline
- Posts: 4402
Of course. it wouldn't really be fair for me to criticize without trying it.sbstnp wrote: I forgot to ask you if you tested the changes, everything I've written above was based on the assumption you did. If not, suvsuv did the following things:
Please Log in or Create an account to join the conversation.
- sbstnp
- Offline
- Posts: 649
PhracturedBlue wrote: but really, what do you plan to put in the main menu? Having too many configuration options absolutely can be a bad thing if they don't bring real value. It makes the system harder to learn, and harder to share. I'm all for adding configuration when it brings value, but I just can't see it here.
So far everything that I can see going in the main menu either:
a) won't be accessed often enough that it causes any hardship for it to be in the 2nd level menu
or
b) is accessed so frequently you'd want it available from the main page
Edited my post above while you were posting.
Example:
I added USB and Mixer since I'm playing alot with model setup currently. When my model configurations will become stable, I'll add something else. What else? No idea yet, but having the power to do so makes me feel good
Devo 10 + 4in1
FrSky Taranis + TBS Crossfire
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Offline
- Posts: 4402
USB should just be on the main page.sbstnp wrote: I added USB and Mixer since I'm playing alot with model setup currently. When my model configurations will become stable, I'll add something else. What else? No idea yet, but having the power to do so makes me feel good
Mixer is actually faster without being there (2 presses of enter vs enter, up/down, enter)
I can't help that it makes you feel better, but you wouldn't have felt any worse had it never been there in the 1st place
Please Log in or Create an account to join the conversation.
- sbstnp
- Offline
- Posts: 649
PhracturedBlue wrote:
USB should just be on the main page.sbstnp wrote: I added USB and Mixer since I'm playing alot with model setup currently. When my model configurations will become stable, I'll add something else. What else? No idea yet, but having the power to do so makes me feel good
Mixer is actually faster without being there (2 presses of enter vs enter, up/down, enter)
I can't help that it makes you feel better, but you wouldn't have felt any worse had it never been there in the 1st place
No not really, I use Mixer straight after USB, so it's faster (ext/down/enter vs ext/up/up/enter/enter). See, something you haven't taken into account. Just give it some thought, it will make sense.
A nice read about UX below:
52weeksofux.com/post/475093254/10-principles-of-ux
Devo 10 + 4in1
FrSky Taranis + TBS Crossfire
Please Log in or Create an account to join the conversation.
- suvsuv
- Topic Author
- Offline
- Posts: 268
For certain areas, people might not be able to make consensus, if it is not critical to platform, e.g., whether to put telemetry monitor to the make menu won't hurt any user-experience at all, give users a customization way will always the best solution. By this way, the mixer/tx config are always in the main menu, and people can have their own DIY menu items based on their judgement.
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Offline
- Posts: 4402
There are 3 options here:
1) Convince me I'm wrong. All it will take is a compelling argument for why this will significantly help end-users vs the alternatives. So far I haven't seen anything significant enough to sway me.
2) Live with my decision
3) Fork the project and go it your own way.
To me, this whole thing feels like you not liking my decision to move the Telemetry menu and inventing a system to work around that. I've already stated that I don't want the telemetry menu where it is, and that it is a temporary solution. Maybe that was not your intent, but it is how it appears to me.
I am in the middle of implementing my vision of how this should work. If, after its done you still feel there is a significant loss of functionality, then we can discuss this further. For the moment, I've pulled everything I will until I'm done with my code changes.
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Offline
- Posts: 4402
I'd like your opinion on how to finish the quick-page functionality. I have it working properly (mostly) for the Devo8, but have run into a couple of issues on the Devo10. I can solve them, but my solution is a bit hacky, and you have a better feeling for the layout.
Basically I ran into 2 problems:
1) I need to identify whether I am in the menu or not so I can properly handle the button-press when on a quick page. For instance from main-page to telemetry works, but I can't get back to the main page because the buttons are intercepted. Also exit goes back to the menu because each page is coded to do so.
2) the telemetry page grabs Left/Right which are my default hotkeys. Since the telemetry page is 2 pages, I should basically be able to assign each of these separately to a quickpage location so I can go main->telem->gps->main
As I said, I can make it work, but may make a mess of the button handler stuff, so I'd like your opinion on a cleaner way to do it.
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Offline
- Posts: 4402
Give it a try. If you still really see value in menu configuration, I'll back down on it. I don't think it is at all necessary, but the more I think about it, I agree that if some people think it really brings value, then I'll support it.
You'll need to rework it to work with the current menu changes though.
Please Log in or Create an account to join the conversation.
- suvsuv
- Topic Author
- Offline
- Posts: 268
In our real life, other than wrong-or-right, black-or-white, there are many cases in which no one is wrong. Hence I don't think your above options are valid to this case.PhracturedBlue wrote: There are 3 options here:
1) Convince me I'm wrong. All it will take is a compelling argument for why this will significantly help end-users vs the alternatives. So far I haven't seen anything significant enough to sway me.
2) Live with my decision
3) Fork the project and go it your own way.
In this case, firstly I do agree that you, as the major contributor to this great project, have the right to let all features meet your need. However, if we want to make the project have a better user-experience, we should provide features meet the majority of users needs as well. The more users test-use this project, the more stable it will be, eventually benefit you.
Providing a customizable menu doesn't turn down your preference about the TeleMonior, but gives other users better experience. That is why I choose to do it.
Of coz, you current solution is also good. Currently, I already had my repo synced with your latest changes, and fixed bugs related to the quick page, please check them out.
However, I still have 2 questions:
1) Should it be TX-specific instead? The main-page-config is obviously model-specific as DSM2 models need to monitor CH1 while Devo models need to monitor CH3. But the quickpage is most likely used for all models, putting it to modelxx.ini just means we have to setup the same quickpage many times for all model we used
2) DEVO8 is a touch-oriented device, so many keys are available. But in devo10, all keys are used in most pages, using the right/left keys, or any other keys, will interfere with normal key actions. I am thinking of using long-press for switching quickpages, but I still see issues about how to determine interval between 2 long-pressing.
Please Log in or Create an account to join the conversation.
- suvsuv
- Topic Author
- Offline
- Posts: 268
1) I revert your change in the mixer-page. In devo10, using show/hide to dynamically draw a page is dangerous. With your change, the mixer-page will crash whenever a mixer is changed from none to simple/expo/complex. Using logical view can avoid the crash, however, it makes page-scrolling very hard to implement and lower down codes' readability.
2) In devo10's mixer-setup and mixer-curve, I add codes allow users to long-press ENT to save change in partially live without exiting the page. With current design, setting up a model for Expo&DR is very inconvenient: enter the mixer-setup page ->enter curve page-> save and exit to mixer-setup-> change other settings -> save and exit to mixer-page-> verify servos' response-> repeat above actions by entering/exiting pages back and forth. I understand that providing save-in-live might slow down event-handling performance and reduce flash's life, so this feature is a workaround to simplified mixer setup a lot. Please let me know if you see any issue about it or come up with a better solution
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Offline
- Posts: 4402
I see no crash. and I'm not show/hiding anything, just calculating whether or not to waste the extra line when it isn't needed.Other codes need your review
1) I revert your change in the mixer-page. In devo10, using show/hide to dynamically draw a page is dangerous. With your change, the mixer-page will crash whenever a mixer is changed from none to simple/expo/complex. Using logical view can avoid the crash, however, it makes page-scrolling very hard to implement and lower down codes' readability.
Please describe exactly how to reproduce the crash.
2) In devo10's mixer-setup and mixer-curve, I add codes allow users to long-press ENT to save change in partially live without exiting the page. With current design, setting up a model for Expo&DR is very inconvenient: enter the mixer-setup page ->enter curve page-> save and exit to mixer-setup-> change other settings -> save and exit to mixer-page-> verify servos' response-> repeat above actions by entering/exiting pages back and forth. I understand that providing save-in-live might slow down event-handling performance and reduce flash's life, so this feature is a workaround to simplified mixer setup a lot. Please let me know if you see any issue about it or come up with a better solution
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Offline
- Posts: 4402
It is a tradeoff. For instance, a model with telemetry wants the telemetry page available, but others don't. If I have GPS, i may want it included too. I think it is exactly the same as the model-config page. you want to keep the same settings for most models, but some models need a different variant, and the cost is setting it up every time. I'd live to solve that, but it isn't easy.suvsuv wrote: However, I still have 2 questions:
1) Should it be TX-specific instead? The main-page-config is obviously model-specific as DSM2 models need to monitor CH1 while Devo models need to monitor CH3. But the quickpage is most likely used for all models, putting it to modelxx.ini just means we have to setup the same quickpage many times for all model we used
The 3 leading contenders seem to be:
1) provide a mecahnism to copy the display settings from one model to another
2) use separate files for the display info, and allow multiple models to use the same file (such that a change made in one changes all)
3) allow setting a default for the Tx, and only save the differences to the model file.
Every one of these has downsides associated with it, though I'd probably lead towards the third option.
FYI, the Devo8 is fully accessible by button only. It does not require the touch interface. But as you say, if you use left/right to go-to a page needing the left/right buttons, you can only get back with 'exit'. Which is why I support changing which buttons are used. But as I said, I like the idea of being able to use long-press too.2) DEVO8 is a touch-oriented device, so many keys are available. But in devo10, all keys are used in most pages, using the right/left keys, or any other keys, will interfere with normal key actions.
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Offline
- Posts: 4402
And to lay this matter to rest, I already said that if you still think it is valuable, I'll take it. We don't need to argue about it anymore.suvsuv wrote: Providing a customizable menu doesn't turn down your preference about the TeleMonior, but gives other users better experience. That is why I choose to do it.
Please Log in or Create an account to join the conversation.
- suvsuv
- Topic Author
- Offline
- Posts: 268
Reproduce steps:PhracturedBlue wrote: I see no crash. and I'm not show/hiding anything, just calculating whether or not to waste the extra line when it isn't needed.
Please describe exactly how to reproduce the crash.
1) run the Emu_devo10, enter the mixer setup page for THR(CH1), change template from simple to Cyclic1, hit save button
the change is saved and back to mixer page
2) prese up or down,the emu_devo10 crashes.
3) If you repeat above steps in real devo10, the mixer page won't crash directly, but you will see the mixer page won't be refreshed after pressing the down key for several times. At this moment, memory violation actually happens, you will see the GUI crashes eventually and then reboot if you keep pressing the down key.
Please Log in or Create an account to join the conversation.
- suvsuv
- Topic Author
- Offline
- Posts: 268
Yes, I want to see servos' response. The bar-graph is helpful but can't reflect servos' actual behavior all the time, e.g. when mixer settings exceeds actual endpoint's limit of a servo.PhracturedBlue wrote:
I don't think you should be saving anything (is there a specific need for this?)EDIT: I looked at the code. No saving to flash is being done, but having long-press copy-back to the main mixer is probably ok. The addition of the bar-graph was supposed to help. It should show the live channel behavior. Is it not sufficient, or you just want to see real servo response? the reason for this page not being live is only because you need to cylce through invalid options to get to legal ones. Things like setting the input and switch should not be live. It would probably be ok for everything else to be live though. On the complex page, changing the # of pages and the mux type also shouldn't happen live.
My current solution is not going to make the change be in live, but just provide a way to save changes on demand and without exiting from current page and
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Offline
- Posts: 4402
Thanks, I've checked in a fix keeping my layout but fixing this issue.suvsuv wrote:
Reproduce steps:PhracturedBlue wrote: I see no crash. and I'm not show/hiding anything, just calculating whether or not to waste the extra line when it isn't needed.
Please describe exactly how to reproduce the crash.
1) run the Emu_devo10, enter the mixer setup page for THR(CH1), change template from simple to Cyclic1, hit save button
the change is saved and back to mixer page
2) prese up or down,the emu_devo10 crashes.
3) If you repeat above steps in real devo10, the mixer page won't crash directly, but you will see the mixer page won't be refreshed after pressing the down key for several times. At this moment, memory violation actually happens, you will see the GUI crashes eventually and then reboot if you keep pressing the down key.
Please Log in or Create an account to join the conversation.
- PhracturedBlue
- Offline
- Posts: 4402
Let me know if you think I missed anything.
Please Log in or Create an account to join the conversation.
- suvsuv
- Topic Author
- Offline
- Posts: 268
1) The new timer you introduced in the fltk.c won't work for all Windows OSes, at least doesn't work in my Win7 and Win8 machines. In the ftlk.c, you assume that the OS can generate time tick as short as 1milliseconds, but in my test, the shortest tick is 5ms so it ruin many actions in emu_devo10, e.g., long-pressing doesn't work, binding time elapses every 5 seconds instead.
I fixed the issue and had it verified in my Windows machine. I don't know how it work in Linux, please verify the fix if you have Linux environment.
2) Your fix for the mixer page still doesn't work, I can still make the page crash in both emulator and real devo10, below is the repo steps:
click the last item of the mixer page(illustrated in the following snapshot) and change its template from none to simple, or Expo, after saving the change, the mixer page crashes
Also ,even though you can fix above issue, I don't think it actually meets your original expectation. You were trying to show as more items as possible in a page by hiding some of them based on their different template setting, but if you look at the following senario, I don't really think your current solution has advantage over fixed-row. As what I explained to you, it is not a good idea to design variable-rows page in devo10(though it works well in devo with sufficient LCD height)
Please Log in or Create an account to join the conversation.
- Forum
- News, Announcements and Feedback
- Feedback & Questions
- PB, request for code review and merge back(2)
- Home
- Forum
- News, Announcements and Feedback
- Feedback & Questions
- PB, request for code review and merge back(2)