Skip to content

v2.0

Compare
Choose a tag to compare
@pylessard pylessard released this 09 Jan 03:13
· 21 commits to v2.x since this release
f517322

Major changes

  • The TransportLayer handle its own timing by running an internal thread. No need to call process anymore
  • The user provided rxfn is expected to be blocking and respect a timeout passed as an argument. CPU throttling will be applied by calls to sleep() if the given timeout is not respected.
  • squash_stmin_requirement has been replaced by override_receiver_stmin
  • Many internal methods/properties have been prefixed with an underscore to indicates that they are internal
  • The error handler is called from a different thread.
  • The isotp.socket.recv does not return None on Timeout anymore
  • Minimal Python version is 3.7
  • isotp.socket.bind now requires an isotp.Address object and is no more backward compatible with old interface

Improvements

  • Timing behaviors has been globally improved. The pure python implementation running in the user space is able to reach similar timings as the kernel module when running on a vcan interface
  • Blocking sends are now possible
  • Added NotifierBasedCanStack which is an improved version of the CanStack object using a can.Notifier improving performances and avoiding starvation of other readers.
  • Asymmetric addressing is possible, meaning sending and receiving with different address schemes
  • ConsecutiveFrame wait period can be achieved by a user-passed function (default to time.sleep)
  • Possible to send data using a generator
  • Test suite is more robust
  • Type hints are coupled with the code

Bugfix

  • Fixed missing parameter check in Address
  • Receiving a wait frame when wftmax is set to 0 triggers the error handle only when reception is not idle.