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
- SqlReaderand- SqlWriterhave been renamed to- SqliteReaderand- SqliteWriter. #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/