this post was submitted on 17 Aug 2023
19 points (100.0% liked)
flashlight
2946 readers
1 users here now
Portable illumination
Rules:
- Be excellent to each other
- Don't be the reason we need to make more rules
Related:
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Sorry for the extraneous information about the ifdef. The important part was whether adding this extra check would fix the bug in the same way as deleting the original line did.
From what I could assume in the comments, this refers to the very first state in that steady-state (“first frame”) right when you have done 4H. Then it sets the current level to the appropriate turbo (
set_level_and_therm_target
).Your bug would be that it never set the level to turbo because it never executed
set_level_and_therm_target
because! arg
evaluates to false.Your bug fix was to delete the check, but that means that every instant it will keep trying to set the level to turbo instead of just setting it during the first frame and then maintaining the steady-state.
My potential fix was to add something so that the statement
if (! arg) || (! channel_has_args(cfg.channel_mode)
would evaluate to true during the first frame so it can then callset_level_and_therm_target
exactly once.@[email protected] (if you have a moment) does this seem close to the mark?
I test that asap. I already try to comment it and it's work fine :
But I am surprised that the functionality appears in the diagram and that no one remarks that it does not work (3H without Multi channel or 4H with) https://lemmy.world/post/1038159
It appears in the diagram because it works. Just tested it again on my dual-channel D4V2, and it works like a charm.
On reflection i think this is incorrect.
arg
seems to represent the output level as of when the event was triggered.