--------------------------------------------------------------------------------
  WHAT'S NEW in TCOMMPORTDRIVER
--------------------------------------------------------------------------------

Current version : 1.08
Released on     : November 19, 1997
Replases version: 1.07 and earlier

* LINE STATUS DETECTION

  New: function GetLineStatus: TComPortLineStatusSet;

  The GetLineStatus() function returns the current state of CTS, DSR, RING, RLSD
  (CD) signals. This function can be used to check if some device is conntected
  and powered on.
  The result value is a set of TComPortLineStatus values. When a value is in
  the set then that signal is ON, otherwise it is OFF.

  When all signals are OFF you can assume that there isn't any device connected
  or at least it is powered OFF. This method doesn't work if your device or
  cable uses only three wires: RX, TX and GND.

  New: property CheckLineStatus: boolean; default FALSE;

  Many users reported a problem: when there isn't any device connected to the
  COM port, the ReadFile/WriteFile APIs hang the system (or at least slow down
  it). It seems that the Win32 kernel always waits for the DSR line to be set.
  To prevent hangs, set CheckLineStatus to TRUE before calling Connect().
  When CheckLineStatus is TRUE, the TCommPortDriver component never calls
  ReadFile/WriteFile APIs if none of the following are true:

    for ReadFile: at least one must be set (CTS, DSR, RING, RLSD)
                  or (RX queue is not empty)

    for WriteFile: at least one must be set (CTS, DSR, RING, RLSD)
                   and (TX queue is not full)

  Checking the state of CTS, DSR, RING and RLSD signal doesn't work if you
  are using a three wire cable (RX, TX and GND).

-- v1.07 -----------------------------------------------------------------------

* SYNCHRONOUS READS

  TCommPortDriver can now read data synchronously (other than asynchronously).
  To read data synchronously:

      1. pause the polling timer:

              cpDrv.PausePolling;

      2. read the data:

              nBytesRead := cpDrv.ReadData( myBufPtr, maxDataSz );
          or: nBytesRead := cpDrv.ReadDataEx( myBufPtr, maxDataSz, timeout );
          or: flag := cpDrv.ReadByte( myByteVar );
          or: flag := cpDrv.ReadChar( myCharVar );

      3. unpause the polling timer:

              cpDrv.ContinuePolling;

* NEW SEND METHODS:

  To send a single byte:    flag := cpDrv.SendByte( myByteValue );
  To send a singla char:    flag := cpDrv.SendChar( myCharValue );

--------------------------------------------------------------------------------
 1997, D3K - The Artisan Of Ware. All rights reserved.
 1997, Marco Cocco. All rights reserved.
E-mail: d3k@mdnet.it                          URL   : http://www.mdlive.com/d3k/
--------------------------------------------------------------------------------



