cliechti | 3509fba | 2009-07-30 21:32:05 +0000 | [diff] [blame] | 1 | ======================== |
| 2 | pySerial Release Notes |
| 3 | ======================== |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 4 | |
cliechti | 65ec639 | 2002-02-14 01:31:49 +0000 | [diff] [blame] | 5 | Version 1.0 13 Feb 2002 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 6 | --------------------------- |
| 7 | - First public release. |
| 8 | - Split from the pybsl application (see http://mspgcc.sourceforge.net) |
| 9 | |
| 10 | New Features: |
| 11 | |
| 12 | - Added Jython support |
| 13 | |
| 14 | |
cliechti | 65ec639 | 2002-02-14 01:31:49 +0000 | [diff] [blame] | 15 | Version 1.1 14 Feb 2002 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 16 | --------------------------- |
| 17 | Bugfixes: |
| 18 | |
| 19 | - Win32, when not specifying a timeout |
| 20 | - Typos in the Docs |
cliechti | 8450857 | 2009-07-30 21:15:57 +0000 | [diff] [blame] | 21 | |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 22 | New Features: |
| 23 | |
| 24 | - added ``serialutil`` which provides a base class for the ``Serial`` |
| 25 | objects. |
| 26 | |
| 27 | - ``readline``, ``readlines``, ``writelines`` and ``flush`` are now supported |
| 28 | see README.txt for deatils. |
| 29 | |
cliechti | 1dbe4b6 | 2002-02-14 02:49:25 +0000 | [diff] [blame] | 30 | |
| 31 | Version 1.11 14 Feb 2002 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 32 | --------------------------- |
| 33 | Same as 1.1 but added missing files. |
| 34 | |
cliechti | e319968 | 2002-02-18 19:33:03 +0000 | [diff] [blame] | 35 | |
| 36 | Version 1.12 18 Feb 2002 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 37 | --------------------------- |
| 38 | Removed unneded constants to fix RH7.x problems. |
| 39 | |
cliechti | e319968 | 2002-02-18 19:33:03 +0000 | [diff] [blame] | 40 | |
cliechti | 3c422cc | 2002-04-08 23:16:11 +0000 | [diff] [blame] | 41 | Version 1.13 09 Apr 2002 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 42 | --------------------------- |
| 43 | Added alternate way for enabling rtscts (CNEW_RTSCTS is tried too) |
| 44 | If port opening fails, a ``SerialException`` is raised on all platforms |
| 45 | |
cliechti | a9e4e95 | 2002-05-26 01:20:22 +0000 | [diff] [blame] | 46 | |
cliechti | 1e4b343 | 2002-06-04 18:30:06 +0000 | [diff] [blame] | 47 | Version 1.14 29 May 2002 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 48 | --------------------------- |
| 49 | Added examples to archive |
| 50 | Added non-blocking mode for ``timeout=0`` (tnx Mat Martineau) |
cliechti | 1e4b343 | 2002-06-04 18:30:06 +0000 | [diff] [blame] | 51 | |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 52 | Bugfixes: |
| 53 | |
| 54 | - win32 does now return the remaining characters on timeout |
| 55 | |
cliechti | 1e4b343 | 2002-06-04 18:30:06 +0000 | [diff] [blame] | 56 | |
| 57 | Version 1.15 04 Jun 2002 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 58 | --------------------------- |
| 59 | Bugfixes (win32): |
| 60 | |
| 61 | - removed debug messages |
| 62 | - compatibility to win9x improved |
| 63 | |
cliechti | 1e4b343 | 2002-06-04 18:30:06 +0000 | [diff] [blame] | 64 | |
cliechti | 20eeeab | 2002-07-02 20:00:50 +0000 | [diff] [blame] | 65 | Version 1.16 02 Jul 2002 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 66 | --------------------------- |
| 67 | Added implementation of RI and corrected RTS/CTS on Win32 |
| 68 | |
cliechti | 7bb452a | 2002-07-03 20:08:43 +0000 | [diff] [blame] | 69 | |
| 70 | Version 1.17 03 Jul 2002 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 71 | --------------------------- |
| 72 | Silly mix of two versions in win32 code corrected |
| 73 | |
cliechti | 7bb452a | 2002-07-03 20:08:43 +0000 | [diff] [blame] | 74 | |
cliechti | 33b040d | 2002-12-06 00:21:52 +0000 | [diff] [blame] | 75 | Version 1.18 06 Dec 2002 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 76 | --------------------------- |
| 77 | Bugfixes (general): |
| 78 | |
| 79 | - remove the mapping of flush to the destructive flushOutput as |
| 80 | this is not the expected behaviour. |
| 81 | - readline: EOL character for lines can be chosen idea by |
| 82 | John Florian. |
| 83 | |
| 84 | Bugfixes (posix): |
| 85 | |
| 86 | - cygwin port numbering fixed |
| 87 | - test each and every constant for it's existence in termios module, |
| 88 | use default if not existent (fix for Bug item #640214) |
cliechti | 949e15d | 2009-02-07 00:24:03 +0000 | [diff] [blame] | 89 | - wrong exception on nonexistent ports with /dev file. bug report |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 90 | by Louis Cordier |
| 91 | |
| 92 | Bugfixes (win32): |
| 93 | |
cliechti | 949e15d | 2009-02-07 00:24:03 +0000 | [diff] [blame] | 94 | - RTS/CTS handling as suggested in Bug #635072 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 95 | - bugfix of timeouts brought up by Markus Hoffrogge |
cliechti | 6c468b3 | 2003-03-19 01:46:06 +0000 | [diff] [blame] | 96 | |
cliechti | 3509fba | 2009-07-30 21:32:05 +0000 | [diff] [blame] | 97 | |
cliechti | 6c468b3 | 2003-03-19 01:46:06 +0000 | [diff] [blame] | 98 | Version 1.19 19 Mar 2003 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 99 | --------------------------- |
| 100 | Bugfixes (posix): |
| 101 | |
cliechti | 949e15d | 2009-02-07 00:24:03 +0000 | [diff] [blame] | 102 | - removed ``dgux`` entry which actually had a wrong comment and is |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 103 | probably not in use anywhere. |
| 104 | |
| 105 | Bugfixes (win32): |
| 106 | |
| 107 | - added ``int()`` conversion, [Bug 702120] |
cliechti | 949e15d | 2009-02-07 00:24:03 +0000 | [diff] [blame] | 108 | - remove code to set control lines in close method of win32 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 109 | version. [Bug 669625] |
cliechti | 6c468b3 | 2003-03-19 01:46:06 +0000 | [diff] [blame] | 110 | |
cliechti | 3509fba | 2009-07-30 21:32:05 +0000 | [diff] [blame] | 111 | |
cliechti | 356a736 | 2003-08-28 22:39:48 +0000 | [diff] [blame] | 112 | Version 1.20 28 Aug 2003 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 113 | --------------------------- |
| 114 | - Added ``serial.device()`` for all platforms |
| 115 | |
| 116 | Bugfixes (win32): |
| 117 | |
cliechti | 949e15d | 2009-02-07 00:24:03 +0000 | [diff] [blame] | 118 | - don't recreate overlapped structures and events on each |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 119 | read/write. |
cliechti | 949e15d | 2009-02-07 00:24:03 +0000 | [diff] [blame] | 120 | - don't set unneeded event masks. |
Jakub Wilk | 772a6fa | 2016-12-20 21:59:27 +0100 | [diff] [blame] | 121 | - don't use DOS device names for ports > 9. |
| 122 | - remove send timeout (it's not used in the linux impl. anyway). |
cliechti | 3a77ac8 | 2003-09-30 00:01:02 +0000 | [diff] [blame] | 123 | |
| 124 | |
cliechti | 8450857 | 2009-07-30 21:15:57 +0000 | [diff] [blame] | 125 | Version 1.21 30 Sep 2003 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 126 | --------------------------- |
| 127 | Bugfixes (win32): |
| 128 | |
| 129 | - name for COM10 was not built correctly, found by Norm Davis. |
| 130 | |
| 131 | Bugfixes (examples): |
| 132 | |
| 133 | - small change in ``miniterm.py`` that should mage it run on cygwin, |
| 134 | [Bug 809904] submitted by Rolf Campbell. |
cliechti | d6bf52c | 2003-10-01 02:28:12 +0000 | [diff] [blame] | 135 | |
cliechti | 3509fba | 2009-07-30 21:32:05 +0000 | [diff] [blame] | 136 | |
cliechti | 80a0ed1 | 2003-10-03 23:53:42 +0000 | [diff] [blame] | 137 | Version 2.0b1 1 Oct 2003 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 138 | --------------------------- |
| 139 | Transition to the Python 2.0 series: |
| 140 | |
| 141 | - New implementation only supports Python 2.2+, backwards compatibility |
| 142 | should be maintained almost everywhere. |
| 143 | The OS handles (like the ``hComPort`` or ``fd`` attribute) were prefixed |
| 144 | with an underscore. The different names stay, as anyone that uses one of |
| 145 | these has to write platform specific code anyway. |
| 146 | - Common base class ``serialutil.SerialBase`` for all implementations. |
| 147 | - ``PARITY_NONE``, ``PARITY_EVEN``, ``PARITY_ODD`` constants changed and all |
| 148 | these constants moved to ``serialutil.py`` (still available as |
| 149 | ``serial.PARITY_NONE`` etc. and they should be used that way) |
| 150 | - Added ``serial.PARITY_NAMES`` (implemented in ``serialutil.PARITY_NAMES``). |
| 151 | This dictionary can be used to convert parity constants to meaningful |
| 152 | strings. |
| 153 | - Each Serial class and instance has a list of supported values: |
cliechti | 31000fc | 2011-08-05 01:47:26 +0000 | [diff] [blame] | 154 | ``BAUDRATES``, ``BYTESIZES``, ``PARITIES``, ``STOPBITS``Ggg |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 155 | (i.e. ``serial.Serial.BAUDRATES or s = serial.Serial; s.BAUDRATES``) |
| 156 | these values can be used to fill in value sin GUI dialogs etc. |
| 157 | - Creating a ``Serial()`` object without port spec returns an unconfigured, |
| 158 | closed port. Useful if a GUI dialog should take a port and configure |
| 159 | it. |
| 160 | - New methods for ``serial.Serial`` instances: ``open()``, ``isOpen()`` |
| 161 | - A port can be opened and closed as many times as desired. |
| 162 | - Instances of ``serial.Serial`` have ``baudrate``, ``bytesize``, ``timeout`` |
| 163 | etc. attributes implemented as properties, all can be set while the port is |
| 164 | opened. It will then be reconfigured. |
| 165 | - Improved ``__doc__``'s. |
| 166 | - New ``test_advanced.py`` for the property setting/getting testing. |
| 167 | - Small bugfix on posix with get* methods (return value should be true a |
| 168 | boolean). |
| 169 | - added a ``__repr__`` that returns a meaningful string will all the serial |
| 170 | setting, easy for debugging. |
| 171 | - The serialposix module does not throw an exception on unsupported |
| 172 | platforms, the message is still printed. The idea that it may still |
| 173 | work even if the platform itself s not known, it simply tries to do |
| 174 | the posix stuff anyway (It's likely that opening ports by number |
| 175 | fails, but by name it should work). |
| 176 | |
cliechti | 80a0ed1 | 2003-10-03 23:53:42 +0000 | [diff] [blame] | 177 | |
cliechti | 1354878 | 2003-10-04 16:10:39 +0000 | [diff] [blame] | 178 | Version 2.0b2 4 Oct 2003 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 179 | --------------------------- |
| 180 | - Added serial port configuration dialog for wxPython to the examples. |
| 181 | - Added terminal application for wxPython with wxGlade design file |
| 182 | to the examples. |
cliechti | 949e15d | 2009-02-07 00:24:03 +0000 | [diff] [blame] | 183 | - Jython support is currently broken as Jython does not have a Python 2.2 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 184 | compatible release out yet |
| 185 | |
cliechti | 1354878 | 2003-10-04 16:10:39 +0000 | [diff] [blame] | 186 | |
cliechti | 5600e7c | 2003-11-06 22:17:21 +0000 | [diff] [blame] | 187 | Version 2.0 6 Nov 2003 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 188 | --------------------------- |
| 189 | - Fixes ``setup.py`` for older distutils |
| 190 | |
cliechti | c617826 | 2004-03-22 22:04:52 +0000 | [diff] [blame] | 191 | |
cliechti | af3dfd5 | 2004-07-28 00:52:06 +0000 | [diff] [blame] | 192 | Version 2.1 28 Jul 2004 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 193 | --------------------------- |
| 194 | Bugfixes: |
| 195 | |
| 196 | - Fix XON/XOFF values [Bug 975250] |
| 197 | |
| 198 | Bugfixes (posix): |
| 199 | |
| 200 | - ``fd == 0`` fix from Vsevolod Lobko |
| 201 | - netbsd fixes from Erik Lindgren |
Jakub Wilk | 772a6fa | 2016-12-20 21:59:27 +0100 | [diff] [blame] | 202 | - Dynamically lookup baudrates and some cleanups |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 203 | |
| 204 | Bugfixes (examples): |
| 205 | |
| 206 | - CRLF handling of ``miniterm.py`` should be more consistent on Win32 |
| 207 | and others. Added LF only command line option |
| 208 | - Multithreading fixes to ``wxTerminal.py`` (helps with wxGTK) |
| 209 | - Small change for wxPython 2.5 in ``wxSerialConfigDialog.py`` [Bug 994856] |
| 210 | |
| 211 | New Features: |
| 212 | |
| 213 | - Implement write timeouts (``writeTimeout`` parameter) |
cliechti | 7ffcfef | 2004-07-28 01:08:25 +0000 | [diff] [blame] | 214 | |
| 215 | |
cliechti | 3e57b3d | 2005-08-12 21:04:44 +0000 | [diff] [blame] | 216 | Version 2.2 31 Jul 2005 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 217 | --------------------------- |
| 218 | Bugfixes: |
cliechti | 7ffcfef | 2004-07-28 01:08:25 +0000 | [diff] [blame] | 219 | |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 220 | - [Bug 1014227]: property <del> broken |
| 221 | - [Bug 1105687]: ``serial_tcp_example.py``: ``--localport`` option |
| 222 | - [Bug 1106313]: device (port) strings cannot be unicode |
| 223 | |
| 224 | Bugfixes (posix): |
| 225 | |
| 226 | - [Patch 1043436] Fix for [Bug 1043420] (OSError: EAGAIN) |
| 227 | - [Patch 1102700] ``fileno()`` added |
| 228 | - ensure disabled PARMRK |
| 229 | |
| 230 | Bugfixes (win32): |
| 231 | |
| 232 | - [Patch 983106]: keep RTS/CTS state on port setting changes |
| 233 | |
| 234 | New Features: |
| 235 | |
| 236 | - ``dsrdtr`` setting to enable/disable DSR/DTR flow control independently |
Jakub Wilk | 772a6fa | 2016-12-20 21:59:27 +0100 | [diff] [blame] | 237 | from the ``rtscts`` setting. (Currently Win32 only, ignored on other |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 238 | platforms) |
| 239 | |
cliechti | f46e0a8 | 2005-05-19 15:24:57 +0000 | [diff] [blame] | 240 | |
cliechti | f2d96b4 | 2008-06-19 00:37:18 +0000 | [diff] [blame] | 241 | Version 2.3 19 Jun 2008 |
cliechti | cf709e6 | 2005-12-21 00:57:56 +0000 | [diff] [blame] | 242 | --------------------------- |
| 243 | New Features: |
| 244 | |
cliechti | aaa0460 | 2006-02-05 23:02:46 +0000 | [diff] [blame] | 245 | - iterator interface. ``for line in Serial(...): ...`` is now possible |
cliechti | 997b63c | 2008-06-21 00:09:31 +0000 | [diff] [blame] | 246 | Suggested by Bernhard Bender |
cliechti | aaa0460 | 2006-02-05 23:02:46 +0000 | [diff] [blame] | 247 | - ``sendBreak()`` accepts a ``duration`` argument. Default duration increased. |
cliechti | f19610b | 2008-06-18 23:27:30 +0000 | [diff] [blame] | 248 | - win32 handles \\.\COMx format automatically for com ports of higher number |
| 249 | (COM10 is internally translated to \\.\COM10 etc.) |
cliechti | 9c592b3 | 2008-06-16 22:00:14 +0000 | [diff] [blame] | 250 | - miniterm.py has a new feature to send a file (upload) and configurable |
| 251 | special characters for exit and upload. Refactored internals to class based |
| 252 | structure (upload and class refactoring by Colin D Bennett) |
| 253 | |
cliechti | b2f5fc8 | 2006-10-20 00:09:07 +0000 | [diff] [blame] | 254 | Bugfixes: |
| 255 | |
| 256 | - [Bug 1451535] TCP/serial redirect example "--help" |
cliechti | 9c592b3 | 2008-06-16 22:00:14 +0000 | [diff] [blame] | 257 | - update VERSION variable |
cliechti | f2d96b4 | 2008-06-19 00:37:18 +0000 | [diff] [blame] | 258 | - update wxSerialConfigDialog.py and wxTerminal.py compatibility with |
| 259 | wxPython 2.8 (Peleg) |
cliechti | cc8d9d2 | 2008-07-06 22:42:44 +0000 | [diff] [blame] | 260 | - Check for string in write function. Using unicode causes errors, this |
cliechti | c54b2c8 | 2008-06-21 01:59:08 +0000 | [diff] [blame] | 261 | helps catching errors early (Tom Lynn) |
cliechti | b2f5fc8 | 2006-10-20 00:09:07 +0000 | [diff] [blame] | 262 | |
| 263 | Bugfixes (posix): |
| 264 | |
cliechti | 949e15d | 2009-02-07 00:24:03 +0000 | [diff] [blame] | 265 | - [Bug 1554183] setRTS/setDTR reference to non existing local "on" |
cliechti | b2f5fc8 | 2006-10-20 00:09:07 +0000 | [diff] [blame] | 266 | - [Bug 1513653] file descriptor not closed when exception is thrown |
cliechti | eaa9688 | 2008-06-16 22:59:20 +0000 | [diff] [blame] | 267 | - FreeBSD now uses cuadX instead of cuaaX (Patrick Phalen) |
cliechti | b2f5fc8 | 2006-10-20 00:09:07 +0000 | [diff] [blame] | 268 | |
| 269 | Bugfixes (win32): |
| 270 | |
| 271 | - [Bug 1520357] Handle leak |
cliechti | cc8d9d2 | 2008-07-06 22:42:44 +0000 | [diff] [blame] | 272 | - [Bug 1679013] Ignore exception raised by SetCommTimeout() in close(). |
cliechti | 71058bb | 2008-06-19 00:21:55 +0000 | [diff] [blame] | 273 | - [Bug 1938118] process hang forever under XP |
cliechti | e8c4542 | 2008-06-20 23:23:14 +0000 | [diff] [blame] | 274 | |
| 275 | |
cliechti | cc8d9d2 | 2008-07-06 22:42:44 +0000 | [diff] [blame] | 276 | Version 2.4 6 Jul 2008 |
cliechti | e8c4542 | 2008-06-20 23:23:14 +0000 | [diff] [blame] | 277 | --------------------------- |
| 278 | New Features: |
cliechti | c54b2c8 | 2008-06-21 01:59:08 +0000 | [diff] [blame] | 279 | |
cliechti | 679bfa6 | 2008-06-20 23:58:15 +0000 | [diff] [blame] | 280 | - [Patch 1616790] pyserial: Add inter-character timeout feature |
cliechti | 44b3cce | 2008-06-24 12:19:11 +0000 | [diff] [blame] | 281 | - [Patch 1924805] add a setBreak function |
cliechti | c54b2c8 | 2008-06-21 01:59:08 +0000 | [diff] [blame] | 282 | - Add mark/space parity |
cliechti | cc8d9d2 | 2008-07-06 22:42:44 +0000 | [diff] [blame] | 283 | - Add .NET/Mono backend (IronPython) |
cliechti | c54b2c8 | 2008-06-21 01:59:08 +0000 | [diff] [blame] | 284 | |
cliechti | e8c4542 | 2008-06-20 23:23:14 +0000 | [diff] [blame] | 285 | Bugfixes (posix): |
cliechti | c54b2c8 | 2008-06-21 01:59:08 +0000 | [diff] [blame] | 286 | |
cliechti | e8c4542 | 2008-06-20 23:23:14 +0000 | [diff] [blame] | 287 | - [Bug 1783159] Arbitrary baud rates (Linux/Posix) |
cliechti | 997b63c | 2008-06-21 00:09:31 +0000 | [diff] [blame] | 288 | |
cliechti | 679bfa6 | 2008-06-20 23:58:15 +0000 | [diff] [blame] | 289 | Bugfixes (win32): |
cliechti | c54b2c8 | 2008-06-21 01:59:08 +0000 | [diff] [blame] | 290 | |
| 291 | - [Patch 1561423] Add mark/space parity, Win32 |
cliechti | cc8d9d2 | 2008-07-06 22:42:44 +0000 | [diff] [blame] | 292 | - [Bug 2000771] serial port CANNOT be specified by number on windows |
cliechti | 44b3cce | 2008-06-24 12:19:11 +0000 | [diff] [blame] | 293 | - examples/scanwin32.py does no longer return \\.\ names |
| 294 | - fix \\.\ handling for some cases |
cliechti | cc8d9d2 | 2008-07-06 22:42:44 +0000 | [diff] [blame] | 295 | |
| 296 | Bugfixes (jython): |
| 297 | |
| 298 | - The Jython backend tries javax.comm and gnu.io (Seo Sanghyeon) |
| 299 | |
cliechti | 54f69b6 | 2009-07-21 19:48:41 +0000 | [diff] [blame] | 300 | |
cliechti | f571644 | 2010-01-02 03:06:21 +0000 | [diff] [blame] | 301 | Version 2.5-rc1 2009-07-30 |
cliechti | 949e15d | 2009-02-07 00:24:03 +0000 | [diff] [blame] | 302 | --------------------------- |
| 303 | New Features: |
| 304 | |
cliechti | 8450857 | 2009-07-30 21:15:57 +0000 | [diff] [blame] | 305 | - Python 3.x support (through 2to3) |
| 306 | - compatible with Python io library (Python 2.6+) |
cliechti | 183d4ae | 2009-07-23 22:03:51 +0000 | [diff] [blame] | 307 | - Support for Win32 is now written on the top of ctypes (bundled with |
| 308 | Python 2.5+) instead of pywin32 (patch by Giovanni Bajo). |
cliechti | 8450857 | 2009-07-30 21:15:57 +0000 | [diff] [blame] | 309 | - 1.5 stop bits (STOPBITS_ONE_POINT_FIVE, implemented on all platforms) |
cliechti | 8450857 | 2009-07-30 21:15:57 +0000 | [diff] [blame] | 310 | - miniterm application extended (CTRL+T -> menu) |
| 311 | - miniterm.py is now installed as "script" |
| 312 | - add scanlinux.py example |
| 313 | - add port_publisher example |
cliechti | 60ae792 | 2009-08-10 01:42:59 +0000 | [diff] [blame] | 314 | - experimental RFC-2217 server support (examples/rfc2217_server.py) |
cliechti | 60ae792 | 2009-08-10 01:42:59 +0000 | [diff] [blame] | 315 | - add ``getSettingsDict`` and ``applySettingsDict`` serial object methods |
cliechti | f571644 | 2010-01-02 03:06:21 +0000 | [diff] [blame] | 316 | - use a ``poll`` based implementation on Posix, instead of a ``select`` based, |
cliechti | 32eafec | 2010-07-21 23:28:15 +0000 | [diff] [blame] | 317 | provides better error handling [removed again in later releases]. |
cliechti | 58b481c | 2009-02-16 20:42:32 +0000 | [diff] [blame] | 318 | |
cliechti | 949e15d | 2009-02-07 00:24:03 +0000 | [diff] [blame] | 319 | Bugfixes: |
| 320 | |
| 321 | - Improve and fix tcp_serial_redirector example. |
cliechti | 58b481c | 2009-02-16 20:42:32 +0000 | [diff] [blame] | 322 | - [Bug 2603052] 5-bit mode (needs 1.5 stop bits in some cases) |
cliechti | 949e15d | 2009-02-07 00:24:03 +0000 | [diff] [blame] | 323 | |
cliechti | 512595f | 2009-07-21 22:04:58 +0000 | [diff] [blame] | 324 | Bugfixes (posix): |
| 325 | |
| 326 | - [Bug 2810169] Propagate exceptions raised in serialposix _reconfigure |
cliechti | 53c9fd4 | 2009-07-23 23:51:51 +0000 | [diff] [blame] | 327 | - [Bug 2562610] setting non standard baud rates on Darwin (Emmanuel Blot) |
cliechti | 512595f | 2009-07-21 22:04:58 +0000 | [diff] [blame] | 328 | |
cliechti | 949e15d | 2009-02-07 00:24:03 +0000 | [diff] [blame] | 329 | Bugfixes (win32): |
| 330 | |
cliechti | 54f69b6 | 2009-07-21 19:48:41 +0000 | [diff] [blame] | 331 | - [Bug 2469098] parity PARITY_MARK, PARITY_SPACE isn't supported on win32 |
cliechti | 3509fba | 2009-07-30 21:32:05 +0000 | [diff] [blame] | 332 | - [SF 2446218] outWaiting implemented |
cliechti | 9147c44 | 2009-07-21 22:12:16 +0000 | [diff] [blame] | 333 | - [Bug 2392892] scanwin32.py better exception handling |
cliechti | 490a5c7 | 2009-07-21 23:48:35 +0000 | [diff] [blame] | 334 | - [Bug 2505422] scanwin32.py Vista 64bit compatibility |
cliechti | f571644 | 2010-01-02 03:06:21 +0000 | [diff] [blame] | 335 | |
| 336 | |
| 337 | Version 2.5-rc2 2010-01-02 |
| 338 | --------------------------- |
| 339 | New Features: |
| 340 | |
| 341 | - Documentation update, now written with Sphinx/ReST |
| 342 | - Updated miniterm.py example |
| 343 | - experimental RFC-2217 client support (serial.rfc2217.Serial, see docs) |
| 344 | - add ``loop://`` device for testing. |
| 345 | - add ``serial.serial_for_url`` factory function (support for native ports and |
| 346 | ``rfc2217``, ``socket`` and ``loop`` URLs) |
| 347 | - add new example: ``rfc2217_server.py`` |
| 348 | - tests live in their own directory now (no longer in examples) |
| 349 | |
| 350 | Bugfixes: |
| 351 | |
| 352 | - [Bug 2915810] Fix for suboption parsing in rfc2217 |
| 353 | - Packaging bug (missed some files) |
| 354 | |
| 355 | Bugfixes (posix): |
| 356 | |
| 357 | - improve write timeout behavior |
| 358 | - [Bug 2836297] move Linux specific constants to not break other platforms |
| 359 | - ``poll`` based implementation for ``read`` is in a separate class |
| 360 | ``PosixPollSerial``, as it is not supported well on all platforms (the |
| 361 | default ``Serial`` class uses select). |
| 362 | - changed error handling in ``read`` so that disconnected devices are |
| 363 | detected. |
| 364 | |
| 365 | |
| 366 | Bugfixes (win32): |
| 367 | |
cliechti | 5735a07 | 2009-10-26 23:57:48 +0000 | [diff] [blame] | 368 | - [Bug 2886763] hComPort doesn't get initialized for Serial(port=None) |
cliechti | f571644 | 2010-01-02 03:06:21 +0000 | [diff] [blame] | 369 | |
| 370 | |
cliechti | 32eafec | 2010-07-21 23:28:15 +0000 | [diff] [blame] | 371 | Version 2.5 2010-07-22 |
cliechti | f571644 | 2010-01-02 03:06:21 +0000 | [diff] [blame] | 372 | --------------------------- |
cliechti | 07709e4 | 2010-05-21 00:30:09 +0000 | [diff] [blame] | 373 | New Features: |
| 374 | |
| 375 | - [Bug 2976262] dsrdtr should default to False |
| 376 | ``dsrdtr`` parameter default value changed from ``None`` (follow ``rtscts`` |
| 377 | setting) to ``False``. This means ``rtscts=True`` enables hardware flow |
| 378 | control on RTS/CTS but no longer also on DTR/DSR. This change mostly |
| 379 | affects Win32 as on other platforms, that setting was ignored anyway. |
cliechti | 8116753 | 2010-07-21 01:12:22 +0000 | [diff] [blame] | 380 | - Improved xreadlines, it is now a generator function that yields lines as they |
| 381 | are received (previously it called readlines which would only return all |
Jakub Wilk | 772a6fa | 2016-12-20 21:59:27 +0100 | [diff] [blame] | 382 | lines read after a read-timeout). However xreadlines is deprecated and not |
cliechti | 32eafec | 2010-07-21 23:28:15 +0000 | [diff] [blame] | 383 | available when the io module is used. Use ``for line in Serial(...):`` |
| 384 | instead. |
cliechti | 07709e4 | 2010-05-21 00:30:09 +0000 | [diff] [blame] | 385 | |
| 386 | Bugfixes: |
| 387 | |
| 388 | - [Bug 2925854] test.py produces exception with python 3.1 |
cliechti | 04ca537 | 2010-07-21 00:07:22 +0000 | [diff] [blame] | 389 | - [Bug 3029812] 2.5rc2 readline(s) doesn't work |
cliechti | 07709e4 | 2010-05-21 00:30:09 +0000 | [diff] [blame] | 390 | |
cliechti | 198b7e7 | 2010-05-25 00:38:23 +0000 | [diff] [blame] | 391 | Bugfixes (posix): |
| 392 | |
| 393 | - [BUG 3006606] Nonblocking error - Unix platform |
| 394 | |
cliechti | 07709e4 | 2010-05-21 00:30:09 +0000 | [diff] [blame] | 395 | Bugfixes (win32): |
| 396 | |
| 397 | - [Bug 2998169] Memory corruption at faster transmission speeds. |
cliechti | 32eafec | 2010-07-21 23:28:15 +0000 | [diff] [blame] | 398 | (bug introduced in 2.5-rc1) |
cliechti | 07709e4 | 2010-05-21 00:30:09 +0000 | [diff] [blame] | 399 | |
cliechti | e542b36 | 2011-03-18 00:49:16 +0000 | [diff] [blame] | 400 | |
cliechti | 12ad550 | 2011-11-02 01:09:09 +0000 | [diff] [blame] | 401 | Version 2.6 2011-11-02 |
cliechti | e542b36 | 2011-03-18 00:49:16 +0000 | [diff] [blame] | 402 | --------------------------- |
| 403 | New Features: |
| 404 | |
| 405 | - Moved some of the examples to serial.tools so that they can be used |
| 406 | with ``python -m`` |
cliechti | 7bb5883 | 2011-08-05 03:55:12 +0000 | [diff] [blame] | 407 | - serial port enumeration now included as ``serial.tools.list_ports`` |
Jakub Wilk | 772a6fa | 2016-12-20 21:59:27 +0100 | [diff] [blame] | 408 | - URL handlers for ``serial_for_url`` are now imported dynamically. This allows |
cliechti | e542b36 | 2011-03-18 00:49:16 +0000 | [diff] [blame] | 409 | to add protocols w/o editing files. The list |
| 410 | ``serial.protocol_handler_packages`` can be used to add or remove user |
| 411 | packages with protocol handlers (see docs for details). |
cliechti | 6fa1911 | 2011-08-19 01:50:49 +0000 | [diff] [blame] | 412 | - new URL type: hwgrep://<regexp> uses list_ports module to search for ports |
| 413 | by their description |
Jakub Wilk | 772a6fa | 2016-12-20 21:59:27 +0100 | [diff] [blame] | 414 | - several internal changes to improve Python 3.x compatibility (setup.py, |
cliechti | 9c4644e | 2011-08-22 01:17:27 +0000 | [diff] [blame] | 415 | use of absolute imports and more) |
cliechti | 8f69e70 | 2011-03-19 00:22:32 +0000 | [diff] [blame] | 416 | |
| 417 | Bugfixes: |
| 418 | |
cliechti | 1f89a0a | 2011-08-05 02:53:24 +0000 | [diff] [blame] | 419 | - [Bug 3093882] calling open() on an already open port now raises an exception |
| 420 | - [Bug 3245627] connection-lost let rfc2217 hangs in closed loop |
cliechti | 0f2bd58 | 2011-08-05 02:58:37 +0000 | [diff] [blame] | 421 | - [Patch 3147043] readlines() to support multi-character eol |
cliechti | 31000fc | 2011-08-05 01:47:26 +0000 | [diff] [blame] | 422 | |
cliechti | 4d0af5e | 2011-08-05 02:18:16 +0000 | [diff] [blame] | 423 | Bugfixes (posix): |
| 424 | |
cliechti | 1f89a0a | 2011-08-05 02:53:24 +0000 | [diff] [blame] | 425 | - [Patch 3316943] Avoid unneeded termios.tcsetattr calls in serialposix.py |
cliechti | 7bb5883 | 2011-08-05 03:55:12 +0000 | [diff] [blame] | 426 | - [Patch 2912349] Serial Scan as a Module with Mac Support |
cliechti | 4d0af5e | 2011-08-05 02:18:16 +0000 | [diff] [blame] | 427 | |
cliechti | 31000fc | 2011-08-05 01:47:26 +0000 | [diff] [blame] | 428 | Bugfixes (win32): |
| 429 | |
cliechti | 1f89a0a | 2011-08-05 02:53:24 +0000 | [diff] [blame] | 430 | - [Bug 3057499] writeTimeoutError when write Timeout is 0 |
cliechti | 12ad550 | 2011-11-02 01:09:09 +0000 | [diff] [blame] | 431 | - [Bug 3414327] Character out of range in list_ports_windows |
cliechti | 1f89a0a | 2011-08-05 02:53:24 +0000 | [diff] [blame] | 432 | - [Patch 3036175] Windows 98 Support fix |
| 433 | - [Patch 3054352] RTS automatic toggle, for RS485 functionality. |
cliechti | de43290 | 2011-08-18 22:51:41 +0000 | [diff] [blame] | 434 | - Fix type definitions for 64 bit Windows compatibility |
cliechti | 19fdffa | 2011-11-02 01:21:02 +0000 | [diff] [blame] | 435 | |
| 436 | |
cliechti | 5425bb0 | 2013-10-17 16:02:32 +0000 | [diff] [blame] | 437 | Version 2.7 2013-10-17 |
cliechti | 19fdffa | 2011-11-02 01:21:02 +0000 | [diff] [blame] | 438 | --------------------------- |
cliechti | 22175a7 | 2011-12-29 00:17:53 +0000 | [diff] [blame] | 439 | - Win32: setRTS and setDTR can be called before the port is opened and it will |
| 440 | set the initial state on port open. |
cliechti | 771278b | 2013-10-17 03:19:00 +0000 | [diff] [blame] | 441 | - Posix: add platform specific method: outWaiting (already present for Win32) |
cliechti | 22175a7 | 2011-12-29 00:17:53 +0000 | [diff] [blame] | 442 | - Posix: rename flowControl to setXON to match name on Win32, add |
| 443 | flowControlOut function |
cliechti | eada4fd | 2013-07-31 16:26:07 +0000 | [diff] [blame] | 444 | - rfc2217: zero polls value (baudrate, data size, stop bits, parity) (Erik |
| 445 | Lundh) |
cliechti | 5425bb0 | 2013-10-17 16:02:32 +0000 | [diff] [blame] | 446 | - Posix: [Patch pyserial:28] Accept any speed on Linux [update] |
cliechti | 8d744de | 2013-10-11 14:31:13 +0000 | [diff] [blame] | 447 | - Posix: [Patch pyserial:29] PosixSerial.read() should "ignore" errno.EINTR |
cliechti | 02a8e73 | 2013-10-12 03:50:15 +0000 | [diff] [blame] | 448 | - OSX: [Patch pyserial:27] Scan by VendorID/Product ID for USB Serial devices |
cliechti | 3807712 | 2013-10-16 02:57:27 +0000 | [diff] [blame] | 449 | - Ensure working with bytes in write() calls |
cliechti | fc47529 | 2011-12-28 19:39:17 +0000 | [diff] [blame] | 450 | |
cliechti | 4b20ec6 | 2012-08-16 01:04:44 +0000 | [diff] [blame] | 451 | Bugfixes: |
| 452 | |
| 453 | - [Bug 3540332] SerialException not returned |
cliechti | 49ff1de | 2013-05-31 01:00:57 +0000 | [diff] [blame] | 454 | - [Bug pyserial:145] Error in socket_connection.py |
cliechti | 20e1fae | 2013-05-31 01:33:12 +0000 | [diff] [blame] | 455 | - [Bug pyserial:135] reading from socket with timeout=None causes TypeError |
cliechti | 4b83d66 | 2013-10-11 01:39:00 +0000 | [diff] [blame] | 456 | - [Bug pyserial:130] setup.py should not append py3k to package name |
cliechti | 5d66a95 | 2013-10-11 02:27:30 +0000 | [diff] [blame] | 457 | - [Bug pyserial:117] no error on lost conn w/socket:// |
cliechti | 4b20ec6 | 2012-08-16 01:04:44 +0000 | [diff] [blame] | 458 | |
cliechti | fc47529 | 2011-12-28 19:39:17 +0000 | [diff] [blame] | 459 | Bugfixes (posix): |
| 460 | |
| 461 | - [Patch 3462364] Fix: NameError: global name 'base' is not defined |
cliechti | 4a60134 | 2011-12-29 02:22:17 +0000 | [diff] [blame] | 462 | - list_ports and device() for BSD updated (Anders Langworthy) |
cliechti | ec5c636 | 2012-08-16 02:13:53 +0000 | [diff] [blame] | 463 | - [Bug 3518380] python3.2 -m serial.tools.list_ports error |
cliechti | a505de3 | 2013-05-31 01:27:25 +0000 | [diff] [blame] | 464 | - [Bug pyserial:137] Patch to add non-standard baudrates to Cygwin |
cliechti | af84daa | 2013-10-10 23:57:00 +0000 | [diff] [blame] | 465 | - [Bug pyserial:141] open: Pass errno from IOError to SerialException |
cliechti | 5746be3 | 2013-10-11 01:51:40 +0000 | [diff] [blame] | 466 | - [Bug pyserial:125] Undefined 'base' on list_ports_posix.py, function usb_lsusb |
cliechti | 88c6244 | 2013-10-12 04:03:16 +0000 | [diff] [blame] | 467 | - [Bug pyserial:151] Serial.write() without a timeout uses 100% CPU on POSIX |
cliechti | 95772d3 | 2013-10-11 14:38:13 +0000 | [diff] [blame] | 468 | - [Patch pyserial:30] [PATCH 1/1]Â serial.Serial() should not raise IOError. |
cliechti | fc47529 | 2011-12-28 19:39:17 +0000 | [diff] [blame] | 469 | |
cliechti | 1083be7 | 2011-12-28 20:45:30 +0000 | [diff] [blame] | 470 | Bugfixes (win32): |
| 471 | |
| 472 | - [Bug 3444941] ctypes.WinError() unicode error |
cliechti | 771278b | 2013-10-17 03:19:00 +0000 | [diff] [blame] | 473 | - [Bug 3550043] on Windows in tools global name 'GetLastError' is not defined |
cliechti | 2640978 | 2013-05-31 00:47:16 +0000 | [diff] [blame] | 474 | - [Bug pyserial:146] flush() does nothing in windows (despite docs) |
cliechti | 49ff1de | 2013-05-31 01:00:57 +0000 | [diff] [blame] | 475 | - [Bug pyserial:144] com0com ports ignored due to missing "friendly name" |
cliechti | 8d744de | 2013-10-11 14:31:13 +0000 | [diff] [blame] | 476 | - [Bug pyserial:152] Cannot configure port, some setting was wrong. Can leave |
cliechti | 387251a | 2013-10-10 23:23:32 +0000 | [diff] [blame] | 477 | port handle open but port not accessible |
cliechti | 1cfa05e | 2012-08-16 00:48:39 +0000 | [diff] [blame] | 478 | |
cliechti | 00df970 | 2014-08-04 10:12:48 +0000 | [diff] [blame] | 479 | |
Chris Liechti | c2b2679 | 2015-09-22 23:16:07 +0200 | [diff] [blame] | 480 | Version 3.0a0 2015-09-22 |
Chris Liechti | 80e2ae2 | 2015-08-04 02:59:50 +0200 | [diff] [blame] | 481 | -------------------------- |
Chris Liechti | c2b2679 | 2015-09-22 23:16:07 +0200 | [diff] [blame] | 482 | - Starting from this release, only Python 2.7 and 3.2 (or newer) are supported. |
Chris Liechti | b43ef05 | 2015-09-11 23:38:47 +0200 | [diff] [blame] | 483 | The source code is compatible to the 2.x and 3.x series without any changes. |
| 484 | The support for earlier Python versions than 2.7 is removed, please refer to |
| 485 | the pyserial-legacy (V2.x) series if older Python versions are a |
| 486 | requirement). |
Chris Liechti | 889308f | 2015-09-23 14:07:02 +0200 | [diff] [blame] | 487 | - Development moved to github, update links in docs. |
Chris Liechti | eacc3e9 | 2015-09-14 23:37:44 +0200 | [diff] [blame] | 488 | - API changes: properties for ``rts``, ``dtr``, ``cts``, ``dsr``, ``cd``, ``ri``, |
| 489 | ``in_waiting`` (instead of get/set functions) |
Chris Liechti | 80e2ae2 | 2015-08-04 02:59:50 +0200 | [diff] [blame] | 490 | - remove file ``FileLike`` class, add ``read_until`` and ``iread_until`` to |
| 491 | ``SerialBase`` |
Chris Liechti | b43ef05 | 2015-09-11 23:38:47 +0200 | [diff] [blame] | 492 | - RS485 support changed (``rts_toggle`` removed, added ``serial.rs485`` module |
| 493 | and ``rs485_mode`` property) |
| 494 | - ``socket://`` and ``rfc2217://`` handlers use the IPv6 compatible |
| 495 | ``socket.create_connection`` |
Chris Liechti | 889308f | 2015-09-23 14:07:02 +0200 | [diff] [blame] | 496 | - New URL handler: ``spy:://``. |
Chris Liechti | b43ef05 | 2015-09-11 23:38:47 +0200 | [diff] [blame] | 497 | - URL handlers now require the proper format (``?`` and ``&``) for arguments |
| 498 | instead of ``/`` (e.g. ``rfc2217://localhost:7000?ign_set_control&timeout=5.5``) |
Chris Liechti | 889308f | 2015-09-23 14:07:02 +0200 | [diff] [blame] | 499 | - Remove obsolete examples. |
| 500 | - Finish update to BSD license. |
Chris Liechti | d14b1ab | 2015-08-21 00:28:53 +0200 | [diff] [blame] | 501 | - Use setuptools if available, fall back to distutils if unavailable. |
Chris Liechti | b43ef05 | 2015-09-11 23:38:47 +0200 | [diff] [blame] | 502 | - miniterm: changed command line options |
| 503 | - miniterm: support encodings on serial port |
| 504 | - miniterm: new transformations, by default escape/convert all control characters |
Chris Liechti | c2b2679 | 2015-09-22 23:16:07 +0200 | [diff] [blame] | 505 | - list_ports: improved, added USB location (Linux, Win32) |
| 506 | - refactored code |
Chris Liechti | 889308f | 2015-09-23 14:07:02 +0200 | [diff] [blame] | 507 | - [FTR pyserial:37] Support fileno() function in the socket protocol |
| 508 | - Posix: [Patch pyserial:31] Mark/space parity on Linux |
| 509 | - Linux: [Patch pyserial:32] Module list_ports for linux should include the |
| 510 | product information as description. |
| 511 | - Java: fix 2 bugs (stop bits if/else and non-integer timeouts) (Torsten |
| 512 | Roemer) |
| 513 | - Update wxSerialConfigDialog.py to use serial.tools.list_ports. |
| 514 | - [Patch pyserial:34] Improvements to port_publisher.py example |
| 515 | - [Feature pyserial:39] Support BlueTooth serial port discovery on Linux |
Chris Liechti | 80e2ae2 | 2015-08-04 02:59:50 +0200 | [diff] [blame] | 516 | |
Chris Liechti | b74be01 | 2015-08-04 16:36:01 +0200 | [diff] [blame] | 517 | Bugfixes: |
| 518 | |
Chris Liechti | 889308f | 2015-09-23 14:07:02 +0200 | [diff] [blame] | 519 | - [Bug pyserial:157] Implement inWaiting in protocol_socket |
| 520 | - [Bug pyserial:166] RFC2217 connections always fail |
Chris Liechti | b74be01 | 2015-08-04 16:36:01 +0200 | [diff] [blame] | 521 | - [Bug pyserial:172] applySettingsDict() throws an error if the settings dictionary is not complete |
Chris Liechti | 069d32a | 2015-08-05 03:21:38 +0200 | [diff] [blame] | 522 | - [Bug pyserial:185] SocketSerial.read() never returns data when timeout==0 |
Chris Liechti | b74be01 | 2015-08-04 16:36:01 +0200 | [diff] [blame] | 523 | |
Chris Liechti | 80e2ae2 | 2015-08-04 02:59:50 +0200 | [diff] [blame] | 524 | Bugfixes (posix): |
| 525 | |
Chris Liechti | 889308f | 2015-09-23 14:07:02 +0200 | [diff] [blame] | 526 | - [Bug pyserial:156] PosixSerial.open raises OSError rather than |
| 527 | SerialException when port open fails |
| 528 | - [Bug pyserial:163] serial.tools.list_ports.grep() fails if it encounters None type |
Chris Liechti | 80e2ae2 | 2015-08-04 02:59:50 +0200 | [diff] [blame] | 529 | - fix setXON |
Chris Liechti | 5c4d2d8 | 2015-08-04 15:27:36 +0200 | [diff] [blame] | 530 | - [Patch pyserial:36 / 38] Make USB information work in python 3.4 and 2.7 |
Chris Liechti | 8cf8f06 | 2015-08-04 15:44:14 +0200 | [diff] [blame] | 531 | - clear OCRNL/ONLCR flags (CR/LF translation settings) |
Chris Liechti | ce62188 | 2015-08-06 19:29:31 +0200 | [diff] [blame] | 532 | - [Feature pyserial:38] RS485 Support |
Chris Liechti | e47ffe5 | 2015-08-07 01:21:55 +0200 | [diff] [blame] | 533 | - [Bug pyserial:170] list_ports_posix not working properly for Cygwin |
Chris Liechti | 2ed3a57 | 2015-09-02 02:48:18 +0200 | [diff] [blame] | 534 | - [Bug pyserial:187] improve support for FreeBSD (list_ports_posix) |
Chris Liechti | 80e2ae2 | 2015-08-04 02:59:50 +0200 | [diff] [blame] | 535 | |
Chris Liechti | d240cf5 | 2015-08-05 02:57:03 +0200 | [diff] [blame] | 536 | Bugfixes (win32): |
| 537 | |
| 538 | - [Bug pyserial:169] missing "import time" in serialwin32.py |
| 539 | |
Chris Liechti | 889308f | 2015-09-23 14:07:02 +0200 | [diff] [blame] | 540 | Bugfixes (cli): |
| 541 | |
| 542 | - [Bug pyserial:159] write() in serialcli.py not working with IronPython 2.7.4 |
| 543 | |
Chris Liechti | 2fb3404 | 2015-10-02 22:16:51 +0200 | [diff] [blame] | 544 | |
Chris Liechti | cc654c8 | 2015-10-20 23:22:25 +0200 | [diff] [blame] | 545 | Version 3.0b1 2015-10-19 |
Chris Liechti | 2fb3404 | 2015-10-02 22:16:51 +0200 | [diff] [blame] | 546 | -------------------------- |
Chris Liechti | 2fb3404 | 2015-10-02 22:16:51 +0200 | [diff] [blame] | 547 | - list_ports: add ``vid``, ``pid``, ``serial_number``, ``product``, |
| 548 | ``manufacturer`` and ``location`` attribute for USB devices. |
| 549 | - list_ports: update OSX implementation. |
| 550 | - list_ports: Raspberry Pi: internal port is found. |
Chris Liechti | cc654c8 | 2015-10-20 23:22:25 +0200 | [diff] [blame] | 551 | - serial_for_url: fix import (multiple packages in list) |
| 552 | - threaded: added new module implementing a reader thread |
| 553 | - tweak examples/wx* |
| 554 | - posix: add experimental implementation ``VTIMESerial`` |
| 555 | - new URL handler ``alt://`` to select alternative implementations |
Chris Liechti | 2fb3404 | 2015-10-02 22:16:51 +0200 | [diff] [blame] | 556 | |
Chris Liechti | 6d86727 | 2015-11-01 23:06:07 +0100 | [diff] [blame] | 557 | |
Chris Liechti | 675b293 | 2015-12-28 23:25:19 +0100 | [diff] [blame] | 558 | Version 3.0 2015-12-28 |
| 559 | ------------------------ |
Chris Liechti | 6d86727 | 2015-11-01 23:06:07 +0100 | [diff] [blame] | 560 | - minor fixes to setup.py (file list), inter_byte_timeout (not stored when |
Chris Liechti | eef7923 | 2015-11-02 23:49:16 +0100 | [diff] [blame] | 561 | passed to __init__), rfc2217 (behavior of close when open failed), |
Chris Liechti | b5f3182 | 2015-12-27 21:00:25 +0100 | [diff] [blame] | 562 | list_ports (__str__), loop://, renamed ReaderThread |
Chris Liechti | 675b293 | 2015-12-28 23:25:19 +0100 | [diff] [blame] | 563 | - hwgrep:// added options to pick n'th port, skip busy ports |
Chris Liechti | b5f3182 | 2015-12-27 21:00:25 +0100 | [diff] [blame] | 564 | - miniterm: --ask option added |
| 565 | |
| 566 | Bugfixes (posix): |
| 567 | |
| 568 | - [#26/#30] always call tcsettattr on open |
| 569 | - [#42] fix disregard read timeout if there is more data |
Chris Liechti | 4233c65 | 2016-01-23 23:36:44 +0100 | [diff] [blame] | 570 | - [#45] check for write timeout, even if EAGAIN was raised |
Chris Liechti | 6d86727 | 2015-11-01 23:06:07 +0100 | [diff] [blame] | 571 | |
Chris Liechti | eef7923 | 2015-11-02 23:49:16 +0100 | [diff] [blame] | 572 | Bugfixes (win32): |
| 573 | |
Chris Liechti | e192724 | 2015-11-03 00:38:43 +0100 | [diff] [blame] | 574 | - [#27] fix race condition in ``read()``, fix minimal timeout issue |
Chris Liechti | b5f3182 | 2015-12-27 21:00:25 +0100 | [diff] [blame] | 575 | - race condition in nonblocking case |
| 576 | - [#49] change exception type in case SetCommState fails |
| 577 | - [#50] fixed issue with 0 timeout on windows 10 |
Chris Liechti | eef7923 | 2015-11-02 23:49:16 +0100 | [diff] [blame] | 578 | |
Chris Liechti | 91dc087 | 2016-01-11 23:48:41 +0100 | [diff] [blame] | 579 | |
| 580 | Version 3.0.1 2016-01-11 |
| 581 | -------------------------- |
Chris Liechti | 78143f9 | 2016-01-20 23:30:19 +0100 | [diff] [blame] | 582 | - special case for FDTIBUS in list_ports on win32 (#61) |
Chris Liechti | 91dc087 | 2016-01-11 23:48:41 +0100 | [diff] [blame] | 583 | |
| 584 | Bugfixes: |
| 585 | |
| 586 | - ``Serial`` keyword arguments, more on backward compatibility, fix #55 |
| 587 | - list_ports: return name if product is None, fix for #54 |
| 588 | - port_publisher: restore some sorting of ports |
| 589 | |
Chris Liechti | 78143f9 | 2016-01-20 23:30:19 +0100 | [diff] [blame] | 590 | |
Chris Liechti | c55b5ac | 2016-05-27 23:21:34 +0200 | [diff] [blame] | 591 | Version 3.1.0 2016-05-27 |
Chris Liechti | 78143f9 | 2016-01-20 23:30:19 +0100 | [diff] [blame] | 592 | -------------------------- |
Chris Liechti | 4233c65 | 2016-01-23 23:36:44 +0100 | [diff] [blame] | 593 | Improvements: |
Chris Liechti | 78143f9 | 2016-01-20 23:30:19 +0100 | [diff] [blame] | 594 | |
Chris Liechti | 4233c65 | 2016-01-23 23:36:44 +0100 | [diff] [blame] | 595 | - improve error handling in ``alt://`` handler |
| 596 | - ``socket://`` internally used select, improves timeout behavior |
Chris Liechti | 411fa9b | 2016-05-21 23:55:50 +0200 | [diff] [blame] | 597 | - initial state of RTS/DTR: ignore error when setting on open posix |
| 598 | (support connecting to pty's) |
Chris Liechti | f0223b8 | 2016-04-26 22:20:02 +0200 | [diff] [blame] | 599 | - code style updates |
| 600 | - posix: remove "number_to_device" which is not called anymore |
Chris Liechti | 411fa9b | 2016-05-21 23:55:50 +0200 | [diff] [blame] | 601 | - add cancel_read and cancel_write to win32 and posix implementations |
Chris Liechti | 4233c65 | 2016-01-23 23:36:44 +0100 | [diff] [blame] | 602 | |
| 603 | Bugfixes: |
| 604 | |
| 605 | - [#68] aio: catch errors and close connection |
Chris Liechti | 01df889 | 2016-03-17 23:01:42 +0100 | [diff] [blame] | 606 | - [#87] hexlify: update codec for Python 2 |
Chris Liechti | f0223b8 | 2016-04-26 22:20:02 +0200 | [diff] [blame] | 607 | - [#100] setPort not implemented |
| 608 | - [#101] bug in serial.threaded.Packetizer with easy fix |
| 609 | - [#104] rfc2217 and socket: set timeout in create_connection |
Chris Liechti | 411fa9b | 2016-05-21 23:55:50 +0200 | [diff] [blame] | 610 | - [#107] miniterm.py fails to exit on failed serial port |
Chris Liechti | 78143f9 | 2016-01-20 23:30:19 +0100 | [diff] [blame] | 611 | |
Chris Liechti | 01df889 | 2016-03-17 23:01:42 +0100 | [diff] [blame] | 612 | Bugfixes (posix): |
| 613 | |
Chris Liechti | f0223b8 | 2016-04-26 22:20:02 +0200 | [diff] [blame] | 614 | - [#59] fixes for RTS/DTR handling on open |
| 615 | - [#77] list_ports_osx: add missing import |
| 616 | - [#85] serialposix.py _set_rs485_mode() tries to read non-existing |
| 617 | rs485_settings.delay_rts_before_send |
| 618 | - [#96] patch: native RS485 is never enabled |
| 619 | |
| 620 | Bugfixes (win32): |
| 621 | |
| 622 | - fix bad super call and duplicate old-style __init__ call |
| 623 | - [#80] list_ports: Compatibility issue between Windows/Linux |
Chris Liechti | a9d9b3d | 2016-06-05 23:45:54 +0200 | [diff] [blame] | 624 | |
| 625 | |
Chris Liechti | f1dec6a | 2016-06-12 22:47:09 +0200 | [diff] [blame] | 626 | Version 3.1.1 2016-06-12 |
Chris Liechti | a9d9b3d | 2016-06-05 23:45:54 +0200 | [diff] [blame] | 627 | -------------------------- |
| 628 | Improvements: |
| 629 | |
| 630 | - deprecate ``nonblocking()`` method on posix, the port is already in this |
| 631 | mode. |
Chris Liechti | f1dec6a | 2016-06-12 22:47:09 +0200 | [diff] [blame] | 632 | - style: use .format() in various places instead of "%" formatting |
Chris Liechti | a9d9b3d | 2016-06-05 23:45:54 +0200 | [diff] [blame] | 633 | |
| 634 | Bugfixes: |
| 635 | |
| 636 | - [#122] fix bug in FramedPacket |
Chris Liechti | 5d772fc | 2016-06-10 00:08:06 +0200 | [diff] [blame] | 637 | - [#127] The Serial class in the .NET/Mono (IronPython) backend does not |
| 638 | implement the _reconfigure_port method |
Chris Liechti | 8643e50 | 2016-06-11 21:27:15 +0200 | [diff] [blame] | 639 | - [#123, #128] Avoid Python 3 syntax in aio module |
Chris Liechti | 279201b | 2016-06-09 20:27:05 +0200 | [diff] [blame] | 640 | |
| 641 | Bugfixes (posix): |
| 642 | |
| 643 | - [#126] PATCH: Check delay_before_tx/rx for None in serialposix.py |
Chris Liechti | f1dec6a | 2016-06-12 22:47:09 +0200 | [diff] [blame] | 644 | - posix: retry if interrupted in Serial.read |
| 645 | |
| 646 | Bugfixes (win32): |
| 647 | |
| 648 | - win32: handle errors of GetOverlappedResult in read(), fixes #121 |
Chris Liechti | 6823937 | 2016-06-13 21:22:42 +0200 | [diff] [blame] | 649 | |
Chris Liechti | ffb44d6 | 2016-10-14 22:47:01 +0200 | [diff] [blame] | 650 | |
Chris Liechti | ade9ea9 | 2016-10-14 22:01:04 +0200 | [diff] [blame] | 651 | Version 3.2.0 2016-10-14 |
Chris Liechti | 6823937 | 2016-06-13 21:22:42 +0200 | [diff] [blame] | 652 | -------------------------- |
Chris Liechti | ffb44d6 | 2016-10-14 22:47:01 +0200 | [diff] [blame] | 653 | See 3.2.1, this one missed a merge request related to removing aio. |
| 654 | |
| 655 | |
| 656 | Version 3.2.1 2016-10-14 |
| 657 | -------------------------- |
Chris Liechti | ecf7d6e | 2016-06-25 23:38:47 +0200 | [diff] [blame] | 658 | Improvements: |
| 659 | |
Chris Liechti | ffb44d6 | 2016-10-14 22:47:01 +0200 | [diff] [blame] | 660 | - remove ``serial.aio`` in favor of separate package, ``pyserial-asyncio`` |
| 661 | - add client mode to example ``tcp_serial_redirect.py`` |
Chris Liechti | 06ed4a5 | 2016-09-03 23:53:12 +0200 | [diff] [blame] | 662 | - use of monotonic clock for timeouts, when available (Python 3.3 and up) |
Chris Liechti | ffb44d6 | 2016-10-14 22:47:01 +0200 | [diff] [blame] | 663 | - [#169] arbitrary baud rate support for BSD family |
Chris Liechti | d1fb227 | 2016-10-10 02:51:02 +0200 | [diff] [blame] | 664 | - improve tests, improve ``loop://`` |
Chris Liechti | 9e60ac7 | 2016-06-19 20:47:23 +0200 | [diff] [blame] | 665 | |
| 666 | Bugfixes: |
| 667 | |
| 668 | - [#137] Exception while cancel in miniterm (python3) |
Chris Liechti | 1d15715 | 2016-08-04 20:47:00 +0200 | [diff] [blame] | 669 | - [#143] Class Serial in protocol_loop.py references variable before assigning |
| 670 | to it |
Chris Liechti | d1fb227 | 2016-10-10 02:51:02 +0200 | [diff] [blame] | 671 | - [#149] Python 3 fix for threaded.FramedPacket |
Chris Liechti | 9e60ac7 | 2016-06-19 20:47:23 +0200 | [diff] [blame] | 672 | |
Chris Liechti | 6823937 | 2016-06-13 21:22:42 +0200 | [diff] [blame] | 673 | Bugfixes (posix): |
| 674 | |
| 675 | - [#133] _update_dtr_state throws Inappropriate ioctl for virtual serial |
| 676 | port created by socat on OS X |
Chris Liechti | 6dc58e8 | 2016-08-29 23:02:13 +0200 | [diff] [blame] | 677 | - [#157] Broken handling of CMSPAR in serialposix.py |
Chris Liechti | 6823937 | 2016-06-13 21:22:42 +0200 | [diff] [blame] | 678 | |
Chris Liechti | ab1ff48 | 2016-09-16 23:53:21 +0200 | [diff] [blame] | 679 | Bugfixes (win32): |
| 680 | |
Chris Liechti | d1fb227 | 2016-10-10 02:51:02 +0200 | [diff] [blame] | 681 | - [#144] Use Unicode API for list_ports |
| 682 | - [#145] list_ports_windows: support devices with only VID |
Chris Liechti | ab1ff48 | 2016-09-16 23:53:21 +0200 | [diff] [blame] | 683 | - [#162] Write in non-blocking mode returns incorrect value on windows |
Chris Liechti | dc56ac9 | 2017-01-10 22:22:44 +0100 | [diff] [blame] | 684 | |
| 685 | |
Chris Liechti | 1c4bc81 | 2017-03-08 02:44:04 +0100 | [diff] [blame] | 686 | Version 3.3 2017-03-08 |
| 687 | ------------------------ |
| 688 | Improvements: |
| 689 | |
| 690 | - [#206] Exclusive access on POSIX. ``exclusive`` flag added. |
| 691 | - [#172] list_ports_windows: list_ports with 'manufacturer' info property |
| 692 | - [#174] miniterm: change cancel impl. for console |
| 693 | - [#182] serialutil: add overall timeout for read_until |
| 694 | - socket: use non-blocking socket and new Timeout class |
| 695 | - socket: implement a functional a reset_input_buffer |
| 696 | - rfc2217: improve read timeout implementation |
| 697 | - win32: include error message from system in ClearCommError exception |
| 698 | - and a few minor changes, docs |
| 699 | |
| 700 | Bugfixes: |
| 701 | |
| 702 | - [#183] rfc2217: Fix broken calls to to_bytes on Python3. |
| 703 | - [#188] rfc2217: fix auto-open use case when port is given as parameter |
| 704 | |
| 705 | Bugfixes (posix): |
| 706 | |
| 707 | - [#178] in read, count length of converted data |
| 708 | - [#189] fix return value of write |
Chris Liechti | dc56ac9 | 2017-01-10 22:22:44 +0100 | [diff] [blame] | 709 | |
| 710 | Bugfixes (win32): |
| 711 | |
| 712 | - [#194] spurious write fails with ERROR_SUCCESS |
Chris Liechti | 82d568c | 2017-07-21 00:17:40 +0200 | [diff] [blame] | 713 | |
| 714 | |
Chris Liechti | c54c81d | 2017-07-22 22:50:21 +0200 | [diff] [blame] | 715 | Version 3.4 2017-07-22 |
Chris Liechti | 82d568c | 2017-07-21 00:17:40 +0200 | [diff] [blame] | 716 | ------------------------ |
| 717 | Improvements: |
| 718 | |
| 719 | - miniterm: suspend function (temporarily release port, :kbd:`Ctrl-T s`) |
| 720 | - [#240] context manager automatically opens port on ``__enter__`` |
| 721 | - [#141] list_ports: add interface number to location string |
| 722 | - [#225] protocol_socket: Retry if ``BlockingIOError`` occurs in |
| 723 | ``reset_input_buffer``. |
| 724 | |
| 725 | Bugfixes: |
| 726 | |
| 727 | - [#153] list_ports: option to include symlinked devices |
Chris Liechti | c54c81d | 2017-07-22 22:50:21 +0200 | [diff] [blame] | 728 | - [#237] list_ports: workaround for special characters in port names |
Chris Liechti | 82d568c | 2017-07-21 00:17:40 +0200 | [diff] [blame] | 729 | |
| 730 | Bugfixes (posix): |
| 731 | |
| 732 | - allow calling cancel functions w/o error if port is closed |
| 733 | - [#220] protocol_socket: sync error handling with posix version |
| 734 | - [#227] posix: ignore more blocking errors and EINTR, timeout only |
| 735 | applies to blocking I/O |
| 736 | - [#228] fix: port_publisher typo |
Chris Liechti | 690a8d0 | 2020-09-15 04:40:47 +0200 | [diff] [blame] | 737 | |
| 738 | |
Chris Liechti | d867871 | 2020-09-21 03:10:01 +0200 | [diff] [blame] | 739 | Version 3.5b0 2020-09-21 |
Chris Liechti | 690a8d0 | 2020-09-15 04:40:47 +0200 | [diff] [blame] | 740 | ------------------------ |
| 741 | New Features: |
| 742 | |
Chris Liechti | d867871 | 2020-09-21 03:10:01 +0200 | [diff] [blame] | 743 | - [#411] Add a backend for Silicon Labs CP2110/4 HID-to-UART bridge. |
| 744 | (depends on `hid` module) |
Chris Liechti | 690a8d0 | 2020-09-15 04:40:47 +0200 | [diff] [blame] | 745 | |
| 746 | Improvements: |
| 747 | |
| 748 | - [#315] Use absolute import everywhere |
| 749 | - [#351] win32: miniterm Working CMD.exe terminal using Windows 10 ANSI support |
Chris Liechti | 6fa82e1 | 2020-09-21 00:44:45 +0200 | [diff] [blame] | 750 | - [#354] Make ListPortInfo hashable |
Chris Liechti | 690a8d0 | 2020-09-15 04:40:47 +0200 | [diff] [blame] | 751 | - [#372] threaded: "write" returns byte count |
| 752 | - [#400] Add bytesize and stopbits argument parser to tcp_serial_redirect |
| 753 | - [#408] loop: add out_waiting |
Chris Liechti | 6ae64c1 | 2020-09-21 02:38:31 +0200 | [diff] [blame] | 754 | - [#495] list_ports_linux: Correct "interface" property on Linux hosts |
Chris Liechti | 690a8d0 | 2020-09-15 04:40:47 +0200 | [diff] [blame] | 755 | - [#500] Remove Python 3.2 and 3.3 from test |
Chris Liechti | 6ae64c1 | 2020-09-21 02:38:31 +0200 | [diff] [blame] | 756 | - [#261, #285, #296, #320, #333, #342, #356, #358, #389, #397, #510] doc updates |
Chris Liechti | 6fa82e1 | 2020-09-21 00:44:45 +0200 | [diff] [blame] | 757 | - miniterm: add :kbd:`CTRL+T Q` as alternative to exit |
| 758 | - miniterm: suspend function key changed to :kbd:`CTRL-T Z` |
Chris Liechti | 6ae64c1 | 2020-09-21 02:38:31 +0200 | [diff] [blame] | 759 | - add command line tool entries ``pyserial-miniterm`` (replaces ``miniterm.py``) |
| 760 | and ``pyserial-ports`` (runs ``serial.tools.list_ports``). |
| 761 | - ``python -m serial`` opens miniterm (use w/o args and it will print port |
| 762 | list too) [experimental] |
Chris Liechti | 6fa82e1 | 2020-09-21 00:44:45 +0200 | [diff] [blame] | 763 | |
Chris Liechti | 690a8d0 | 2020-09-15 04:40:47 +0200 | [diff] [blame] | 764 | Bugfixes: |
| 765 | |
| 766 | - [#371] Don't open port if self.port is not set while entering context manager |
| 767 | - [#437, #502] refactor: raise new instances for PortNotOpenError and SerialTimeoutException |
| 768 | - [#261, #263] list_ports: set default `name` attribute |
| 769 | - [#286] fix: compare only of the same type in list_ports_common.ListPortInfo |
| 770 | - rfc2217/close(): fix race-condition |
| 771 | - [#305] return b'' when connection closes on rfc2217 connection |
| 772 | - [#386] rfc2217/close(): fix race condition |
| 773 | - Fixed flush_input_buffer() for situations where the remote end has closed the socket. |
| 774 | - [#441] reset_input_buffer() can hang on sockets |
| 775 | - examples: port_publisher python 3 fixes |
| 776 | - [#324] miniterm: Fix miniterm constructor exit_character and menu_character |
| 777 | - [#326] miniterm: use exclusive access for native serial ports by default |
| 778 | - [#497] miniterm: fix double use of CTRL-T + s use z for suspend instead |
Chris Liechti | d867871 | 2020-09-21 03:10:01 +0200 | [diff] [blame] | 779 | - [#443, #444] examples: refactor wx example, use Bind to avoid deprecated |
| 780 | warnings, IsChecked, unichr |
Chris Liechti | 690a8d0 | 2020-09-15 04:40:47 +0200 | [diff] [blame] | 781 | |
| 782 | Bugfixes (posix): |
| 783 | |
| 784 | - [#265] posix: fix PosixPollSerial with timeout=None and add cancel support |
| 785 | - [#290] option for low latency mode on linux |
| 786 | - [#335] Add support to xr-usb-serial ports |
| 787 | - [#494] posix: Don't catch the SerialException we just raised |
| 788 | - [#519] posix: Fix custom baud rate to not temporarily set 38400 baud rates on linux |
Chris Liechti | 6fa82e1 | 2020-09-21 00:44:45 +0200 | [diff] [blame] | 789 | - [#509 #518] list_ports: use hardcoded path to library on osx |
Chris Liechti | 690a8d0 | 2020-09-15 04:40:47 +0200 | [diff] [blame] | 790 | |
| 791 | Bugfixes (win32): |
| 792 | |
| 793 | - [#481] win32: extend RS485 error messages |
| 794 | - [#303] win32: do not check for links in serial.tools.list_ports |
| 795 | - [#430] Add WaitCommEvent function to win32 |
| 796 | - [#314, #433] tools/list_ports_windows: Scan both 'Ports' and 'Modem' device classes |
| 797 | - [#414] Serial number support for composite USB devices |
| 798 | - Added recursive search for device USB serial number to support composite devices |
| 799 | |
| 800 | Bugfixes (MacOS): |
| 801 | |
| 802 | - [#364] MacOS: rework list_ports to support unicode product descriptors. |
| 803 | - [#367] Mac and bsd fix _update_break_state |
Chris Liechti | 0e76347 | 2020-11-23 04:53:27 +0100 | [diff] [blame] | 804 | |
| 805 | |
| 806 | Version 3.5 2020-11-23 |
| 807 | ---------------------- |
| 808 | See above (3.5b0) for what's all new in this release |
| 809 | |
| 810 | Bugfixes: |
| 811 | |
| 812 | - spy: ensure bytes in write() |
| 813 | |
| 814 | Bugfixes (posix): |
| 815 | |
| 816 | - [#540] serialposix: Fix inconsistent state after exception in open() |
| 817 | |
| 818 | Bugfixes (win32): |
| 819 | |
| 820 | - [#530] win32: Fix exception for composite serial number search on Windows |
| 821 | |
| 822 | Bugfixes (MacOS): |
| 823 | |
| 824 | - [#542] list_ports_osx: kIOMasterPortDefault no longer exported on Big Sur |
| 825 | - [#545, #545] list_ports_osx: getting USB info on BigSur/AppleSilicon |