Skip to content

Zaber Motion Library Changelog

2020-05-20, Version 1.4.0

  • New features
    • move_min and move_max methods
  • Bug fixes and Improvements
    • Fixing missing DeviceSettings class in API documentation
    • Fixing compatibility with Matlab 2020
    • Fixing JS library being broken when packed in asar archive by electron

2020-05-20, Version 1.3.1

  • Bug fixes and Improvements
    • Fixing ArgumentNullException when C# Connection gets disposed by finalizer

2020-05-14, Version 1.3.0

  • New features
    • Parking API
  • Bug fixes and Improvements
    • Fixing handling of signals on Windows (https://gitlab.com/ZaberTech/zaber-motion-lib/-/issues/5)
    • Empty constructor for C++ Connection class
    • Making toggleDeviceDBStore method obsolete in favor of enableDeviceDBStore
    • Checking axis number in reply in genericCommand

2020-04-29, Version 1.2.2

  • New features
    • Win32 support
    • On UNIX platforms library uses flock in addition to TIOCEXCL
  • Bug fixes and Improvements
    • toString methods for Java and C++ classes
    • Specific exception is thrown when used with incompatible devices
    • C++ documentation for Qt and MinGW

2020-04-21, Version 1.2.1

  • New features
    • Octave support (installation and tutorials)
  • Bug fixes and Improvements
    • Adding mathematical rounding to unit conversions ** Previously the number was cut at needed precision
    • Fixing that stream commands get stuck on a stream FB error
    • Error is thrown when rounding and unit conversion of non-zero acceleration results into a zero value
    • Adding missing namespaces to C++ enums
    • Improved compatibility with old versions of firmware
    • Updating the go protobuf library
    • Little documentation improvements

2020-04-07, Version 1.2.0

  • New features
    • Adding custom timeouts for ASCII generic command methods
    • Adding get/set of default request timeout of ASCII connection
  • Bug fixes and Improvements
    • Adding documentation of events
    • Adding description of exceptions
    • Hiding internal classes of C# implementation
    • Adding numbering information to API doc

2020-04-02, Version 1.1.1

  • Bug fixes and Improvements
    • Fixing name of reply_only event in Python Binary Connection (mistakenly called alert)

2020-03-30, Version 1.1.0

  • New features
    • Stream API ** Provides streaming of movement commands and synchronized multi-axis movement
    • Analog output support
  • Bug fixes and Improvements
    • Improvement of lockstep documentation.

2020-03-23, Version 1.0.13

  • Bug fixes and Improvements
    • Fixing that copying of Device and Axis classes in C++ makes the properties (e.g. setting, all axes) of instances unusable.
    • Adding code documentation to C++ properties
    • Improving C++ installation documentation
    • Making getters of C++ classes constant (rest of the classes)
    • Improving compatibility with X-JOY3 product
    • Adding lockstep support for more that two axes

2020-03-04, Version 1.0.12

  • Bug fixes and Improvements
    • Fixing Binary Protocol and TCP (Python)
    • Adding const to getters (C++)

2020-03-03, Version 1.0.11

  • Bug fixes and Improvements
    • Providing a default path for Device DB store
  • Documentation changes
    • Turning on Device DB store in tutorials
    • Making library's need for internet connection more apparent

2020-02-26, Version 1.0.10

  • Bug fixes and Improvements
    • Updating dependencies across the library Protobuf 3.11.2 RxPy 3.0.1 (Python)
    • Adding ARM64 (aarch64) platform for Linux

2019-12-13, Version 1.0.8

  • Bug fixes and Improvements
    • Making NuGet package work with MSBuild older than 15.3

2019-11-21, Version 1.0.7

  • Bug fixes and Improvements
    • Improving prepareCommand capabilities allowing numbers to be place directly to template.

2019-11-04, Version 1.0.6

  • Bug fixes and Improvements
    • Fixing compatibility issues with products predating Firmware 5.34 (Auto-Reply setting missing)

2019-11-04, Version 1.0.5

  • Bug fixes and Improvements
    • Improved the error message when the Device Database service is not reachable
    • Ensured compatibility with upcoming Firmware 7 products

2019-10-23, Version 1.0.4

  • Bug fixes and Improvements
    • Added support for Binary Protocol with Firmware version lower than 6.06

2019-10-21, Version 1.0.3

  • Bug fixes and Improvements

    • Improved Firmware 7 support (commands and settings formatting).
    • Added unit conversions and command formatting to Device class.
    • Fixed failure of GenericCommandMultiResponse for more than 1k replies.
    • Fixed JavaSript initialization when importing directly from dist folder
  • Documentation changes

    • Adding enum values to the API reference

2019-10-04, Version 1.0.2

  • Bug fixes and Improvements

    • Improved performance of GenericCommandMultiResponse (no waiting when targeting particular device).
    • Removing unused dependencies of the JS library.
    • Fixing protobuf dependency version of the Python library.
  • Documentation changes

    • General improvements of the texts.

2019-09-23, Version 1.0.1

  • Bug fixes

    • Fixing typescript compilation errors due to empty namespaces.
    • Fixed behavior: Binary connection was getting closed due to unmatched error. Now it emits unknownResponse.
    • Fixed behavior: Commands are now preempted even without matching requests.
  • Documentation changes

    • Adding C++ examples and installation instructions.
  • API changes

    • C++ API
    • Reordering genericCommand arguments in binary Device and Communication class (Unreleased)

2019-08-30, Version 1.0.0

  • Documentation changes
    • Fixing couple of mistakes in example codes
    • Improving texts and instructions

2019-08-27, Version 0.0.27

  • Documentation changes

    • Fixing couple of mistakes in example codes
  • Bug fixes

    • Fixing missing types in Typescript namespaces
    • Fixing harmless error that occasionally pops up in Python on Mac OS
    • Fixing prepareCommand in Python

2019-08-19, Version 0.0.26

  • API changes

    • Breaking change: Unit of measure names in JavaScript and Python have been changed to match common standards
    • Breaking change: Some method names have changed to improve clarity and consistency
    • Connection.Device() and Lockstep() are now GetDevice() and GetLockstep()
    • Device.Axis() and Lockstep() are now GetAxis() and GetLockstep()
    • Warnings.Get() and Clear() are now GetFlags() and ClearFlags()
  • Documentation changes

    • Many updates to reflect reviewer contributions
    • Docs about finding the right serial port amended to cover direct USB connections
    • Some site navigation controls have been altered
    • Binary protocol support is now fully documented
    • A temporary banner has been added stating this library is in early development and subject to change
  • Bug fixes

    • Fixed errors when using Binary controller + peripheral combinations

2019-08-12, Version 0.0.25

  • Adding settings constants for ASCII Protocol

  • Finalizing Binary Support

  • Fixing various issues with C++

2019-07-24, Version 0.0.24

  • Extending settings API to provide arbitrary unit conversions

  • Providing properties on Axis and Device that expose device identity information

2019-07-12, Version 0.0.23

  • Python bugfix
    • Fixed a circular dependency problem that prevented using the ASCII Device class in Python.

2019-07-12, Version 0.0.22

  • I/O support

    • I/O pins are now supported on controllers and integrated devices that have them.
    • There is a device I/O how-to guide in the documentation.
  • Lockstep support

    • Lockstep mode is now supported on two-axis ASCII devices.
    • There is a lockstep how-to guide in the documentation.
  • Binary generic commands

    • There is now a second Connection class that supports the Binary protocol.
    • Binary generic commands (without unit conversions) can be sent or broadcast.
    • Spontaneous binary messages such as move tracking become events you can subscribe to.
    • Documentation for the Binary protocol is completely separate from ASCII but has the same structure.
  • ASCII-specific namespace (BREAKING change)

    • Object types specific to the ASCII protocol have been moved into an ASCII namespace or subdirectory.
    • Import statements in existing code will need modification - please refer to the updated documentation.
    • The API reference now indicates what import statements are needed for each type.
  • Example projects

    • The documentation includes downloadable, self-contained example projects for ASCII in several programming languages.
  • Database usage documentation

    • There is a how-to guide explaining how to use the device database offline, how to cache data.
    • For Zaberians, the how-to also explains how to use the master database.
  • Exception types (BREAKING change)

    • The numeric MotionLibErrorType code no longer exists
    • Instead there are different subclasses of MotionLibException to report different error conditions.
    • The list of exception types can be seen at the bottom of the API reference section for MotionLibException.

2019-06-12, Version 0.0.21

  • Java Support

    • Full support of Java programming language with the API matching the APIs of other languages.
    • Available through Maven.
  • Changed type of the serial number in device identity to unsigned integer

    • Ensuring that the library covers the full range of Zaber serial numbers.
  • Documentation improvements

    • Improved navigation in Getting Started guide.
    • Improved responsive design.
    • External links are marked with an icon.
    • Language specific paragraphs.

2019-06-05, Version 0.0.20

  • Fixing parsing of serial number
    • Only affects Zaber internal development.

2019-05-28, Version 0.0.19

  • Renaming Communication class to Connection

  • Adding renumber method to Connection class

    • The method allows to automatically assign addresses to a device chain.
  • Python asyncio

    • All blocking methods in Python got new asyncio counterparts with _async suffix.
  • Improving the error message when the setting is not supported by the device

2019-05-15, Version 0.0.18

  • Device Database store

    • It is a feature allowing to store Device Database information to hard-drive to minimize the usage of web-service API.
  • Adding serial number to device identity

    • Queries device for system.serial and exposes the returned information in a field.
  • Renaming method wait_till_idle to wait_until_idle

  • Device settings API

    • Allows read and write device settings using API similar to axis settings.
  • Improving error message when device rejects the read or write of settings

  • Device Database documentation

    • Adding more information about Device Database and its API.
  • Sorting classes in the reference

  • Fixing letter case of enum values in the reference (Python, Js)

  • Improving grammar in documentation

    • Improving texts on the portal.
  • Adding an appropriate license to source code and packaging

    • Additionally, collecting licenses of all used libraries and tools.
  • Adding Changelog