Skip to content

Generate Changelog for v4.6.0 (#1970)

Choose a tag to compare

@hardbyte hardbyte released this 08 Aug 19:32
· 14 commits to main since this release
9c71151

πŸš€ Highlights

  • πŸ†• New CLI tool: can_bridge β€” bridge two physical CAN buses in software via python -m can.bridge.
  • πŸ“‘ Expanded protocol support:
    • 11-bit identifiers, remote frames, and error frames in the serial interface.
    • CAN FD support in slcan for CANable 2.0 devices.
    • Error message support in the socketcand interface.
    • Remote frame support in TRCReader.
  • πŸ–₯ Windows support: Added support for the udp_multicast interface on Windows.
  • πŸ”” Notifier improvements:
    • Track active Notifiers and use them as context managers.
    • New helper: Notifier.find_instances(bus) to discover active Notifiers.
  • πŸ›  Better CLI integration: Public functions can.cli.add_bus_arguments and can.cli.create_bus_from_namespace for downstream packages to easily configure and parse python-can bus options.

Added

  • Add support for 11-bit identifiers in the serial interface. (#1758)
  • Add context manager support and active instance tracking to Notifier, plus Notifier.find_instances(bus). (#1890)
  • Add Windows support to udp_multicast interface. (#1914)
  • Add FD support to slcan according to CANable 2.0 implementation. (#1920)
  • Add support for error messages to the socketcand interface. (#1941)
  • Add support for remote and error frames in the serial interface. (#1948)
  • Add public functions can.cli.add_bus_arguments and can.cli.create_bus_from_namespace for creating bus command line options. Currently downstream packages need to implement their own logic to configure python-can buses. Now python-can can create and parse bus options for third party packages. (#1949)
  • Add support for remote frames to TRCReader. (#1953)
  • Mention the python-can-candle package in the plugin interface section of the documentation. (#1954)
  • Add new CLI tool python -m can.bridge (or just can_bridge) to create a software bridge between two physical buses. (#1961)

πŸ”§ Changed

  • Allow sending Classic CAN frames with a DLC value larger than 8 using the socketcan interface. (#1851)
  • Rename the gs_usb extra dependency to gs-usb. (#1945)
  • New PEP 735 dependency groups lint, docs and test. (#1945)
  • Update dependency name from zlgcan-driver-py to zlgcan. (#1946)
  • Use ThreadPoolExecutor in detect_available_configs() to reduce runtime and add timeout parameter. (#1947)
  • Update contribution guide. (#1960)

πŸ—‘ Removed

  • Remove support for Python 3.8. (#1931)
  • Unknown command line arguments ("extra args") are no longer passed down to can.Bus() instantiation. Use the --bus-kwargs argument instead. (#1949)
  • Remove can.io.generic.BaseIOHandler class. Improve can.io.* type annotations by using typing.Generic. (#1951)

🐞 Fixed

  • Fix a bug in slcanBus.get_version() and slcanBus.get_serial_number(): If any other data was received during the function call, then None was returned. (#1904)
  • Fix incorrect padding of CAN FD payload in BlfReader. (#1906)
  • Set correct message direction for messages received with kvaser interface and receive_own_messages=True. (#1908)
  • Fix timestamp rounding error in BlfWriter. (#1921)
  • Fix timestamp rounding error in BlfReader. (#1927)
  • Handle timer overflow message and build timestamp according to the epoch in the ixxat interface. (#1934)
  • Avoid unsupported ioctl function call to allow usage of the udp_multicast interface on MacOS. (#1940)
  • Fix configuration file parsing for the state bus parameter. (#1957)
  • Mf4Reader: support non-standard CAN_DataFrame.Dir values in mf4 files created by ihedvall/mdflib. (#1967)
  • PcanBus: Set Message.channel attribute in PcanBus.recv(). (#1969)