1 | Change history for QextSerialPort (formerly QwSerialPort): |
---|
2 | (Lines beginning with + represent new functionality, * represent changed or |
---|
3 | fixed functionality, - represent removed or deprecated functionality) |
---|
4 | |
---|
5 | Version 1.1 (official release) |
---|
6 | |
---|
7 | Version 1.0.1 |
---|
8 | * Minor changes (mostly in test application) |
---|
9 | |
---|
10 | Version 1.0.0e (by Micha³ Policht) |
---|
11 | * Fixed bytesAvailable(). Includes buffered bytes to the result. |
---|
12 | + Added isSequential() method. |
---|
13 | + Provided test application |
---|
14 | |
---|
15 | Version 1.0.0d ( changes by Micha³ Policht ) |
---|
16 | - Removed isOpen() overriden declaration/implementation from qextserialport's classes. isOpen() relies on QIODevice now. |
---|
17 | - Removed bool portOpen variable. Replaced by internal QIODevice.openMode. |
---|
18 | - Removed getChar(), putChar() overriden declaration/implementation. QIODevice can handle this. |
---|
19 | * Calling open() with specified OpenMode invokes QIODevice::open() which result in proper openMode setting. |
---|
20 | * readData(), writeData() are protected as in QIODevice declaration. |
---|
21 | * QIODevice:: read() and write() function are working now (use them instead of readData() writeData()). |
---|
22 | * readData(), writeData() don't check if port is open any more (read() and write() assures that). The same behaviour can be found in QFile for example. |
---|
23 | * Fixed readLine(). |
---|
24 | |
---|
25 | * Fixed randomly crash on deletion bug on Windows ( by Stuart Nixon ) |
---|
26 | http://lists.trolltech.com/qt-interest/2007-02/thread00340-0.html#msg00351 |
---|
27 | |
---|
28 | Version 0.9 (March 3, 2005) Stefan Sander <stefan-sander@users.sf.net>: |
---|
29 | + Added a new precompiler constant, _TTY_FREEBSD_ |
---|
30 | to support FreeBSD port names. |
---|
31 | + Added _TTY_WIN_ constant in qextserialport.pro win32:DEFINES |
---|
32 | to have Windows port names as default when compiling on it. |
---|
33 | - Removed construct() call from QextSerialBase constructors, |
---|
34 | it is called indirectly through Win_QextSerialPort::construct() |
---|
35 | and Posix_QextSerialPort::construct(). |
---|
36 | + Added construct() call to Win_QextSerialPort constructors. |
---|
37 | + Added setTimeout(0, 500) call to Win_QextSerialPort::construct(). |
---|
38 | - Removed setTimeout(0, 500) call from Win_QextSerialPort(const char* name). |
---|
39 | * Fixed Posix_QextSerialPort::open(int) control flow, now the port settings |
---|
40 | are only applied if the associated file could be opened. |
---|
41 | * Fixed masking CR to NL, in Posix_CommConfig.c_iflag |
---|
42 | |
---|
43 | Version 0.8 (, 2003) (Alpha release): |
---|
44 | * Added code to set the port timeouts in Win_QextSerialPort's default |
---|
45 | constructor. |
---|
46 | * Fixed Posix_QextSerialPort::construct() to set up the port correctly. |
---|
47 | * Fixed syntax errors in 2 ioctl() calls in posix_QextSerialPort. |
---|
48 | * lastError is now initialized to E_NO_ERROR in the QextSerialBase |
---|
49 | constructor. |
---|
50 | * The select() call in posix_QextSerialPort::bytesWaiting() is now |
---|
51 | properly coded. Previously it would always time out. |
---|
52 | * Fixed runtime errors in the ioctl() calls for |
---|
53 | Posix_QextSerialPort::setDtr() and Posix_QextSerialPort::setRts(). |
---|
54 | Thanks to Marc Pignat. |
---|
55 | |
---|
56 | Version 0.7 (June 15, 2002) <Bugfix release>: |
---|
57 | (0.61 - unofficial release) |
---|
58 | * Fixed a small bug in the initializations of the static members when |
---|
59 | QT_THREAD_SUPPORT was defined. |
---|
60 | * Fixed a bug that caused Borland's compiler to choke on Windows platforms |
---|
61 | (which perversely actually stemmed from a shortcoming of Visual C++ that |
---|
62 | Borland doesn't have). |
---|
63 | |
---|
64 | (0.62 - unofficial release) |
---|
65 | * Fixed a bug that gave Q_LONG the wrong typedef for QT versions prior to |
---|
66 | 3.0. |
---|
67 | |
---|
68 | (0.63 - unofficial release) |
---|
69 | * Fixed 2 incorrect references to Posix_Comm_Config. |
---|
70 | * Fixed scoping of Posix_QextSerialPort::operator=(). |
---|
71 | * Posix_QextSerialPort::construct should now be coded correctly. |
---|
72 | * Fixed return type for Posix_QextSerialPort::size(). |
---|
73 | |
---|
74 | (0.64 - unofficial release) |
---|
75 | * Fixed all the port settings functions to work properly when opening the |
---|
76 | port for the first time - previously none of the settings were being |
---|
77 | applied when the port was opened. |
---|
78 | * Fixed an oversight in Win_QextSerialPort::open() that caused the setting |
---|
79 | of port parameters to fail on NT and 2000 systems. |
---|
80 | |
---|
81 | (0.7 - official release) |
---|
82 | * Fixed some calls to QextSerialBase constructors that no longer exist on |
---|
83 | the POSIX side. |
---|
84 | * Fixed the bad memcpy()'s in the POSIX copy constructor. |
---|
85 | * Fixed the Offset scoping problem under gcc 2.95. |
---|
86 | * The CBAUD flag has been deprecated on some POSIX systems. Fixed |
---|
87 | Posix_QextSerialPort::setBaudRate() to reflect this. |
---|
88 | * Added construct() calls to all of the Posix_QextSerialPort constructors. |
---|
89 | * Fixed double (and conflicting) typedefs of Offset when using QT versions |
---|
90 | prior to 3.0 |
---|
91 | * Changed the call to CreateFile() to CreateFileA() in |
---|
92 | Win_QextSerialPort.cpp. This should get rid of problems for those using |
---|
93 | Unicode or other multibyte character sets for their string literals. |
---|
94 | * A few tweaks to the documentation. |
---|
95 | |
---|
96 | - Removed the protected Posix_Handle variable from Posix_QextSerialPort. |
---|
97 | |
---|
98 | Version 0.6 (March 11, 2002) <Bugfix release>: |
---|
99 | + Added a new precompiler constant, QTVER_PRE_30. QT3 changed the return |
---|
100 | types of some QIODevice functions. Therefore, if compiling on versions |
---|
101 | of QT prior to 3.0, you should always define QTVER_PRE_30 in your project. |
---|
102 | Also had to add some preprocessor blocks to support both 3.0 and earlier |
---|
103 | versions of QT. |
---|
104 | + Added implementations of 2 of the new constructors added in 0.5 to both |
---|
105 | Win_QextSerialPort and Posix_QextSerialPort. |
---|
106 | |
---|
107 | * The scoping of the enums used in the PortSettings struct has been fixed. |
---|
108 | * QObject inheritance has been removed. This should not affect the |
---|
109 | functionality of the classes. |
---|
110 | * Replaced a few stray references to mutex->unlock() with UNLOCK_MUTEX() in |
---|
111 | the Windows code. |
---|
112 | * Fixed several runtime errors caused by calling nonexistent members of |
---|
113 | QextSerialBase. |
---|
114 | * Fixed a whole bunch of little things that were causing MSVC to choke when |
---|
115 | compiling for Windows. |
---|
116 | |
---|
117 | Version 0.5 (February 15, 2002): |
---|
118 | + There are 4 new macros (LOCK_MUTEX, UNLOCK_MUTEX, TTY_WARNING, and |
---|
119 | TTY_PORTABILITY_WARNING) that replace most of those ugly #ifdef blocks in |
---|
120 | the code. |
---|
121 | + In place of the old namingConvention stuff, there is a new function, |
---|
122 | setName(). It is used to set the name of the device to be associated with |
---|
123 | the object. The new name() function can be used to retrieve the device |
---|
124 | name, which is stored in the new member variable portName. |
---|
125 | + There is a new version of open() that takes a const char* as a parameter. |
---|
126 | It can be used to specify the name of the device when it is opened rather |
---|
127 | than at construction time. |
---|
128 | |
---|
129 | * 3 constructors have been removed and 3 more added. There is now a copy |
---|
130 | constructor (and operator=()) as well as a constructor that takes a |
---|
131 | PortSettings structure as a parameter, and another that takes both a |
---|
132 | device name and a PortSettings structure. As a result of these changes |
---|
133 | the PortSettings structure declaration is no longer local to the |
---|
134 | QextSerialBase class. All of the removed constructors had to do with |
---|
135 | the setNamingConvention() system. |
---|
136 | * The static mutex member should now be reference-counted and only deleted |
---|
137 | when it is no longer referenced. |
---|
138 | * Most of the object construction duties have been pushed back into |
---|
139 | QextSerialBase |
---|
140 | * Fixed a couple resource leaks, mostly to do with unlocking the mutex |
---|
141 | properly |
---|
142 | |
---|
143 | - Removed the setNamingConvention() nonsense. |
---|
144 | - Removed all QStrings and calls to sprintf() for thread compatibility. |
---|
145 | - Removed setNumber() functions as well as the portNumber member variable, |
---|
146 | as they were only necessary under the setNamingConvention() system. |
---|
147 | |
---|
148 | I am grateful to Jorg Preiss (Preisz? Sorry, American keyboards don't have |
---|
149 | an ess-tset character ;)) for his invaluable input on most of the changes |
---|
150 | that went into this version. |
---|
151 | |
---|
152 | Version 0.4 (March 20, 2001): |
---|
153 | + All of the classes now derive from QObject as well as QIODevice. This |
---|
154 | is pretty much useless at the moment - signals and slots may be used |
---|
155 | to implement asynchronous communications in a future version |
---|
156 | + Added configurable timeouts via the setTimeout() function. The default |
---|
157 | timeout for read and write operations is now 500 milliseconds |
---|
158 | + There is now a functional .pro file for the library (thanks to |
---|
159 | Gunnstein Lye) |
---|
160 | + The prefixes for all of the classes have changed from Qw to Qext, in |
---|
161 | compliance with the qt-addons project standard |
---|
162 | |
---|
163 | * Fixed a bug that caused port settings to be restored incorrectly when |
---|
164 | switching ports with setNumber() |
---|
165 | * Minor changes to QextSerialBase::setNumber(). Functionality should now |
---|
166 | reflect the documentation, which has also been updated to reflect the |
---|
167 | changes that went in on version 0.3. |
---|
168 | * Some fixes to the documentation. The Posix_QextSerialPort and |
---|
169 | Win_QextSerialPort classes should no longer have any unnecessary |
---|
170 | references to inapplicable platforms, and the documentation for open() has |
---|
171 | been updated. |
---|
172 | * Should now compile without QT_THREAD_SUPPORT defined (ie, in single- |
---|
173 | threaded environments), although it will require slight changes to the |
---|
174 | makefile (tmake "CONFIG-=thread" should work) |
---|
175 | * Fixed a few compilation issues, especially on the POSIX side (should |
---|
176 | compile under Linux now :)) |
---|
177 | * POSIX code is a little cleaner and more efficient |
---|
178 | * Various small fixes to the documentation |
---|
179 | * Constants now follow a consistent naming convention, with underscores at |
---|
180 | the beginning and end of each. For example TTY_POSIX has become |
---|
181 | _TTY_POSIX_ |
---|
182 | |
---|
183 | Version 0.3 (Feb. 14, 2001): |
---|
184 | + Added a warning that appears when QwSerialPort is compiled on a POSIX |
---|
185 | platform that does not implement 76800 baud operation. In this situation |
---|
186 | QwSerialPort will also switch to 57600 baud. |
---|
187 | + Major code reorganization - there are now 4 classes instead of 1. This |
---|
188 | should remove a lot of the #ifdef...#else...#endif constructs and |
---|
189 | hopefully make the code easier to read. Including the class in your |
---|
190 | project is still done by including QwSerialPort.h and instantiating a |
---|
191 | QwSerialPort object. |
---|
192 | |
---|
193 | * The serial port associated with a QwSerialPort object is no longer |
---|
194 | opened on construction, or upon calling the setNumber() function. You |
---|
195 | must now explicitly call open() to open the port. |
---|
196 | |
---|
197 | Version 0.2 (Jan. 3, 2001): |
---|
198 | + Added lastError() function with rudimentary error codes |
---|
199 | + Better documentation |
---|
200 | + Added ability to examine the empty/not empty state of a port's input |
---|
201 | buffer with atEnd() |
---|
202 | + Added ability to retrieve the number of bytes in a port's input buffer |
---|
203 | with size() (thanks to Olivier Tubach) |
---|
204 | + Added ability to turn off portability warnings by defining |
---|
205 | TTY_NOWARN_PORT in your project |
---|
206 | + Added ability to turn off all warning messages by defining TTY_NOWARN |
---|
207 | in your project |
---|
208 | + Added ability to select POSIX serial functions in Windows NT/2000 by |
---|
209 | defining TTY_POSIX in your project (untested) |
---|
210 | + Added control over RTS and DTR lines with setRts() and setDtr() |
---|
211 | respectively |
---|
212 | + Added ability to query line status using lineStatus(). |
---|
213 | + Added readLine() functionality (thanks to Olivier Tubach) |
---|
214 | + Added bytesWaiting(), a non-const/thread-safe version of size() |
---|
215 | + The class should now be thread-safe through the use of a recursive |
---|
216 | QMutex (untested) |
---|
217 | |
---|
218 | * Fixed a bug that could cause hardware flow control not to work on some |
---|
219 | POSIX systems |
---|
220 | * Put in a few missing fileno() calls in the POSIX code |
---|
221 | * Fixed a few syntax errors that caused compilation to fail on POSIX systems |
---|
222 | |
---|
223 | - BAUD0 is no longer a valid baud rate setting - to drop the DTR line, |
---|
224 | call setDtr(FALSE) |
---|
225 | |
---|
226 | Version 0.1 (Dec. 11, 2000): |
---|
227 | Initial public release. |
---|