Qt 5.9 introduces many new features and improvements as well as bugfixes
over the 5.8.x series. For more details, refer to the online documentation
included in this distribution. The documentation is also available online:

http://doc.qt.io/qt-5/index.html

The Qt version 5.9 series is binary compatible with the 5.8.x series.
Applications compiled for 5.8 will continue to run with 5.9.

Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:

https://bugreports.qt.io/

Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.

****************************************************************************
*                          Library                                         *
****************************************************************************

QtSerialBus
-----------

 - QCanBusDevice
   * [QTBUG-57658] Added buffering details in QCanBusDevice::framesToWrite
     documentation.
   * Added QCanBusDevice::DataBitRateKey enum.

 - QCanBusFrame
   * [QTBUG-56720] Introduced flag to allow data bitrate switching for CAN FD
     frames. Reference implementation is done for the SocketCAN plugin.
   * Added error state indicator flag to QCanBusFrame and set it appropriate
     for received CAN FD frames with the SocketCAN plugin. Setting this flag
     for testing purposes is also possible.

 - QCanBus
   * [QTBUG-54298] Added the new class QCanBusDeviceInfo for enumeration of
     available CAN interfaces and more information about them.
   * Added a new SystecCAN plugin for Windows support of CAN adapters from
     http://www.systec-electronic.com.

 - Modified the PeakCAN plugin such that it supports up to 16 USB and
   16 PCI CAN channels.

 - VectorCAN:
   * Fixed a crash when device open fails because no device drivers are
     installed.
   * [QTBUG-58774] Fixed that 64 bit builds need to load vxlapi64.dll.
   * [QTBUG-58840] Fixed that received frames with an extended ID are
     received with ID 0 and marked as invalid.
   * [QTBUG-59037] Fixed receiving a transmit echo for all sent frames by
     adding the QCanBusDevice::ReceiveOwnKey configuration.

 - [QTBUG-59050] Fixed that QModbusRtuSerialMaster did not close the
   serial port on disconnect.
 - Added code improvements and cleanups throughout the module's examples.
 - [QTBUG-55045] Improved error handling code throughout all CAN plugins.
 - Improved canbusutil output formatting and detail level.
 - Fixed module build when Qt was configured with various -no-feature-xyz
   options.
