Changelog
All notable changes to this project are documented in this file. Add your changes to the ‘master’ section. Try to keep it short and precise. Especially make sure to document all API changes and changes, which may influence the resulting point cloud.
[master]
Added
Changed
Removed
[2.20.6] - 2023.01.11
Changed
[closes #43198] Bugfix: When printing a
Return
message thez
value is displayed correctly[refs #43331] Disable Python build for Windows external project (install target is not functional) => Please use PIP package
[refs #43331] Add missing cmake_minimum_required to CMake external example which is requried for recent CMake versions
[refs #43331] Improve Windows build guide
Pin debian testing package to bullseye as bookworm is not yet supported
[2.20.5] - 2022.09.21
Changed
[closes #42694] Properly terminate C++ examples on SIGINT
[2.20.4] - 2022.09.21
Changed
[closes #42735, refs #41706] Bugfix: Free memory properly on failed connection in constructor
[2.20.3] - 2022.07.25
Changed
Bugfix: Add timeout for resolver & connect in C++ implementation
[2.20.2] - 2022.07.21
Changed
Bugfix: Fix Python connection clone which is used for SSL communication
[2.20.1] - 2022.07.20
Changed
Minor improvements on error descriptions
[2.20.0] - 2022.07.20
Added
[closes #34915, #40093] Client times out after 30 seconds and throws a ConnectionAbort error. Developers should check the error handling examples.
Changed
Fix deprecation warnings with newer CMake versions
Update googletest to latest release
[2.19.7] - 2022.05.31
Changed
Bugfix: Disable server example if file support is not given
[refs #37709] Bugfix: Change error “found no suitable protobuf version” to warning as recent Protobuf version fail version check
Bugfix: Downgrade Protobuf Python package < 4 (https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates)
Pin debian builds to buster
[2.19.6] - 2021.10.25
Changed
[refs #32991] Enforce python zeroconf <= 0.32 due to breaking API changes
[2.19.5] - 2021.06.08
Changed
[refs #30462] Protocol: Add advanced parameter to configure horizontal phase offset
Bugfix: Enforce Protobuf v3.17.1 in external CMake build due to linking errors in v3.17.2
[2.19.4] - 2021.05.18
Changed
Bugfix: Algorithm extension broken in Python implementation
Bugfix: Rename of Python package failed due to setuptools normalization
[2.19.3] - 2021.04.13
Changed
Doc: Improve example descriptions
Use only major and minor version for compatibility warning
[2.19.2] - 2021.03.25
Changed
Bugfix: Update device authentication
[2.19.1] - 2021.03.22
Changed
Doc: Update IMU calibration example
[2.19.0] - 2021.03.22
Added
Doc: Add descriptions and source code of Python and C++ examples
Python: Example script for IMU calibration
Protocol: Advanced calibration configuration for static IMU accelerometer offset
[2.18.2] - 2021.03.08
Added
C++: Add clean shutdown method to mockup server
Automatically wait for successful time synchronization
Removed
Python: Dropped legacy methods
set_ntp_server
andget_ntp_server
[2.18.1] - 2021.03.02
Changed
Protocol: Do not enforce new status fields
[2.18.0] - 2021.03.02
Added
[Introduced in firmware v1.19] Support for on-board IMU stream. Accelerometer and gyroscope data is provided with approx. 1 kHz and synchronized timestamps.
[Introduced in firmware v1.19] Support for PTPv2 time synchronization
Protocol: Status message and state of time synchronization
Changed
Python: Re-worked time synchronization interface. Advanced configuration is used with up-to-date devices.
Removed
Protocol: Remove advanced
classification_threshold
of background subtraction algorithm
[2.17.3] - 2021.02.12
Changed
CI: Update outdated auto-generated protocol documentation
[2.17.2] - 2021.02.12
Added
Mockup-server, which can simulate a Blickfeld scanner by reading a point cloud recording. The implementation is currently incomplete, please read the documentation in the source code and the C++ server example.
Changed
Protocol: Improved documentation of algorithms
Python: Extended set_default_point_cloud_algorithms with static transformation
[2.17.1] - 2021.02.08
Changed
Replace c++17 with c++14 call and added test to check compatibility
Bugfix: Builds without Python failed with missing target dependency
Enforce protobuf version 3
[2.17.0] - 2021.02.05
Added
[Introduced in firmware v1.18] Algorithm API with three on-device processing algorithms: Background subtraction, neighbour noise filter, and static transformation.
[Introduced in firmware v1.18] Option to disable the noise filter in the scan pattern configuration
[2.16.1] - 2021.01.26
Added
Python: Structured numpy interface flag is now available for file streams
Changed
Bugfix: Do not enforce the legacy serial number for hardware modules
API: Rename filter
points_with_no_returns
todelete_points_without_returns
[2.16.0] - 2020.12.16
Added
[Introduced in firmware v1.17] API: Introduce packed frame format. The format returns point clouds as flat binary structures. These can be efficiently encoded & decoded, which increases the performance on low-performance clients significantly.
Python: Add structured numpy interface for point clouds
[Introduced in firmware v1.17] Extended hello message with library, firmware, and hardware information. Added requests for serial number & product variant.
[2.15.0] - 2020.12.02
Added
CPP: Add support for point cloud streams using extensions
[Introduced in firmware v1.16] API: Add custom trigger API, which allows to control external trigger outputs for special product variants
[Introduced in firmware v1.16] API: Add named scan pattern API. Multiple patterns can be persisted and are pre-loaded.
[2.14.2] - 2020.11.25
Changed
Python: Raise minimum required Protobuf version due to incompability with currently specified version
[2.14.1] - 2020.11.09
Changed
Python: Moved status stream to stream folder.
Python: Unified stop and close in the different streams. Please now use stop in all the streams.
[Introduced in firmware v1.15] Replaced linear filter with non-linear function. Please re-adjust filter configurations in scan patterns stored on the device.
[2.14.0] - 2020.10.19
Added
[Introduced in firmware v1.14] API request to fetch constraints for allowed scan pattern configurations. This improves the Web GUI and results in improved validation error messages.
Changed
Python: Fixed point cloud stream close to first call stop and unsubscribe
Python: Fixed bug when stopping a raw stream and deleting it afterwards, it would call stop again
[2.13.0] - 2020.09.25
Added
[Introduced in firmware v1.13] Separate API request for raw file streams. This allows file recordings with Python on low-performance clients.
[Introduced in firmware v1.13] Server section to status message. Reports connected clients and network statistics.
Add protocol files to install target
[Introduced in firmware v1.13] Extend advanced configuration with
default_point_cloud_subscription
[Introduced in firmware v1.13] Request to attempt error recovery
Changed
Python: Improved examples and refactored arguments
CPP: Refactored point cloud recording class
CMake: Improved the approach of linking dependent library to make the install package relocatable
Removed
[Removed in firmware v1.13] Drop deprecated legacy scan patterns
[2.12.1] - 2020.09.08
Changed
Windows: Only disable Protobuf-related warnings
Python: Throw explicit error types in point cloud stream class
[2.12.0] - 2020.09.08
Added
Protocol: Additional processing section in advanced configuration
Example for builds with external projects which locates all dependencies in a local directory. Can be found in cmake/external. Install section in documentation is updated.
Changed
Bugfix: M_PI was not defined and compiler flags were overridden in cpp windows builds
[2.11.1] - 2020.08.31
Added
Python: Flag for detecting frame losses
Changed
Change default scan pattern to 40 scanlines up, 40 scanlines down, INTERLEAVE pulse type, and COMBINE_UP_DOWN pulse frame mode
Bugfix Python: Fixed and simplified the recording functionality. The compression level can now be adjusted and is default set to 1.
Protocol: Formatted protobuf files for better readability
Python: Follow PEP 8 version rules
[2.11.0] - 2020.08.17
Added
Python: Example of frame export for matlab / octave
[Introduced in firmware v1.10] Add filter parameters to scan pattern. It allows to increase the number of returns per point and provides min/max filters for point attributes. The filter can be overridden during a stream request.
[Introduced in firmware v1.11] Add preliminary noise filter configuration to scan pattern
Protobuf: Add internal message option to trigger export of custom targets
CI: Provide test coverage
[Introduced in firmware v1.11] Interleave frame mode, which allows to double the horizontal density with the COMBINE_UP_DOWN FrameMode and efficiently uses the down-ramp phase in the inner horizontal FoV
[Introduced in firmware v1.11] Add API request for advanced configuration
Changed
Bugfix: Removed incorrect end of line prints in cpp fetch_clouds example
[2.10.2] - 2020.07.22
Changed
Bugfix: Frame was recorded multiple times if Python writer was faster than frame receiver
[2.10.1] - 2020.07.21
Added
Protocol: HW Variant Apollon A1 BDU
Reference frame for depth map
Changed
Doc: Fix rendering of python point cloud stream
Doc: Add configure point cloud stream to python examples in the doc
Upgrade debian testing package to libprotobuf23
[2.10.0] - 2020.07.10
Added
[Introduced in firmware v1.9] Protocol: Request to trigger a self test of the device
Validates the hardware, operates the device, and generates a report.
The report is currently only accessible by developers.
A success flag indicates if the device is functional.
[Introduced in firmware v1.9] Configurable point-cloud stream: Used to reduce the network bandwidth and to decrease the Protobuf encoding/decoding effort
The post-processing can be configured with a filter. It allows to increase the number of returns per point and provides min/max filters for point attributes.
The desired frame fields in the stream can be requested by passing a reference frame. Example reference frames are available.
Changed
CI: Improve internal release automation
[2.9.1] - 2020.06.25
Changed
Update links to documentation
[2.9.0] - 2020.06.22
Added
Protocol: Temporary error flags per point
Protocol: Enable Protobuf Arena support for data messages to improve performance
Changed
Documentation: Revise the BSL documentation with feedback of the technical writers
CMake: Prevent creation of always out-of-date target with multiple dependencies
Documentation: Add links to the GitHub Repo
[2.8.9] - 2020.06.12
Changed
Doc: Fix copy-paste error in general guide
[2.8.8] - 2020.06.12
Changed
Doc: Temporarily link to local documentation as full technical documentation is not yet available
[2.8.7] - 2020.06.09
Changed
Python: Use temporary cert file for SSL connections
[2.8.6] - 2020.06.05
Changed
CI: Re-add git related files
[2.8.5] - 2020.06.05
Changed
CPP code examples
Removed
NPM module. Release is postponed for 6-8 weeks.
Unused commented code
Old documentation files
[2.8.4] - 2020.06.04
Changed
CI: Correct squashed commits
[2.8.3] - 2020.06.04
Added
General README with an external link to docs.blickfeld.com
Changed
CI: Fix auto generator for tagged builds
Run code formatter on CPP source code
[2.8.2] - 2020.06.04
Changed
Doc: Correct artifacts URL of debian packages
CI: Fix upstream sync to GitHub repository
[closes #22461] CMake: Clean up targets and drop protoc-dev dependency required for plugin
[2.8.1] - 2020.06.03
Changed
Doc: Correct artifacts URL of debian packages
Python: Gracefully handle broken
zeroconf
package, as Python 2 support is missingDoc: Add missing doumentation for client file header
CI: Provide python package without version information in filename
[2.8.0] - 2020.06.02
Added
Python: Add string representation for blickfeld_scanner
Add custom error TimeSyncFailed to provide log information of NTP daemon
Python & C++: Simple search & connect methods to discover Blickfeld devices
Add testing debian package for more recent protobuf versions
Introduce new point cloud format and add support for Python and CPP
CI: Automatic deployment to GitHub
Changed
Move part of the documentation to the top-level technical documentation
CI: Link to customer release tied to job-id instead of tag-name
Python: Prepare pypi package for release
Documentation: Implement feedback from technical writers
Documentation: Clean up & additional information about installation
Documented the core functionality in the source code headers
[2.7.3] - 2020.03.31
Changed
Use latest python version for conda packages
Build PIP package and deploy it
Bugfix: Adapt set_ntp_server to new REST API
[2.7.2] - 2020.03.27
Added
Introduce developer protobuf permissions
Changed
Bugfix: Generation issue in CI pipeline
[2.7.1] - 2020.03.27
Changed
Bugfix: Documentation was not updated in release process
[2.7.0] - 2020.03.27
Added
SSL support for developer requests
Doc: Add explanation how to check the python protobuf implementation
Doc: Fix hardcoded paths in the doc creation and move doc to build folder before building it
Doc: Check for doxygen, sphinx and python before creating the doc and return fatal error when one is missing
Doc: Read automatic commit for the protobuf_protocol.md creation
Debian package for blickfeld-scanner-lib
Changed
Fix cpp examples (error_handling and set_scan_pattern)
Bugfix: Library links in CMake for OpenSSL and Protobuf
Refactor CMake configuration and add dependency check
Bugfix: Build issues with protobuf plugin on Windows
Bugfix: Use python3 as default
[2.6.1] - 2020.03.18
Added
Support secure firmware updates
Changed
C++: Do not force minimum protobuf version 3.6.1
[2.6.0] - 2020.03.06
Changed
Bugfix: Fix bf_protocol_plugin build in Petalinux
[2.5.4] - 2020.03.04
Changed
Bugfix: Re-add protocol documentation
Bugfix: Re-add python package documentation
[2.5.3] - 2020.03.03
Changed
Bugfix: Build script in python package was missing
[2.5.2] - 2020.03.03
Changed
Bugfix: CI pipeline failed to generate customer deployment
[2.5.1] - 2020.03.03
Changed
Bugfix: CI pipeline did fail to generate documentation
[2.5.0] - 2020.03.03
Added
Add the bsl documentation to the customer release
Add
persist
flag to SetScanPattern request, which reloads the scan pattern after a power-cycleAdd function to get the scanner connection in the C++ BSL implementation
Automatic discovery to python library
Changed
Refactor scan pattern methods of NPM package
Fallback IP address of the devices changed to
192.168.26.26
. Read Network Configuration for more information.
[2.4.0] - 2020.02.13
Added
Documentation of our Scan Pattern
Changed
Bugfix: Scanner disconnect caused segfault due to uninitialized pointers
Improved the protobuf documentation
[v2.3.1] - 2020.02.04
Changed
Re-add
get_status_stream
in python package
[v2.3.0] - 2020.02.04
Added
Add sphinx documentation with general information, python and protocol documentation
Changed
The field of view in ScanPattern.Horizontal now defines the optical FOV, not the mechanical FOV as previously. The
padding
configuration in ScanPattern.Pulse is, therefore, obsolete. Additional, all scan patterns for Cube Range devices now require the optical ScanPattern.Horizontal.fov and ScanPattern.Pulse.angle_spacing. It is recommended to use Request.FillScanPattern with an empty configuration to retrieve a valid example configuration of the used device.