-
Notifications
You must be signed in to change notification settings - Fork 38
brightness instance variable is broken in some way #10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
I based the WS2801 code on this so inherited the brightness issue, see https://github.com/kevinjwalters/Adafruit_CircuitPython_WS2801 and https://github.com/adafruit/Adafruit_CircuitPython_WS2801 |
In what way doesn't brightness work? Are you assuming that it'll update the pixels when its set? |
Heya @kevinjwalters, would you be able to clarify what you meant about brightness/_brightness not working? Maybe I can help fix it. @tannewt PR #12 has a small fix for the issue you mentioned; ie modifying brightness will now trigger a call to show() if auto_write is True. |
While we're talking brightness, the scale of 0.0-1.0 looks like it could use some work...I find that I can set it as low as 0.004 (any lower appears to turn the LED off). Values from 0.1 down to 0.004 are quite discernible. Could adjust the scale, perhaps from 0.1 to 1.0? Or even 1-100. In both cases though it may affect existing code... |
Rounding makes it tricky. I think 1.0 to 0.0 is fine because its normally used programmatically. Thanks for the auto-write fix! |
Been distracted by snow. I hadn't run the code, was just inspecting it and didn't understand the role of the two instances variables _brightness and brightness. Inspecting 503e854:
OH. I am new to Python and may have misunderstood how Python treats self.brightness when brightness() is defined in the code. Yes, this is the source of my confusion, I wasn't aware of the @Property decorator/synatic sugar drop. What's the purpose of the self._brightness = 1.0 assignment in constructor? Is there a reason for the mixing of techniques for reading the value in show()? |
I'll close this as this looks ok. |
@kevinjwalters The assignment to _brightness is done because pylint checks for assignments to instance variables in the constructor. I agree its a little weird. |
There is something odd going on in the code with a mix of the use of self.brightness and self._brightness - it won't work in its current form and it's confusing.
On minor issues, there's no use of the python * pseudo-argument in constructor to force use of named arguments for last two args. And the example in docs uses an integer 1 for brightness rather than floating point 1.0
The text was updated successfully, but these errors were encountered: