forked from hardbyte/python-can
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG.txt
318 lines (232 loc) · 9.96 KB
/
CHANGELOG.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
Version 4.0.0
====
(In development)
Version 3.3.4
====
Last call for Python2 support.
* #850 Fix socket.error is a deprecated alias of OSError used on Python versions lower than 3.3.
Version 3.3.3
====
Backported fixes from 4.x development branch which targets Python 3.
* #798 Backport caching msg.data value in neovi interface.
* #796 Fix Vector CANlib treatment of empty app name.
* #771 Handle empty CSV file.
* #741 ASCII reader can now handle FD frames.
* #740 Exclude test packages from distribution.
* #713 RTR crash fix in canutils log reader parsing RTR frames.
* #701 Skip J1939 messages in ASC Reader.
* #690 Exposes a configuration option to allow the CAN message player to send error frames
(and sets the default to not send error frames).
* #638 Fixes the semantics provided by periodic tasks in SocketCAN interface.
* #628 Avoid padding CAN_FD_MESSAGE_64 objects to 4 bytes.
* #617 Fixes the broken CANalyst-II interface.
* #605 Socketcan BCM status fix.
Version 3.3.2
====
Minor bug fix release addressing issue in PCAN RTR.
Version 3.3.1
====
Minor fix to setup.py to only require pytest-runner when necessary.
Version 3.3.0
====
* Adding CAN FD 64 frame support to blf reader
* Updates to installation instructions
* Clean up bits generator in PCAN interface #588
* Minor fix to use latest tools when building wheels on travis.
Version 3.2.1
====
* CAN FD 64 frame support to blf reader
* Minor fix to use latest tools when building wheels on travis.
* Updates links in documentation.
Version 3.2.0
====
Major features
--------------
* FD support added for Pcan by @bmeisels with input from
@markuspi, @christiansandberg & @felixdivo in PR #537
* This is the last version of python-can which will support Python 2.7
and Python 3.5. Support has been removed for Python 3.4 in this
release in PR #532
Other notable changes
---------------------
* #533 BusState is now an enum.
* #535 This release should automatically be published to PyPi by travis.
* #577 Travis-ci now uses stages.
* #548 A guide has been added for new io formats.
* #550 Finish moving from nose to pytest.
* #558 Fix installation on Windows.
* #561 Tests for MessageSync added.
General fixes, cleanup and docs changes can be found on the GitHub milestone
https://github.com/hardbyte/python-can/milestone/7?closed=1
Pulls: #522, #526, #527, #536, #540, #546, #547, #548, #533, #559, #569, #571, #572, #575
Backend Specific Changes
------------------------
pcan
~~~~
* FD
slcan
~~~~
* ability to set custom can speed instead of using predefined speed values. #553
socketcan
~~~~
* Bug fix to properly support 32bit systems. #573
usb2can
~~~~
* slightly better error handling
* multiple serial devices can be found
* support for the `_detect_available_configs()` API
Pulls #511, #535
vector
~~~~
* handle `app_name`. #525
Version 3.1.1
====
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 `Message` and added unit tests
* #471 Fix CAN FD issue in kvaser interface
* #462 Fix `Notifier` issue with asyncio
* #481 Fix PCAN support on OSX
* #455 Fix to `Message` initializer
* Small bugfixes and improvements
Version 3.1.0
====
Version 3.1.0 was built with old wheel and/or setuptools
packages and was replaced with v3.1.1 after an installation
but was discovered.
Version 3.0.0
====
Major features
--------------
* Adds support for developing `asyncio` applications with `python-can` more 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. (`python -m can.viewer`) #390
* More formally adds task management responsibility to the `Bus`. By default tasks created with
`bus.send_periodic` will 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 pass `store_task=False` to the `send_periodic` method. Stop all tasks
by calling the bus's new `stop_all_periodic_tasks` method. #412
Breaking changes
----------------
* Interfaces should no longer override `send_periodic` and instead implement
`_send_periodic_internal` to allow the Bus base class to manage tasks. #426
* writing to closed writers is not supported any more (it was supported only for some)
* the file in the reader/writer is now always stored in the attribute uniformly called `file`, and not in
something like `fp`, `log_file` or `output_file`. Changed the name of the first parameter of the
read/writer constructors from `filename` to `file`.
Other notable changes
---------------------
* can.Message class updated #413
- Addition of a `Message.equals` method.
- Deprecate id_type in favor of is_extended_id
- Initializer parameter extended_id deprecated 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`/`SqliteWriter` can be adjusted
- append mode added in `CSVWriter` and `CanutilsLogWriter`
- [file-like](https://docs.python.org/3/glossary.html#term-file-like-object) and
[path-like](https://docs.python.org/3/glossary.html#term-path-like-object) objects can now be passed to
the readers and writers (except to the Sqlite handlers)
- add a `__ne__()` method to the `Message` class (this was required by the tests)
- added a `stop()` method for `BufferedReader`
- `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_line` attribute from `CSVReader` has been removed
- privatized some attributes that are only to be used internally in the classes
- the method `Listener.on_message_received()` is now abstract (using `@abc.abstractmethod`)
* 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, #432)
Backend Specific Changes
------------------------
3rd party interfaces
~~~~~~~~~~~~~~~~~~~~
* Deprecated `python_can.interface` entry point instead use `can.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_url` enabling using remote ports via `loop://`, ``socket://` and `rfc2217://` URLs. #393
* hardware handshake using `rtscts` kwarg #402
socketcan
~~~~~~~~~
* socketcan tasks now reuse a bcm socket #404, #425, #426,
* 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
Version 2.2.1 (2018-07-12)
=====
* Fix errors and warnings when importing library on Windows
* Fix Vector backend raising ValueError when hardware is not connected
Version 2.2.0 (2018-06-30)
=====
* Fallback message filtering implemented in Python for interfaces that don't offer better accelerated mechanism.
* SocketCAN interfaces have been merged (Now use `socketcan` instead of either `socketcan_native` and `socketcan_ctypes`),
this is now completely transparent for the library user.
* automatic detection of available configs/channels in supported interfaces.
* Added synchronized (thread-safe) Bus variant.
* context manager support for the Bus class.
* Dropped support for Python 3.3 (officially reached end-of-life in Sept. 2017)
* Deprecated the old `CAN` module, please use the newer `can` entry point (will be removed in an upcoming major version)
Version 2.1.0 (2018-02-17)
=====
* 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
Version 2.0.0 (2018-01-05
=====
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.player` script to replay log files
* BLF, ASC log file support added in new `can.io` module
You can install from [PyPi](https://pypi.python.org/pypi/python-can/2.0.0) 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/