s​p​c​o​m​m​属​性​详​解


使用该组件一旦安装:
{使用该组件的基本步骤:}
1)将一到'OnReceiveData'事件处理程序。
{1)添加'' OnReceiveData'事件。}
2)呼叫'StartComm'来打开端口。
{2)调用'StartComm'方法打开串口。}
3)使用'WriteCommData'方法写入通讯端口。
{3)使用'WriteCommData'方法向串口写入(发送)数据。}
4)呼叫'StopComm'关闭该端口。
{4)调用'StopComm'方法关闭串口}


物业
========

CommName:字符串

该通讯端口的名称。 该通信端口被命名为'的COM1','COM2 ',...
这个通讯端口必须打开它时存在。

波特率:DWORD的

此通讯端口波特率。 它必须是一个法律价值为您的
串行端口可以接受。
您可以更改此值时,通讯是开放的,
真正的波特率是立即改变。

ParityCheck:布尔

指定是否启用奇偶校验。 如果这个成员是TRUE,
奇偶校验和错误执行报告
(对OnReceiveError处理)。
您可以更改此值时,商业是开放的。

Outx_CtsFlow:布尔

是否CTS(清除到发送)指定的信号进行监控
输出流量控制。 如果这个成员是TRUE和CTS是关闭的,
输出被挂起,直到CTS是再次发送。
CTS是输入引脚。 你可以阅读它从MSR寄存器的状态。 这
通常连接到RTS管脚在另一端。
它通常用于硬件流控制,指示其他
如果最终被等待数据。
您可以更改此值时,商业是开放的。

CTS输入的|的另一端等待数据
------------+------------------------------------- ---
输入OFF |另一端将不会收到任何资料

Outx_DsrFlow:布尔

是否指定的DSR(数据设置就绪)信号监控
输出流量控制。 如果这个成员是TRUE和DSR是关闭的,
输出被挂起,直到DSR是再次发送。
DSR是一个输入引脚。 你可以阅读它从MSR寄存器的状态。 这
通常连接到DTR引脚的另一端。
它通常用于硬件流控制,指示其他
到底是工作(活动,做好准备,等待数据...)
您可以更改此值时,商业是开放的。

DSR输入的|的另一端准备就绪,等待你的数据
------------+------------------------------------- ---------------
输入OFF |另一端是没有准备好,我们不能发送数据输出

DtrControl:(DtrEnable,DtrDiable,DtrHandshake)

指定的DTR(数据终端就绪)流控制。 这个成员
可以是以下值之一:

值含义
------------- ------------------------------------- -----------------
DtrDiable DTR线禁用该设备时
开了,留下它禁用。
DtrEnable DTR线启用该设备时
开了,树叶它。
DtrHandshake启用DTR握手。 当我们的通信端口被打开
和接收数据就绪,DTR为启用。 当
我们的通讯端口是暂停,关闭或有错误
(而不是清除),DTR为禁用。
如果握手启用,它是一个错误
应用程序使用Win32调整行
EscapeCommFunction功能。

DTR是一个输出引脚。 您可以设置它在MCR寄存器状态。
它通常连接到DSR路由针在另一端。
您可以更改此值时,商业是开放的。

DsrSensitivity:布尔;

指定通讯驱动程序是否是敏感的
国家对DSR信号。 如果这个成员是TRUE,则驱动程序忽略
收到的字节,除非调制解调器的DSR输入线为高。
您可以更改此值时,商业是开放的。

真|忽略任何接收到的字节
-------+------------------------------
假|无

TxContinueOnXoff:布尔;

指定是否传输时停止输入缓冲区已满
和司机已经转发了XoffChar字符。 如果这个成员
为TRUE,传输后继续输入缓冲区内已经到来
XoffLim字节被充分和驱动程序已经转发了
XoffChar字符停止接收字节。 如果这个成员为FALSE,
传输不继续下去,直到输入缓冲区内XonLim是
被空和司机已经转发了XonChar字节
人物恢复接待。
您可以更改此值时,商业是开放的。

真|启用或禁用transmisstion没有任何关系与
|输入缓冲区
-------+------------------------------------------ -------------------
假|当XOFF是发送(输入缓冲区将满),停止传输。
|和停止继续下去,直到被发送的Xon(输入缓冲区为空)。

Outx_XonXoffFlow:布尔

指定是否XON / XOFF流控制传输过程中使用。
如果这个成员是TRUE,传输字符时停止XoffChar
并开始接收时再XonChar字符接收。
您可以更改此值时,商业是开放的。

行动|收到的Xoff |收到的Xon
--------+--------------------+-------------------- -------
真|停止传输|恢复发送
|丢弃的Xoff字符|丢弃的Xon字符
--------+--------------------+-------------------- ----------
假|阅读的Xoff字符|阅读中的Xon字符

Inx_XonXoffFlow:布尔

指定是否XON / XOFF流控制过程中使用的接待。
如果这个成员是TRUE,则XoffChar字符发送时
输入缓冲区内XoffLim字节来被充分,以及
XonChar字符输入后,将发送缓冲区内XonLim来
字节为空。
您可以更改此值时,商业是开放的。

|输入缓冲区内出现
+-----------------------------+------------------- -----------
动作| XoffLim字节被全部|被空XonLim字节
--------+-----------------------------+----------- -------------------
真|的Xoff字符发送|发送的Xon字符
--------+-----------------------------+----------- -------------------
假|做什么|什么也不做

ReplaceWhenParityError:布尔

是否与指定奇偶错误接收的字节被替换
所指定的字符ReplacedChar成员。 如果这个成员是
TRUE,而ParityCheck成员为TRUE,更换发生。
您可以更改此值时,商业是开放的。

IgnoreNullChar:布尔

空字节指定是否被丢弃。 如果这个成员是TRUE,
空字节被丢弃时收到。
您可以更改此值时,商业是开放的。

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

指定的RTS(请求发送)流控制。 如果此值为零,则默认为RTS_CONTROL_HANDSHAKE。 这个成员可以是下列值之一:

值含义
------------------ -------------------------------- -----------------
RtsDiable禁用RTS线路时,该设备
打开,就让它禁用。
RtsEnable启用RTS线路时,该设备
打开和树叶它。
RtsHandshake启用转运站握手。 司机提高
RTS信号线时,“预输入”(输入)缓冲区
不到一个半满,降低了RTS线路
当缓冲区超过四分之三满。
如果握手启用,它是一个错误
申请调整使用的行
Win32的EscapeCommFunction功能。

输入缓冲区|小于1 / 2全|超过3 / 4满
--------------+--------------------+-------------- ------
转运站|输出设置|输出清晰

TransmissionAvailable
该RTS线路将启用指定
如果字节的传输可用。 后
所有缓冲的字节被发送后,RTS线路
将被禁用。

输出缓冲器|有可用字节|没有任何数据
---------------+---------------------+------------ -----
转运站|输出设置|输出清晰

转运站是一个输出引脚。 您可以设置它在MCR寄存器状态。
它通常连接到CTS管脚在另一端。
您可以更改此值时,商业是开放的。

XonLimit:字

指定允许的最小字节数在输入缓冲区
前XON字符发送。
您可以更改此值时,商业是开放的。

例如:
的输入缓冲区的大小是1000字节,XonLimit是100。
和XOFF字符已发送之前。
当在输入缓冲区中的字节从101到100,是XON字符
发送。

XoffLimit:字

指定允许的最大字节数在输入缓冲区
前XOFF字符发送。 最大字节数
这是减去允许的大小值计算,
以字节为单位输入缓冲区。
您可以更改此值时,商业是开放的。

例如:
的输入缓冲区的大小是1000字节,XonLimit是100。
当在输入缓冲区字节从899到900人的Xoff字符
发送。

ByteSize:(_5,_6,_7,_8)

在指定的字节数位传输和接收。
您可以更改此值时,商业是开放的。

奇偶:(无,奇,偶,马克,空间)

指定要使用同等方案。 这个成员可以是一
以下值:

值含义
------- ---------------------
无无校验
奇怪的逻辑琛'1'位(数据位和校验位)为奇数
即使是逻辑'1'位(数据位和校验位)之和是偶数
面膜校验位总是逻辑'1'
空间校验位总是逻辑0

您可以更改此值时,商业是开放的。


StopBits:(_1,_1_5,_2)

指定的停止位数使用。
您可以更改此值时,商业是开放的。

XonChar:属于ANSIChar

指定XON字符为传播价值和
接待。
您可以更改此值时,商业是开放的。

XoffChar:属于ANSIChar

指定为传送XOFF字符值和
接待。
您可以更改此值时,商业是开放的。

ReplacedChar:属于ANSIChar

指定的字符的值,用来代替接收字节
有奇偶校验错误,当ReplaceWhenParityError成员是TRUE,并且
ParityCheck成员为TRUE。
您可以更改此值时,商业是开放的。

手柄:THandle <read-only>

在Comm文件句柄。 从'的CreateFile'函数获得在'StartComm'。
你可以使用另一个API操作它的Win32商科

SendDataEmpty:布尔<run-time&read-only>

真当发送缓冲区是空的,没有任何悬而未决需要在发送邮件
队列。 假如果发送缓冲区不为空或有需要在发送邮件
队列。

方法
======

程序StartComm

开始为这个通讯端口的通信。
如果失败,提高ECommsError例外,ECommsError.Message包含
下面的字符串:
'这个串行端口已经打开,
'错误打开串口:
'文件句柄不是一个通讯句柄'
'无法安装通讯缓冲器
'无法创建事件'
'无法创建读线程
'无法创建写线程

程序StopComm

停止并结束这个通讯端口的所有通信线程。
没有任何回报。

功能WriteCommData(pDataToWrite:PChar类型;
dwSizeofDataToWrite:字):布尔

发送一个字符串到写线程写入通讯。
这个子程序将立即返回。 发送操作将
做背景。
参数:
pszStringToWrite - 字符串写入通讯端口。
nSizeofStringToWrite - 对pszStringToWrite长度。
回报:
TRUE:如果写线程的PostMessage是成功的。
FALSE:如果PostMessage失败或写线程不存在。

功能GetModemState:DWORD的;

获取并返回现在的现代国家。 它们是现代国家
输入引脚从海洋科学研究。
返回值可以是一个或更多的以下代码:

值含义
---------- ---------------------------------------- -------------------
MS_CTS_ON的CTS(明确的发送)信号上。
MS_DSR_ON的DSR(数据设置就绪)信号上。
MS_RING_ON环信号指示灯亮。
MS_RLSD_ON的资料摘要(接收线路信号检测)信号亮起。

该函数失败,如果硬件不支持
控制寄存器的值。

事件处理程序
=============

OnReceiveData:程序(发件人:TObject;
缓冲区:指针;
进行缓冲:字)物体


1。 输入缓冲区中包含接收到的数据和
2。 超过限额的大小或
3。 读取超时
事件处理程序被调用
发件人:指向TComm对象提出这个要求
缓冲区:缓冲区,包含收到的数据
进行缓冲:接收数据缓冲区的大小

OnReceiveError:程序(发件人:TObject; EventMask:DWORD的)物体

当错误happend在接收,事件处理程序被调用。
发件人:指向TComm对象提出这个要求
EventMask:从ClearCommError获得的价值在'HandleCommEvent'
一个32位变量,充满了说明面具
类型的错误。 这个参数可以是一个或多个
以下错误代码:

值含义
---------- ---------------------------------------- -------------------
CE_BREAK硬件检测到一个中断条件。 (现在不支持)
CE_DNS视窗95只:并行设备没有被选中。
CE_FRAME硬件检测到帧错误。
CE_IOE一个I / O错误发生在与设备通信。
CE_MODE所请求的模式是不支持,或hFile参数
是无效的。 如果这个值被指定,它是唯一
有效的错误。
CE_OOP视窗95只:并行设备出来的信号,这是
纸。
CE_OVERRUN一个字符缓冲区溢出发生。 下一个字符
丢失。
CE_PTO视窗95只:甲超时发生在一个平行的设备。
CE_RXOVER输入缓冲区溢出。 有或者没有
房间在输入缓冲区,或字符后收到
结尾的文件(EOF)字符。
(第二个条件是不可能发生的Win32下)
CE_RXPARITY硬件检测到奇偶错误。 (不支持)
CE_TXFULL的应用程序试图发送一个字符,但
输出缓冲区已满。 (不支持)


OnRequestHangup:程序(发件人:TObject)物体;

当程序异常终止,该事件处理程序
调用。

OnModemStateChange:程序(发件人:TObject; ModemEvent:DWORD的)物体

当调制解调器的资料摘要(CD)的变化状态(高“ - ”低)或环指标
信号检测,此事件处理程序
调用。
发件人:指向TComm对象提出这个要求
ModemEvent:一个32位变量,充满了一种指示面具
是什么使这一呼吁。 这个参数可以是一个或多个
下面的代码:

值含义
---------- ---------------------------------------- -------------------
ME_CTS的CTS(明确的发送)信号改变状态。
(支持在未来,不支持现在)
ME_DSR的DSR(数据设置就绪)信号改变状态。
(支持在未来,不支持现在)
ME_RING环指示信号检测。
ME_RLSD的资料摘要(接收线路信号检测)信号改变
状态。

呼叫GetModemState方法获取现代国家的真实情况。

合法性
==========

此组件是完全免费的(连同源代码)。

原文地址:https://www.cnblogs.com/Values/p/3668276.html