Typica is a free program for professional coffee roasters. https://typica.us
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ChangeLog 14KB

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