Delphi串口通信

  • p1_272200
    了解作者
  • 47.1KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-10 11:07
    上传日期
在Delphi中实现串口通信的方法有很多,spcomm控件直接将通信封装起来,指定端口、设置参数,即可实现发送、接收命令
SPCOMM.zip
  • SPCOMM
  • SPCOMM.DCR
    464B
  • SPCOMM.PAS
    61.5KB
  • vcspcom.skincfg
    892B
  • SPCOMM.DCU
    20KB
  • vcspcom.res
    1.5KB
  • vcspcom.cfg
    438B
  • vcspcom.dcu
    3.4KB
  • vcspcom.dof
    4.4KB
  • README.TXT
    19.6KB
  • SPCOMM.~PAS
    61.5KB
  • vcspcom.dpk
    558B
内容介绍
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 t
评论
    相关推荐
    • Delphi 报关
      Delphi 报关 Delphi 报关 Delphi 报关
    • Delphi 记事本
      个人用Delphi软件做的一个简单的记事本工具,希望对Delphi初学者有帮助
    • delphi 皮肤
      delphi 皮肤控件使用的 delphi 皮肤控件使用的 delphi 皮肤控件使用的
    • delphi mqtt
      delphi mqtt客户端。支持delphi7,有心跳处理,包括发布和订阅。连接emq测试过。
    • delphi 5.0
      delphi 5.0delphi 5.0delphi 5.0delphi 5.0
    • delphi10.2.3
      delphi10.2.3(keygen) delphi10.2.3(keygen) delphi10.2.3(keygen)
    • delphi AESDemo
      delphi AESDemo delphi AESDemo delphi AESDemo delphi AESDemo delphi AESDemo delphi AESDemodelphi AESDemo delphi AESDemodelphi AESDemodelphi AESDemo
    • 介绍DELPHI
      简单介绍delphi。供初学都更好的了解delphi
    • Delphi Fetion
      Delphi编写的给Fetion发送短信的程序,这个是Delphi7 +Indy9版本。
    • delphi hint
      delphi hint 在Delphi中每个组件几乎都具有Hint属性,但是他们只是在鼠标移动到该组件的时候才显示Hint内容。幸运的是,Delphi为我们提供了一个THintWindow组件,这样就不需要我们手工封装一个组件了。为了实现我们...