版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Delphi串口通信编程第一章基本概念通信串行通信硬件基础知识模式及流量接线和错误预防错误排除1、通信通信:不同的独立系统通过线路互相交换数据数据通信:终端与计算机之间的通信或计算机与计算机之间的通信网络:构成整个通信的线路数据传送通信的类型字符传输数据传送完整的通信系统包括发送端、接收端、转换数据的接口以及传送数据的实际信道或媒体DTE(DataTerminalEquipment):发送与接收的节点DSE(DataSwitchingEquipment):中间节点,负责数据转送工作DCE(DataCommunicationEquipment):负责数据与电气信号转换的设备DTE与DCE间的数据传输线路通常使用RS-232DTE与DSE间的媒体则包括了双绞线、同轴电缆、光纤或无线电等传送的方式并行传送(Parallel):一次的传输量为8个位(1字节)通过并行端口,如打印机串行传送(Serial):一次只传输1个位通过串行端口,如RS-232通信的种类将数据转换成串行通信有两种方式同步方式:接收设备能自动与发送计算机同步,接收字符有规则的分割开来,以块为单位,没有起始位和停止位,效率高。异步方式:以字符为传送单位,传送的字符之间有无规律的间隔,这样可能使接收设备不能正常接收数据,因为每接收完一个字符都不能确切地知道下一个接收的字符从何时开始。(通过加开始位和停止位实现)传输效率低,成本也低。字符传输位和字节文本编码非文本编码帧位和字节二进制中的每一位0和1,被叫做一个位每8个位构成一个字节一个字节中最右面的位被称为第0位,最左面的位被称为第7位。文本编码文本(字符字母、标点符号等)在计算机中存储时,每个不同的字符都用不同的数值来表示。这些数值的范围通常在0-127或0-255范围。7位:ASCII码,每个字节留一个备用位8位:前128个遵循ASCII码规则,其余的128个用来做扩展字符、数字符号、图形字符等编码。非文本编码某些可执行指令文件和图形图像文件就是以二进制形式而不是ASCII码形式存储的。一个数据可用二进制形式存储,可以占多个字节。在通信领域,常常把这种类型的资料叫做二进制数据。帧帧:在串行异异步通信情况况下,构成一一个字节的那那些数据单元元被称为数据据位,在数据据位的前、后后要加上起始始位、停止位位和奇偶校验验位。一个字符所使使用的位数根根据协议而不不同。称这些位数为为字符位数据据长或字长。。通常常不不是是8位位就就是是7位位。。2、、串串行行通通信信RS-232串串行行通通信信RS-485串串行行通通信信USB接接口口IEEE-1394RS-232串串行行通通信信RS-232的的通通信信端端口口是是每每台台计计算算机机上上的的必必要要配配置置,,通常常含含有有COM!!和和COM2两两个个端端口口。。计算算机机上上的的RS-232均均是是公公头头一般般有有两两种种::9引引脚脚和和25引引脚脚RS-485串串行行通通信信RS-485的的通通信信方方式式可可有有效效地地防防止止噪噪声声信信号号的的干干扰扰。。RS-485的的信信号号将将被被发发送送出出去去时时会会先先分分成成正正负负的的两两条条线线路路,,当当到到达达接接收收端端后后,,再再将将信信号号相相减减还还原原来来原原来来的的信信号号;;如如果果将将原原始始的的信信号号记记为为((DT),,而而被被分分成成后后的的信信号号分分别别记记为为((D+)及及((D-),,则则原原始始的的信信号号与与离离散散的的信信号号在在由由发发送送端端发发送送出出去去时时::((DT)=((D+)-((D-)如果果此此线线路路受受干干扰扰,,则则两两条条传传输输线线上上的的信信号号会会分分别别成成为为((D+)+Noise及及((D-)+Noise(DT)=[((D+)+Noise]-[((D-)+Noise]=((D+)-((D-)USB((UniversalSerialBus))接接口口集成成一一般般计计算算机机所所使使用用的的外外围围设设备备的的连连接接方方式式,,而且且其其所所采采用用的的信信号号传传输输方方式式也也是是串串行行通通信信。。USB特性性:低低价位位,热热连接接,单单一的的连接接头方方式,,连接接数多多,线线上供供电,,不占占系统统资源源,错错误检检测与与复原原,节节省能能源,,支持持四种种传输输(巨巨量、、实时时、中中断及及控制制4种种传输输模式式),,速度度较快快(12Mbps/RS-232最最快115bps))IEEE-1394IEEE-1394(也也称FireWire,,火线线)与与USB一一样拥拥有即即插即即用的的功能能,也也是用用于解解决计计算机机与外外围设设备复复杂的的连接接问题题,并并且也也是使使用串串行通通信的的传输输方式式。IEEE-1394的传传输速速度是是400Mbps,,而且且速度度还向向1000Mbps迈进进USB与IEEE-1394的比比较比较项项目USBIEEE-1394应用低低速速设备备高高速设设备带宽(Mbps))1.5,12100,200,400电缆长长度5米米4.5米电缆4线线6线线即插即即用支支持持支支持持3、硬硬件基基础知知识PC机的RS-232接口名名称尚未统统一,有多多个名称::RS-232口、、串口、通通信口、COM口、、异步口等等。123456789常用的9条条RS-232信号号线引脚信号名称信号方向简称信号功能1载波检测DCE-DTEDCD(DataCarrierDetect)数据链路已连接2接收数据DCE-DTERxD(Receive)DTE接收串行数据3发送数据DTE-DCETxD(Transmit)DTE发送串行数据4数据终端就绪DTE-DCEDTR(DataTerminalReady)DTE准备准备就绪5信号地-SG(SignalGround)公共信号地6数据设备就绪DCE-DTEDSR(DataSetReady)DCE准备就绪,可以接收7请求发送DTE-DCERTS(RequesttoSend)DTE通知DCE请求发送8清除发送DCE-DTECTS(CleartoSend)DCE已切换到接收模式9振铃指示DCE-DTERI(RingIndicator)通知DTE有远程呼叫一次应答呼呼叫过程Modem从接收到到振铃信号号开始,到到数据传输输结束Modem和和DTE恢恢复到原来来的空闲状状态为止的的过程。数据终端端DTE的的控制软件件持续监视视振铃指示示RI,等等待该信号有效响铃后,,RI信号在在ON和OFF状态态之间交替替变化。DTE的的通信控制制软件在检检测到振铃铃指示后,,开始通过过计算机振铃指指示的ON和OFF状态的变变化次数来来进行计数数。当达到程序序设计的次次数时,控控制软件发发出终端就就绪信号(DTR))有效,使使Modem进行摘机机状态,开开始应答电电话Modem在等待一一小段时间间后,自动动地发送它它的应答载载波信号。同时时Modem发出数数据设备就就绪信号((DSR)),通知DTE已已经完成所所有准备工工作,正在在等待对方方的载波信信号在DTE发发出数据终端端就绪信号((DTR)期期间,DTE的控制软件件监视数据设设备就绪信号号(DSR))是否有效,,当DSR为为ON状态后后,DTE便便知道Modem已已准备建立数数据链路,于于是DTE开开始检测载波波信号(DCD),以检检查数据链路路是否已经建建立当主叫Modem的的载波信号出出现在电话线线上时,被叫叫Modem发出载波信信号(DCD),以检查查数据链路是是否已经建立立在数据链路路连接期间,,发送数据((TxD)和和接收数据((RxD)线线上即开始了了全又工通信信。同时,DTE仍监视视载波信号((DCD),,以确定数据据链路是否连连接数据据传输输结束束后,,DTE使使数据据终端端就绪绪信号号(DTR)无无效,,Modem撤消消载波波检测测(DCD),,并且且使设设备数数据就就绪信信号((DSR))信号号无效效。数数据候候链路路释放放后,,Modem和DTE返回回到初初始状状态。。通信参参数数据的的传送送速度度数据的的传送送单位位数据的的传送送速度度波特率率:每每秒所所能产产生的的最大大电压压状态态改变变率((一秒秒钟可可以振振荡的的次数数)bps通信双双方必必须要要取得得一样样的通通信速速度。。原始始信号号经过过不一一样的的波特特率取取样后后,所所得的的结果果完全全不一一样,,如取取样速速度只只有原原来一一半时时,信信号被被跳着着取样样,数数据因因此错错误。。数据的的传送送单位位一般串串行通通信端端口所所传送送的数数据是是字符符类型型,若若用来来传输输文件件,则则会使使用二二进制制的数数据类类型。。起始位位及停停止位位异步串串行传传输时时需要要当发送送端要要开始始传送送数据据时,,便将将传输输线上上的电电压由由低电电位提提升至至高电电位,,而当当传送送结束束后,,再将将电压压降至至低电电压。。接收收端会会因起起始位位的触触发((因电电压由由低电电位升升至高高电位位)而而开始始接收收数据据;并并因停停止位位的通通知((因电电压维维持在在低电电位))而确确节知知道数数据的的字符符已经经结束束。校验位位的检检查用来检检查所所传送送数据据正确确性的的一种种核对对码,,其中中又分分成奇奇校验验(Odd)及及偶校校验((Even)串行通通信上上的字字符数数据格格式起始位位+传传送字字符+校验验位+停止止位4、模模式及及流量量工作模模式硬件握握手软件件握握手手工作作模模式式当计计算算机机在在进进行行数数据据的的传传送送与与接接收收时时,,传传输输线线上上的的数数据据流动动情情况况可可分分为为3种种::单工工::传传输输线线上上的的数数据据流流动动只只有有一一个个方方向向半双工::数据流流动是双双向,但但同一时时间只能能一个方方向行进进全双工::传输线线同时具具有两个个方向的的传输能能力RS-485属属于半双双工,RS-232属属于全双双工(引引脚在设设计时就就是接收收与传送送是分属属两个不不同的引引脚与线线路。))串行数据据的流动动方式当数据要要由A设设备传送送至B设设备前,,数据会会先被送到到A设备备的数据据输出缓缓冲区,,接着再由此缓缓冲区将将数据由由RS-232线路传传送到B设备;;同样地地,当数数据通过过硬件线线路传送送到B设设备时时,数数据首首先会会送到到接收收缓冲冲区,,而设备备B的的CPU再再到接接收缓缓冲区区将数数据读读取并进行行处理理。握手握手信信号::提供供一种种控制制数据据流的的方法法,即即接收收设备备可以以控制制发送送设备备的数数据发发送。。如果接接收设设备速速度比比发送送速度度快,,握手手信号号可以以略去去。在异步步串行行通信信中,,这称称之为为握手手(handshaking)或或流量量控制制(flowcontrol))。流量控控制::保证证传输输双方方都能能正确确地传传送和和接收收数据据而不不会漏漏失。。握手控制可可以具休分分为硬件握握手和软件件握手。硬件握手使用专门的的握手电路路去控制数数据的传输输。当接收设备备准备好之之后,就通通过专用的的握手电路路传送一个正电压给给发送设备备,指示发发送设备发发送数据。。如果接收设备传送送一个负电电压给发送送设备,则则指示发送送设备停止发送数据据。硬件握手用用到DSR、CTS、DTR、RTS4条硬件件线路,其其中DTR、RTS指的是计计算机上的的RS-232端;;而DSR、CTS则是指被被控制的设设备端。计算机->设备设备必须将将相对于计计算机上的的DSR引引脚降为低低电压计算机检测测到DSR引脚为低低电位后,,暂停数据据的传输;;同时设备备继续处理理位于缓冲冲区的数据据等设备的接接收缓冲区区数据量下下降到一定定程度后,,设备将DSR引脚脚的标准电电压升高计算机一检检测到DSR引脚为为高电压后后,随即继继续传送数数据给设备备设备->计计算机计算机将DTR引脚脚降为低电电压设备检测到到DTR引引脚为低电电压后,暂暂停数据的的传输;同同时计算机机也会继续续处理位于于缓冲区的的数据待计算机的的接收缓冲冲区中数据据量下降到到一定程度度后,计算算机将DTR引脚的的标准电压压升高设备一检测测到DTR引脚为高高电压后,,随即继续续传送数据据给计算机机软件握手以数据线上上的数据信信号来代替替实际的硬硬件线路最常见的是是XON/XOFF协议:若接收端欲欲使发送端端暂停数据据的传送时时,它便向向发送端送出ASCII第19号字符符(十六进进制是13);而欲欲恢复传送送时,便向发发送端送出出ASCII第17号字符((十六进制制是11)),两个字符的的交互使用用,便可控控制发送端端的传送操操作了。其操作流程程与硬件握握手类似。。5、接线和和错误预防防接线方法错误预防接线方法RS-232口特点点:9引脚或25引脚公头(区别别于打印机机接头)123456789543219876计算机上为为公头连线上为公公头当使用RS-232与Modem进行行连接时,,直接连接接即可当使用RS-232和其他的的设备进行行连接时,,有时就必必须做必要要的跳线跳线跳线的实际际意义就是是一个传送送的信号必必须到达对对方的接收引脚,如如此才能形形成一个完完整的通路路。跳线:欲将将数据从一一个地方传传送至另一一个地方,,其实只要要使用第2引脚、第第3引脚与与第5引脚脚就可以形形成一个最最简单的通通信线路。。实际制作作:将RS-232线的一端端接头拆掉掉,将里面面的第2引引脚和第3引脚对调调即可。跳线线的的意意义义::甲甲方方传传送送的的数数据据必必定定到到乙乙方方的的接接收收信信道道;;而而乙乙方方的的传传送送数数据据则则会会到到达达甲甲方方的的接接收收信信道道,,双双方方的的传传送送与与接接收收形形成成一一个个完完整整的的回回路路。。错误预预防检测数数据在在传送送过程程中发发生的的错误误CheckSum:将所所有要要传送送字符符的ASCII码做做加法法运算算,计计算其其总和和后将将此数数目与与一数数字((通常常是255)做做除法法运算算,再再取其其余数数,将将此余余数组组合成成传送送字符符串的的一部部分而而传送送出去去;同同样,,接收收方也也以相相同的的方式式对所所传送送过来来的字字符串串进行行运算算操作作,以以判断断数据据的正正确性性,如如果不不对,,则要要求发发送方方重发发。CRC(CCyclicRedundancyCheckCode循循环冗冗余校校验码码)将欲传输输的数据据块视为为一堆连连续位所所构成的的一个整整数值,,并将此此数值除除一个特特定的除除数。错误预防防原理::将所传送送的数值值做相加加的操作作后与一一个固定定的除数进行除除法运算算,所得得的余数数即为校校验码。。传送与接收的的双方只只要针对对其固定定的检查查方法分分别进行运算,,比较后后只要双双方均一一致,即即正确;;若不一致,数数据重传传。6、错误误排除波特率失失配检验错误误字长不匹匹配停止位错错帧错波特率失失配如果两个个设备的的波特率率设置不不同,当当接收设备试图图接受数数据时,,程序将将报告校校验错和帧错。。校验错误误指数据在在传输中中被破坏坏,至少少可以说说明设备在奇偶偶校验位位类型设设置不同同或者字字长不同。字长不匹匹配发送的是是8位字字长,接接收采用用7位字字长发送的是是7位字字长,接接收采用用8位字字长停止位错错接收端要要求一个个停止位位,而发发送端发发送了两两个停止止位接收端要要求两个个停止位位,而发发送端发发送了一一个停止止位帧错一般指位位数不匹匹配。这个类型型的错误误,通常常是在没没有接收收到要求求的停止止位时出出现。第2章串串行通通信程序序及组件件建立1、串行行通信的的WindowsAPI简述2、通信信测试3、自动动与事件件1、串行行通信的的WindowsAPI简述串行通信信相关函函数串口通信信流程Delphi的的Windows.pas单单元文件件中已经经将Win32API均均声明进进去,因因此在Delphi里里面使用用API时只要在uses区段段中加入入Windows,使使其引用用该单元文件件即可串行通信信相关函函数CreateFile:建立立文件,,在此用用打开通通信端口口CloseHandle:关关闭由CreateFile建立的的文件,,在此用用于关闭闭通信端端口GetCommState:取得计计算机串串口的设设置参数数SetCommState:设置计计算机串串口的参参数WriteFile:将数据据写入文文件,在在此用来来将数据据由串口口送出ReadFile:由由文件中中读取数数据,在在此用来来取得送送到串口口的数据据ClearCommError:清清除串行行端口的的错误,,并取得得信息串行通信信相关函函数PurgeComm::清除串串口上的的缓冲区区EscapeCommFunction::控制串串口的硬硬件状态态SetCommMask:设设置事件件的掩码码,用以以触发事事件WaitCommEvent:等待待设置事事件的发发生GetCommModemStatus::取得串串口上的的硬件线线路状态态HANDLECreateFile(LPCTSTRlpFileName,//文件名名指针DWORDdwDesiredAccess,//存取((读/写写)模式式DWORDdwShareMode,//共享享模式LPSECURITY_ATTRIBUTESlpSecurityAttribute,//securityattribute结结构指针针DWORDdwCreationDistribution,//打开开文件的的方式DWORDdwAttrsAndFlags,//文件属属性HANDLEhTemplateFile//带属性性复制的的文件句句柄);有关参数数说明lpFileName:欲打开开的文件件名称。。以串口口通信来来说,就就是COM1、、COM2等等dwDesiredAccess:读写模模式设备备。由于于将会对对串口进进行读写写操作,,因此在在此给定定GENERIC_READ和GENERIC_WRITE常常数dwShareMode:是否共共享串行行端口。。一般不不共享,,设为0lpSecurityAttribute:传入一个SecurityAttribute结构,,指明其返返回的Handle是否可以以被子程序序所继承。。在此设置置为nil,表示不不可继承dwCreationDistribution:指定如何何打开文件件。在打开开设备时,,此参数设设定为OPEN_EXISTINGdwAttrsAndFlags:文件属性性及相关标标志。此项项设置为0hTemplateFile:此项设置置为0BOOLCloseHandle(HANDLEhObject);hObject:要要关闭对象象的句柄当函数返回回True时,表示示关闭动作作完成。VarFhandle:THandle;ComName:array[0..4]ofchar;//ComName:string;BeginComName:=‘COM1’;//PCHAR(ComName)FHandle:=CreateFile(ComName,GENERIC_READorGENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);ifFHandle<>INVALID_HANDLE_VALUEthenshowmessage(‘‘串口打开开成功!’’)Elseshowmessage(‘‘串口打开开失败!’’);CloseHandle(FHandle);End;GetCommStateBOOLGetCommState(HANDLEhFile, //通通信设备备的句柄LPDCBlpDCB//设备备控制块结结构的地址址);_DCB=packedrecordDCBlength:DWORD;//DCB结结构的长度度BaudRate:DWORD;//当前波特特率Flags:Longint;//wReserved:Word;//保保留,未使使用XonLim:Word;//传送XON阈值XoffLim:Word;//传送XOFF阈值值ByteSize:Byte;//每字字节位数((4-8))Parity:Byte;//0-4:no,odd,even,mark,spaceStopBits:Byte;//0,1,2:1,1.5,2XonChar:CHAR;//设置Tx和Rx的的XON字字符XoffChar:CHAR;//设置Tx和Rx的的XOFF字符ErrorChar:CHAR;//有错误时时的替换字字符EofChar:CHAR;//表示输输入结束的的字符EvtChar:CHAR;//接收事事件字符wReserved1:Word;//保留,未未使用end;TDCB=_DCB;DCB=_DCB;PDCB=^TDCB;SetCommStateBOOLSetCommState(HANDLEhFile, //通通信设备备的句柄LPDCBlpDCB//设备备控制块结结构的地址址);VarFDCB:TDCB;GetCommState(FHandle,FDCB);FDCB.BaudRate:=9600;FDCB.Parity:=EVENPARITY;FDCB.Stopbits:=ONESTOPBIT;FDCB.Bytesize:=8;SetCommState(FCOMHandle,FDCB);WriteFileBOOLWriteFile(HANDLEhFile, //要要写入文文件的句柄柄LPCVOIDlpBuffer,//写写入文件中中的数据的的指针DWORDnNumberOfBytesToWrite,//写入入的字节数数LPDWORDlpNumberOfBytesWritten,//写入入总字节数数的指针LPOVERLAPPEDlpOverlapped //overlappedI/O结结构的指针针);//lpOverlapped通通常用来作作后台工作作时同步检检查之用,,在串行通通信中若不不同时使用用串行端口口,则可不不使用,设设为nilvari:byte;strlen:DWord;xx:byte;dat:array[0..99]ofchar;begindat[0]:=chr($fe);dat[1]:=chr($1B);dat[2]:=chr($44);dat[3]:=chr($03);dat[4]:=chr($02);xx:=0;fori:=1to4doxx:=xxxorord(dat[i]);dat[5]:=chr(xx);//异或校验验strlen:=6;WriteFile(FHandle,dat,strlen,strlen,nil);end;ReadFileBOOLReadFile(HANDLEhFile,//要要读取文件件的句柄LPVOIDlpBuffer,//接接收数据的的缓冲区地地址DWORDNumberOfBytesToRead,//读取的字字节数LPDWORDlpNumberOfBytesRead,//读取总总字节数的的地址LPOVERLAPPEDlpOverlapped//OverLappedI/O结构的地地址);Vardat:array[0..99]ofchar;flag:dword;stepno:integer;beginstepno:=0;repeatReadfile(FHandle,dat,1,flag,nil);ifflag>0thenifdat1[0]=chr($fe)thenstepno:=1;until(stepno=1)or(flag<=0);Readfile(FHandle,dat,1,flag,nil);length:=ord(dat1[0]);//取长长度readfile(FHandle,dat1,length,flag,nil);end;PurgeCommBOOLPurgeComm(HANDLEhFile, //通信资源源的句柄DWORDdwFlags //执行动作作);dwFlags:指定执执行的工作PURGE_TXABORT:终止止目前所有的的传输工作,,立即返回,,不管是否完完完成传输的的操作PURGE_RXABORT:终止止目前所有的的读取工作,,立即返回,,不管是否完完成读取操作作PURGE_TXCLEAR:清除除传送缓冲区区中的所有数数据PURGE_RXCLEAR:清除除接收缓冲区区中的所有数数据EscapeCommFunctionBOOLEscapeCommFunction(HANDLEhFile, //通信设备备的句柄DWORDdwFunc //指定执行行的功能);dwFunc::指定定串口口必须须完成成的工工作CLRDTR:将DTR线路路降成成低电电压CLRRTS:将RTS线路路降成成低电电压SETDTR:将DTR线路路升成成高电电压SETRTS:将RTS线路路升成成高电电压SETXOFF:当当接收收到Xoff字字符时时激活活传输输操作作SETXON:当接接收到到Xon字字符时时激活活传输输操作作SETBREAK:设置置通信信状态态为中中断((送出出BREAK信信号))CLRBREAK:清除除BREAK信信号,,使传传输动动作继继续GetCommModemStatus取得串串口数数字输输入线线路电电压状状态可可用该该函数数BOOLGetCommModemStatus(HANDLEhFile,//通通讯讯设备备的句句柄LPDWORDlpModemStat//控控制制寄存存器中中数值值的地地址);lpModemStat:指指向检检测到到的状状态的的参数数地址址,32位位长度度MS_CTS_ON:CTS(clear-to-send)引引脚升升至高高电压压MS_DSR_ON:DSR(data-set-ready)引引脚脚升至至高电电压MS_RING_ON::RI引脚脚升至至高电电压MS_RLSD_ON::DCD引引脚升升至高高电压压串口通通信流流程打开通通信端端口打开成成功??通信参参数设设置其他函函数操操作显示错错误信信息关闭串串口结束开始继续操操作??否是2、通通信测测试通信步步骤回路测测试通信步步骤设置通通信端端口号号码使用CreateFile函函数打打开通通信端端口设置通通信协协议设置传传输速速度等等参数数设置其其它参参数送出字字符串串或读读入字字符串串,使使用ReadFile及及WriteFile函函数使用完完毕后后以CloseHandle函数数将通通信端端口关关闭回路测测试硬件设设置软件实实现硬件设设置两台计计算机机,各各使用用其上上的一一个串串口,,一条条RS-232两边边都是是母头头的线线一台计计算机机,但但拥有有两个个串行行通信信口,,一条条RS-232两边边都是是母头头的线线一台计计算机机,一一个串串行通通信口口,一一条RS-232线线,至至少其其中一一边是是母头头3、自自动与与事件件自动化化的实实现轮询方方式::不断断地发发出询询问的的信号号给设设备,,要求求设备备返回回计算算机所所要的的信息息使用定定时器器(Timer组件件),,设定定时间间间隔隔,当当时间间间隔隔一到到,便便会执执行原原先放放在定定时器器中的的程序序代码码使用While…Do不不断地地执行行程序序代码码线程方方式::将串串行通通信的的功能能封装装在一一个线线程中中,利利用线线程的的不断断执行行而达达到自自动化化的目目的建立多多线程程工作原原理::操作系系统将将CPU处处理数数据的的时间间切成成很多多的时时间片片(TimeSlice),,操作作系统统再将将应用用程序序的代代码加加载到CPU中中执行行,一一旦这这一小小块的的时间间执行行完毕毕后,,操作作系系统统会会将将正正在在执执行行的的程程序序放放一一边边,,然然后后再再取取另另外一一个个应应用用程程序序进进CPU中中执执行行,,一一样样只只执执行行这这一一小小块时时间间片片,,如如此此周周而而复复始始,,所所以以见见到到了了整整个个系系统统中中多任任务务的的情情况况。。线程程的的实实现现应用用程程序序执执行行后后即即产产生生主主线线程程,,而而主主线线程程可可以以衍衍生出出其其他他线线程程。。一一个个应应用用程程序序可可以以依依需需要要而而造造出出多个个线线程程对对象象,,每每一一个个线线程程开开始始执执行行后后即即被被排排入入CPU的的执执行行周周期期中中,,这这些些线线程程可可能能被被建建立立后后开开始始执行行,,直直到到应应用用程程序序结结束束;;也也有有可可能能执执行行完完工工作作后在在应应用用程程序序结结束束前前就就结结束束掉掉,,实实际际的的情情况况看看具具体需需求求而而定定。。Tthread类类中中常常用用的的方方法法Create::建建立立线线程程。。使使用用此此方方法法可可建建立立线线程程,,有有1个个参参数数,,若若设设成成True,,表表示示建建立立后后不不立立即即执执行行;;若若设设成成False,,则则表表示示一一建建立立后后马马上上执执行行。。constructorCreate(CreateSuspended:Boolean);Free:释放放线程,,线程程程序代码码将从内内存中被被删除procedureFree;Resume::执行程程序代码码。若线线程暂停停时,使使用此指指令再次次激活procedureResume;Suspend:暂停停线程。。将执行行中的线线程暂停停procedureSuspend;varSecondProcess:TMyThread;{TMyThreadisacustomdescendantofTThread}beginSecondProcess:=TMyThread.Create(True);{createsuspended-secondprocessdoesnotrunyet}SecondProcess.Priority:=tpLower;{settheprioritytolowerthannormal}SecondProcess.Resume;{nowrunthethread}end;第4章串串行通通信中的的字符与与字节1、字符符与字节节2、字节节数据的的传送与与接收1、字符符与字节节字符和字字节的差差别Delphi中中的字符符串种类类及处理理函数中英文字符串串长度计算字符和字节的的差别Windows支持的字字符集有单字字符集、双字字节字符集及及UniCode字符集集,在西方国国家使用Windows系统基本使使用单字符集集,每一个字字符都使用一一个字节来表表示;而亚洲洲国家由于字字符无法单用用一个字节表表示,因此使使用双字节字字符集,其中中每个字符使使用双字节字字符集。UniCodeUniCode涵盖了世世界上所有国国家的字符码码,每个字符符用一个唯一一的内码来表表示,其特点点是所有的字字符以两个字字节表示,不不仅中文使用用两个字节,,英文也使用用两个字节串口通信过过程中,如如果传送的的是一个英英文字节组组成,只要要一个字节节就可以将将信息传送送出去;如如果传送的的是双字节节的字符((如中文)),完整的的字符传送送就必须是是两个字节节。Delphi中的字字符串种类类及处理函函数Chr(x):返返回回X参参数数的的字字符符Ord(x):返返回回x参参数数所所列列的的序序数数,,一一般般用用来来解解读读字字符符在在ASCII码码中中的的序序数数Pos(substr,str):返返回回str中中,,substr出出现现的的位位置置,,若若找找不不到到则则返返回回0StrPos(str1,str2):返回str2在str1出现现的第一位置置的指针,无无则返回nilCopy(str,index,count):返回str参数中,,索引index开始的的count数目的字串串Delete(str,index,count):删除除str字串串中,由index所指指定的开始位位置的count数目的的字串Length(str):返回字串串str的长长度SetLength(str,newlen):设置str的长度Value(str,value,code):将str转成数值value,,code表表示发生错误误的位置Str(value,str):Trim(str),TrimRight(str),TrimLeft(str):去空空格StringReplace(str,oldpattern,newpattern):替换Insert(s1,s2,index):s1插入s2的第index位置中英文字符串串长度计算TypeMaximumlengthMemoryrequiredUsedforShortString255characters2to256bytesbackwardcompatibilityAnsiString~2^31characters4bytesto2GB8-bit(ANSI)charactersWideString~
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五星级酒店总经理聘用合同模板
- 音乐厅后台区植物装饰租赁合同
- 制造业厂长聘用合同样本
- 国际展览桥梁建设合同
- 信息系统工程承包合同
- 2024年软件开发与授权许可合同3篇
- 校园工程招投标规范范本
- 农村耕地租赁合同:农业云计算
- 铁路轨道施工合作协议范本
- 户外拓展基地租赁合同
- 电力机车学员定职副司机练习题题库(1536道)
- 无人机表演服务合同
- 电气自动化专业职业生涯目标规划书范例及步骤
- 水利工程特点、重点、难点及应对措施
- 物业经理转正述职
- 贸易岗位招聘面试题及回答建议(某大型国企)2025年
- 中南林业科技大学《高等代数》2023-2024学年第一学期期末试卷
- 北师大版(2024新版)生物七年级上册期末考点复习提纲
- 课件 军人职责
- Unit 5 Fun ClubsSectionA1a-1d说课稿2024-2025学年人教版英语七年级上册
- 2025蛇年元旦晚会
评论
0/150
提交评论