Releases: hardbyte/python-can
3.1.0
Major features
Two new interfaces this release:
- SYSTEC contributed by @idaniel86 in PR #466
- CANalyst-II contributed by @smeng9 in PR #476
Other notable changes
- #477 The kvaser interface now supports bus statistics via a custom bus method.
- #434 neovi now supports receiving own messages
- #490 Adding option to override the neovi library name
- #488 Allow simultaneous access to IXXAT cards
- #447 Improvements to serial interface:
- to allow receiving partial messages
- to fix issue with DLC of remote frames
- addition of unit tests
- #497 Small API changes to
Messageand added unit tests - #471 Fix CAN FD issue in kvaser interface
- #462 Fix
Notifierissue with asyncio - #481 Fix PCAN support on OSX
- #455 Fix to
Messageinitializer - Small bugfixes and improvements
3.1.0
New Interfaces
- SYSTEC contributed by @idaniel86 in PR #466
- CANalyst-II contributed by @smeng9 in PR #476
New Features
- #477 kvaser interface now supports bus statistics via a custom bus method.
- #471 fix CAN FD issue in kvaser interface
- #434 neovi supports receiving own messages
- #447 improvements to serial interface:
- to allow receiving partial messages
- to fix issue with DLC of remote frames
- addition of unit tests
- #462
Notifierissue with asyncio. - #481 - Fix PCAN support on OSX.
- #455 minor fix to
Messageinitializer.
See all the merged pull requests here.
3.0.0
Major features
- Adds support for developing
asyncioapplications withpython-canmore easily. This can be useful
when implementing protocols that handles simultaneous connections to many nodes since you can write
synchronous looking code without handling multiple threads and locking mechanisms. #388 - New can viewer terminal application. #390
- More formally adds task management responsibility to the
Bus. By default tasks created with
bus.send_periodicwill have a reference held by the bus - this means in many cases the user
doesn't need to keep the task in scope for their periodic messages to continue being sent. If
this behavior isn't desired passstore_task=Falseto thesend_periodicmethod. Stop all tasks
by calling the bus's newstop_all_periodic_tasksmethod. #412
Breaking changes
- Interfaces should no longer override
send_periodicand instead implement
_send_periodic_internal#426 - writing to closed writers is not supported any more (it was supported only for some)
- the method
Listener.on_message_received()is now abstract (using@abc.abstractmethod) - the file in the reader/writer is now always stored in the attribute uniformly called
file, and not in
something likefp,log_fileoroutput_file. Changed the name of the first parameter of the
read/writer constructors fromfilenametofile.
Backend Specific Changes
3rd party interfaces
- Deprecated
python_can.interfaceentry point instead usecan.interface. #389
neovi
- Added support for CAN-FD #408
- Fix issues checking if bus is open. #381
- Adding multiple channels support. #415
nican
- implements reset instead of custom
flush_tx_buffer. #364
pcan
- now supported on OSX. #365
serial
- Removed TextIOWrapper from serial. #383
- switch to
serial_for_urlenabling using remote ports vialoop://, ``socket://andrfc2217://` URLs. #393 - hardware handshake using
rtsctskwarg #402
socketcan
- socketcan tasks now reuse a bcm socket
- socketcan bugfix to receive error frames #384
vector
- Vector interface now implements
_detect_available_configs. #362 - Added support to select device by serial number. #387
Other notable changes
- can.Message class updated #413
- Addition of a Message.equals method.
- Deprecate id_type in favor of is_extended_id
- documentation, testing and example updates
- Addition of support for various builtins: repr, slots, copy
- IO module updates to bring consistency to the different CAN message writers and readers. #348
- context manager support for all readers and writers
- they share a common super class called
BaseIOHandler - all file handles can now be closed with the
stop()method - the table name in
SqliteReader/SqliteWritercan be adjusted - append mode added in
CSVWriterandCanutilsLogWriter - file-like and
path-like objects can now be passed to
the readers and writers (except to the Sqlite handlers) - add a
__ne__()method to theMessageclass (this was required by the tests) - added a
stop()method forBufferedReader SqliteWriter: this now guarantees that all messages are being written, exposes some previously internal metrics
and only buffers messages up to a certain limit before writing/committing to the database.- the unused
header_lineattribute fromCSVReaderhas been removed - privatized some attributes that are only to be used internally in the classes
- Start testing against Python 3.7 #380
- All scripts have been moved into
can/scripts. #370, #406 - Added support for additional sections to the config #338
- Code coverage reports added. #346, #374
- Bug fix to thread safe bus. #397
General fixes, cleanup and docs changes: (#347, #348, #367, #368, #370, #371, #373, #420, #417, #419)
Documentation: https://python-can.readthedocs.io/en/3.0.0/
Installation
pip install python-can==3.0.0
2.2.1
Bug fixes
- Fix errors and warnings when importing library on Windows
- Fix Vector backend raising ValueError when hardware is not connected
Installation
Get it from PyPi:
pip install -U python-can==2.2.1
2.2.0
Major Features
- Fallback message filtering implemented in Python for interfaces that don't offer better accelerated mechanism. #157, #277, #104
- SocketCAN interfaces have been merged (
socketcan_nativeandsocketcan_ctypes), this is now completely transparent for the library user. #326 - automatic detection of available configs/channels in supported interfaces (see #303)
- Added synchronized (thread-safe) Bus variant. #315
- context manager support for the Bus class. #283
- added CSVReader. Improved testing of CSVReader/CSVWriter #270
- Notifier supports multiple buses #332
Removals
- Dropped support for Python 3.3 (officially reached end-of-life in Sept. 2017)
- Deprecated the old
CANmodule, please use the newercanentry point (will be removed in version 2.4). #267
Interface Specific Changes
There were many changes and a lot of cleanup effort in the individual interfaces. Some of the highlights:
SocketCAN
Use socketcan in the future instead of socketcan_native or socketcan_ctypes
VectorCAN
- CAN FD support #311
- Fix bug where messages were sent to only one virtual channel #302
- Various fixes in #258:
- Avoid polling by using Win32 events when possible
- Support for receive_own_messages argument
PCAN
Use configured bitrate. #254
USB2CAN
Show stopping bug #219 has been fixed.
Minor Changes
- Minor api change to the
can.Notifieraddingadd_listenerandremove_listenermethods #266 SqlReaderandSqlWriterhave been renamed toSqliteReaderandSqliteWriter. #263- readers/writers now support error frames correctly. #217, #247, #256
- bug fixes
- a lot of (CI) testing effort. #342
- improved documentation
- code cleanup. #309
Installation
Get it from PyPi:
pip install -U python-can==2.2.0
2.1
- Support for out of tree can interfaces with pluggy.
- Initial support for CAN-FD for socketcan_native and kvaser interfaces.
- Neovi interface now uses Intrepid Control Systems's own interface library.
- Improvements and new documentation for SQL reader/writer.
- Fix bug in neovi serial number decoding.
- Add testing on OSX to TravisCI
- Fix non english decoding error on pcan
- Other misc improvements and bug fixes
Available in all good cheese shops:
pip install python-can==2.1.0
Documentation available on readthedocs.
2.0
After an extended baking period we have finally tagged version 2.0.0!
Quite a few major Changes from v1.x:
- New interfaces:
- Vector
- NI-CAN
- isCAN
- neoVI
- Simplified periodic send API with initial support for SocketCAN
- Protocols module including J1939 support removed
- Logger script moved to module
can.logger - New
can.playerscript to replay log files - BLF, ASC log file support added in new
can.iomodule
You can install from PyPi with pip:
pip install python-can==2.0.0
The documentation for v2.0.0 is available at http://python-can.readthedocs.io/en/2.0.0/