⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.txt

📁 这个是SpComm控件的源码。网络上很难找到的。对要研究串口通信的来说
💻 TXT
📖 第 1 页 / 共 2 页
字号:
COMM32.PAS
==========

Version 1.00

Comm32.pas is a simple Communications VC for Borland Delphi 2.0 which 
demonstrates the Win32 Communications functions and the new Delphi
'TThread' class. It is implemented using two threads: one for reading
from, and one for writing to a Comm Port.

It probably needs to be implemented as a single thread for read/write
operations if it is needed for any synchronisation functions (such as
file-transfer algorithms).

I started to create a 'TAPI' component to use in conjunction with this
component (hence the 'OnRequestHangup' property) but as of this version
it is incomplete.

Version 1.02 - by small-pig team

    1. Add Read/Write timing control
    2. Add Data bits, Parity, Stop bits properties
    3. Support software and hardware flow control: DTR/DSR, CTS/CTS, XON/XOFF
    4. Add 'Sender' parameter in OnReceiveData

Version 2.0 - - by small-pig team

    1. Support separatly DTR/DSR and RTS/CTS hardware flow control setting
    2. Support separatly OutX and InX software flow control setting
    3. Log file(for debug) may used by many comms at the same time
    4. Add DSR sensitivity property
    5. You can set the error char. replacement when parity error
    6. Let XonLim/XoffLim and XonChar/XoffChar setting by yourself
    7. You may change flow-control when comm is still opened
    8. Change TComm32 to TComm
    9. Add OnReceiveError event handler when overrun, framing error,
       parity error
    10. Fix some bug

Version 2.01 - - by small-pig team

    1. Support some property about modem.
    2. Add OnModemStateChange event hander when RLSD(CD) change state

Version 2.02 - - by small-pig team

    1. Bug fix: When receive XOFF character, the system FAULT!!!!
    2. Remove CommFileLog property

SPCOMM.PAS
==========

Version 2.5

    1. Add OnSendDataEmpty event handler when all data in buffer
       are sent(send-buffer become empty) this handler is called.
       You may call send data here.
    2. Change the ModemState parameters in OnModemStateChange
       to ModemEvent to indicate what modem event make this call
    3. Add RING signal detect. When RLSD changed state or
       RING signal was detected, OnModemStateChange handler is called
    4. Change XonLim and XoffLim from 100 to 500
    5. Remove TWriteThread.WriteData member
    6. PostHangupCall is re-design for debuging function
    7. Add a boolean property SendDataEmpty, True when send buffer
       is empty


USAGE
=====

To use the component once it is installed:
  1)  Attach an event handler to 'OnReceiveData'.
  2)  Call 'StartComm' to open the port.
  3)  Use the 'WriteCommData' method to write to the Comm port.
  4)  Call 'StopComm' to close the port.


PROPERTY
========

  CommName : String
    
      The name of comm port. The comm port is named 'COM1', 'COM2',...
      This comm port must exist when you open it. 

  BaudRate : DWORD

      The baud rate for this comm port. It must be a legal value for your
      serial port can accept it.
      You can change this value when the comm is open and
      the real baud rate is changed immediately.

  ParityCheck : Boolean

      Specifies whether parity checking is enabled. If this member is TRUE,
      parity checking is performed and errors are reported
      (to OnReceiveError handler).
      You can change this value when the comm is open.

  Outx_CtsFlow : Boolean

      Specifies whether the CTS (clear-to-send) signal is monitored
      for output flow control. If this member is TRUE and CTS is turned off,
      output is suspended until CTS is sent again.
      CTS is a input pin. You can read its state from MSR register. It
      usually connect to RTS pin in the other end.
      It is often used for hardware flow control to indicate that the other
      end if being waiting for data.
      You can change this value when the comm is open.

      CTS  Input on   | the other end is waiting for data
          ------------+----------------------------------------
           Input off  | the other end will NOT receive any data

  Outx_DsrFlow : Boolean

      Specifies whether the DSR (data-set-ready) signal is monitored for
      output flow control. If this member is TRUE and DSR is turned off,
      output is suspended until DSR is sent again.
      DSR is a input pin. You can read its state from MSR register. It
      usually connect to DTR pin in the other end.
      It is often used for hardware flow control to indicate that the other
      end is working(active, ready, wait for data...)
      You can change this value when the comm is open.

      DSR  Input on   | the other end is ready, and wait for your data
          ------------+----------------------------------------------------
           Input off  | the other end is not ready, we cannot send data out

  DtrControl : ( DtrEnable, DtrDiable, DtrHandshake )

      Specifies the DTR (data-terminal-ready) flow control. This member
      can be one of the following values:

      Value          Meaning
      -------------  ------------------------------------------------------
      DtrDiable      Disables the DTR line when the device is
                     opened and leaves it disabled.
      DtrEnable      Enables the DTR line when the device is
                     opened and leaves it on.
      DtrHandshake   Enables DTR handshaking. When our comm port is opened
                     and ready for receiving data, DTR is enabled. When
                     our comm port is suspend, closed or has error
                     (and not cleared), DTR is disable.
                     If handshaking is enabled, it is an error for the
                     application to adjust the line by using the Win32
                     EscapeCommFunction function.

      DTR is a output pin. You can set its state in MCR register.
      It usually connect to DSR pin in the other end.
      You can change this value when the comm is open.

  DsrSensitivity : Boolean;

      Specifies whether the communications driver is sensitive to the
      state of the DSR signal. If this member is TRUE, the driver ignores
      any bytes received, unless the DSR modem input line is high.
      You can change this value when the comm is open.

       TRUE  | ignore any received byte
      -------+------------------------------
       FALSE | nothing

  TxContinueOnXoff : Boolean;

      Specifies whether transmission stops when the input buffer is full
      and the driver has transmitted the XoffChar character. If this member
      is TRUE, transmission continues after the input buffer has come within
      XoffLim bytes of being full and the driver has transmitted the
      XoffChar character to stop receiving bytes. If this member is FALSE,
      transmission does not continue until the input buffer is within XonLim
      bytes of being empty and the driver has transmitted the XonChar
      character to resume reception.
      You can change this value when the comm is open.

       TRUE  | enable or disable transmisstion has no any relation with
             | input buffer
      -------+-------------------------------------------------------------
       FALSE | When Xoff is send(input buffer will be full),stop transmission.
             | And stop continue until Xon is send(input buffer will empty).

  Outx_XonXoffFlow : Boolean

      Specifies whether XON/XOFF flow control is used during transmission.
      If this member is TRUE, transmission stops when the XoffChar character
      is received and starts again when the XonChar character is received.
      You can change this value when the comm is open.

       Action | Xoff received      | Xon received
      --------+--------------------+---------------------------
       TRUE   | stop transmission  | resume transmission
              | discard Xoff char  | discard Xon char
      --------+--------------------+------------------------------
       FALSE  | read in Xoff char  | read in Xon char

  Inx_XonXoffFlow : Boolean

      Specifies whether XON/XOFF flow control is used during reception.
      If this member is TRUE, the XoffChar character is sent when the
      input buffer comes within XoffLim bytes of being full, and the
      XonChar character is sent when the input buffer comes within XonLim
      bytes of being empty.
      You can change this value when the comm is open.

              |               input buffer comes within
              +-----------------------------+------------------------------
       Action | XoffLim bytes of being full | XonLim bytes of being empty
      --------+-----------------------------+------------------------------
       TRUE   | Xoff char send              | Xon char send
      --------+-----------------------------+------------------------------
       FALSE  | do nothing                  | do nothing

  ReplaceWhenParityError : Boolean

      Specifies whether bytes received with parity errors are replaced with
      the character specified by the ReplacedChar member. If this member is
      TRUE and the ParityCheck member is TRUE, replacement occurs. 
      You can change this value when the comm is open.

  IgnoreNullChar : Boolean

      Specifies whether null bytes are discarded. If this member is TRUE,
      null bytes are discarded when received.
      You can change this value when the comm is open.

  RtsControl : ( RtsEnable, RtsDiable, RtsHandshake, TransmissionAvailableControl );

      Specifies the RTS (request-to-send) flow control. If this value is zero, the default is RTS_CONTROL_HANDSHAKE. This member can be one of the following values:

      Value                 Meaning
      ------------------   -------------------------------------------------
      RtsDiable             Disables the RTS line when the device
                            is opened and leaves it disabled.
      RtsEnable             Enables the RTS line when the device
                            is opened and leaves it on.
      RtsHandshake          Enables RTS handshaking. The driver raises the
                            RTS line when the "type-ahead" (input) buffer is
                            less than one-half full and lowers the RTS line

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -