All notable changes to the "pixelblaze-client" library will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Changes are categorized into the following types:
- Added -- for new features.
- Changed -- for changes in existing functionality.
- Deprecated -- for soon-to-be removed features.
- Removed -- for now removed features.
- Fixed -- for any bug fixes.
- Security -- in case of vulnerabilities.
New utility functions added for ledmaps.
- New method setMapCoordinates()
- Refactored createMapData out of setMapFunction
- Call setMapData from setMapFunction and setMapCoordinates
Bug fix - automatic reconnect now works properly on Windows
New utility functions.
- new methods setMapFunction() and compilePattern() for compiling pixelmaps and patterns.
Minor fixes and new utility functions.
- new methods getMapCoordinates() and getMapOffsets() for retrieving spatial location of pixels.
- Fixed websocket parser state machine to better handle unsolicited packets.
Minor bug fixes and various adjustments to the compatibility & helper functions.
- simple.py example (in the /examples folder) shows basic Pixelblaze control features: how to set a pattern, change color and change brightness.
-
getActiveVariables now (correctly) returns a dictionary of variables and values instead of a nested dictionary under the single key "vars"
-
setActivePatternByName works again
This is a major refactoring and enhancement of the pixelblaze-client library with many significant changes. The API surface is completely new, but compatibility stubs have been provided for most existing methods to assist in transitioning to the new API.
- new PBB class for reading, writing and manipulating Pixelblaze Binary Backups for backup/restore of Pixelblaze configurations and patterns.
- new PBP class for reading, writing and manipulating Pixelblaze Binary Patterns as stored within Pixelblaze Binary Backups.
- new EPE class for reading, writing and manipulating Encapsulated Pattern Expressions as imported/exported from the Pixelblaze pattern editor.
- new methods to provide access to all of the features exposed by the Pixelblaze webUI. See the API documentation for more details.
- new example programs to demonstrate the new API.
- Many existing methods renamed to give common names to related functions. See the API documentation for more details.
- Some existing methods deprecated. Compatibility stubs have been provided to maintain functionality; warning messages are emitted to encourage movement to the new API.
- Some internal methods (names beginning with "_") were removed where no longer required.
- Adjusted internal timeout in GetPatternList() to allow more time for slower responding Pixelblazes.
- Changed ws_recv() to take an optional packetType parameter so that it can receive arbitrary binary packets. This will allow callers to read data from things like the Pixelblaze's new 1000 pixel preview frames. Fun! Thanks, @pixie!
- Documented getPixelCount/setPixelCount(), which lets you get and set the number of LEDs attached to your Pixelblaze.
- added the pause() and unpause() commands.
- Behavior changes around writes to flash, pattern caching, a few new commands...
- getPatternList() is now cached, for greatly improved performance. The cache timeout can be set by calling setCacheRefreshTime(seconds). The default is 600 seconds, or 10 minutes.
- Reduced unneccessary flash writes - setActivePattern(), setActivePatternId() and setBrightness() now take an optional saveFlash parameter, which is False by default, and uses the enable_flash_save() safety mechanism (described in the API documentation) to prevent inadvertent flash saves.
- fixed endian-ness related bug in the enumerator, and changed Pixelblaze.waitforEmptyQueue() to actually do what it says in the documentation. (It was throwing an exception on timeouts, rather than returning False as described. Thanks to Nick_W for finding the bug and suggesting a fix!)
- Added support for Pixelblaze's updated internal pattern sequencer, starting the sequencer in either playlist or shuffle mode, and pausing and unpausing. See API docs for startSequencer(), pauseSequencer() and playSequencer below.
- Added support for pypi. You can now install pixelblaze-client with pip. Once installed, simply
import pixelblaze
in your python programs!
- New PixelblazeEnumerator class that listens continuously for Pixelblaze beacon packets, maintains a list of visible Pixelblazes and supports synchronizing time on multiple Pixelblazes to allow them to run patterns simultaneously.
- Added the ability to handle patterns with multiple color controls.
- added getColorControlNames() - returns a complete list of all rgb and hsv color controls associated with a pattern
- getColorControlName() now explicitly returns the name of the pattern's first color control. (It always did this, but now it's officially defined that way.)
- controlExists(ctl_name, pattern) - returns True if specified control exists in the specified pattern, False otherwise
- getColorControlName() - returns name of rgb or hsv color picker if the pattern has one, None otherwise
- setColorControl(name,color) - allows you to set a color picker control to a 3 element array of color values
- variableExists(var_name) - returns True if specified variable is exported by the current pattern
- If you omit the pattern name argument from getControls() or controlExists(), control data is retrieved for the current pattern if available.
Initial release.