久久自己只精产国品-韩日美无码精品无码-日本熟妇中文字幕三级-男ji大巴进入女人的视频小说-久久97超碰色中文字幕总站

寧波市鄞州首南恒宇激光雕刻廠

WINDOWS95與NT下微機(jī)與智能化儀的串行通信設(shè)計(jì)*下*
分享到:

圖2 3構(gòu)件源程序 ......





圖 2
3 構(gòu)件源程序
unit comm32;
interface
uses
  Windows,Messages,SysUtils,Classes, Graphics, Controls, Forms, Dialogs;
const
   WMCOMMNOTIFY = WMUSER + 1;
Type{定義屬性用梅舉類型}
   TParity = ( None, Odd, Even, Mark, Space );
   TStopBits = (1, 15, 2 );
   TOncommMode = (evchar,evflag);
   TComPorts=( com1,com2,com3,com4);
  ECommsError = class( Exception );
  TOncommEvent = procedure(Sender: TObject;Buffer:Pointer;BufferLength: Word) of
object;{觸發(fā)事件對(duì)像}
   Type{創(chuàng)建監(jiān)視線程類}
  TMyCommWacth = class(TThread)
  private
   PostEvent: Integer;
   { Private declarations }
本文有[www.0574-laser.com]提供,請(qǐng)及時(shí)關(guān)注[www.0574-laser.com]提供的內(nèi)容
  protected
   procedure Execute; override;
  Public
  hCommFile: THandle;{串口句柄}
  hCloseEvent: THandle; {事件句柄}
  hComm32Window:THandle;{消息窗句柄}
   Lpoverlapped:TOVERLAPPED;
   ConStructor Create;{構(gòu)造函數(shù)}
  end;
type{創(chuàng)建構(gòu)件對(duì)象}
  Tcomm32 = class(TComponent)
  Private{定義屬性的私有變量}
   MyComThread: TMyCommWacth;
   BaudRates:   Integer;
   comName: TComPorts;
   parity: TParity ;
   Stopbits : TStopBits ;
   DataBits : Byte;
   InPutbuffers: Integer;
   OutPutbuffers: Integer;
commMode: TOncommMode;
OnCommMsg: TOnCommEvent;
procedure CommWndProc( var msg: TMessage );message WMCOMMNOTIFY;
   { Private declarations }
  protected
   procedure OnCommData(Buffer: PChar; BufferLength: Word);
   { Protected declarations }
  public{運(yùn)行屬性}
   hCommFile:   THandle;
hCloseEvent: THandle;
   hComm32Window:THandle;
Function ComPortOpen : Thandle;
Function ComPortClose : Boolean;
procedure CloseMyComThread;
   Constructor
Create(Aowner:TComponent);override;
   destructor Destroy; override;
   { Public declarations }
published{可視屬性及事件}
property comParity: TParity read Parity Write Parity default None;
property ComPortName:TComPorts read comName Write comName default com2;
property BaudRate:Integer read BaudRates Write BaudRates default 9600 ;
property Stopbit:TStopBits read Stopbits Write Stopbits default1;
property ByteDataBit:Byte read DataBits Write DataBits default 8;
property InBuffersize: Integer read InPutbuffers Write InPutbuffers default 1024;
property OutBuffersize:Integer read OutPutbuffers Write OutPutbuffers default 1024;
property SetComMode:TOncommMode read commMode Write commMode default evChar;
property OnComm:TOnCommEvent read OnCommMsg write OnCommMsg;
end;
procedure Register;
implementation
TMyCommWacth.Create();{監(jiān)視線程創(chuàng)建}
begin
   inherited Create(False);
   FreeOnTerminate:=True;
end;
{監(jiān)視線程執(zhí)行}
procedure TMyCommWacth.Execute;
Var DwTransfer,DwEvtMask:Integer;
begin
  if Comm32.SetComMode = Evchar then
  begin
   if not SetCommMask(hCommFile,
   EVRXCHAR) then Exit;
   While( true) do
   begin
    DwEvtMask:=0;
    WaitCommEvent(hCommFile,
    DwEvtMask,@Lpoverlapped);
    if((DwEvtMaskandEVRXCHAR)
    =EVRXCHAR) then
   begin
    WaitForSingleObject(PostEvent, 1000000);
    ResetEVent(PostEvent);
    PostMessage(hComm32Window ,WMCOMMNOTIFY,hcommfile,0);
    end;
   end;
  end else
  begin
   if not setCommMask(hCommFile,
EVRXFLAG) then Exit;
   While( true) do
   begin
    DwEvtMask:=0;
    WaitCommEvent(hCommFile,DwEvtMask,@comm32.Lpoverlapped);
    if ((DwEvtMask and EVRXFLAG)
    =EVRXFLAG) then
    begin
     WaitForSingleObject(comm32.PostEvent,1000000);
    ResetEVent(comm32.PostEvent);
    PostMessage(hComm32Window,WMCOMMNOTIFY,hCommFile,NULL);
    end;
    end;
  end;
end; {監(jiān)視線程結(jié)束}
{建立通信構(gòu)件}
Tcomm32.Create(Aowner:Tcomponent);
begin
   inherited Create(aOwner);
   MyComThread:= nil;
   hCommFile := 0;
   hCloseEvent := 0;
   Parity:=None;
   ComName:=com2;
   BaudRates:=9600;
   Stopbits:=1;
   DataBits:=8;
   InPutBuffers:=1024;
   OutPutBuffers:=1024;
   CommMode:=Evchar;
end;
destructor TComm32.Destroy;{構(gòu)件析構(gòu)函數(shù)}
begin
   if not(csDesigning in ComponentState)then
   DeallocateHWnd(hComm32Window);
   inherited Destroy;
end;
procedure Register;{構(gòu)件注冊(cè)}
begin
本文有[www.0574-laser.com]提供,請(qǐng)及時(shí)關(guān)注[www.0574-laser.com]提供的內(nèi)容
  RegisterComponents(’Sample’, [Tcomm32]);
end;
procedure TComm32.OnCommData(Buffer: PChar; BufferLength: Word);
begin
   if Assigned(OnCommMsg) then
     OnCommMsg( self , Buffer, BufferLength);
end;
{構(gòu)件端口打開(kāi)方法}
Function TComm32.comPortOpen : Thandle;
var dcbPort:TDCB;
   ComBuff:BOOlean;
   StrCom:string;

聯(lián)系我們

地址: 浙江省.寧波市鄞州區(qū)寧姜公路(九曲小區(qū)二期旁)

郵編: 315040

聯(lián)系人: 盛立峰

電話: 0574-87139378

傳真: 0574-87139378

手機(jī): 13867861670

郵箱: 85400329@qq.com

聯(lián)系我們
主站蜘蛛池模板: 99国产精品国产精品九九| 亚洲人成人一区二区三区| 精品成人乱色一区二区| 精品无码久久久久国产手机版| 超薄肉色丝袜一区二区| 国产精品无码无需播放器| 欧美肥妇多毛bbw| 狠狠色丁香久久综合| 小箩莉末发育娇小性色xxxx| 亚洲小说区图片区色综合网| 国产乱子伦无套一区二区三区 | 欧美日本亚洲韩国一区| 国产在线国偷精品免费看| 久久成人国产精品免费软件| 亚洲色大18成人网站www在线播放| 精品一区二区三区免费播放| 成人午夜福利院在线观看| 在线看片免费人成视频福利 | 亚洲中文无码成人手机版| 国产一卡二卡三新区2022| 偷偷要色偷偷中文无码| 国产精品国产av国产三级| 曰本无码超乳爆乳中文字幕| 亚洲人成网站18禁止久久影院| www亚洲精品少妇裸乳一区二区| 中文字幕在线观看亚洲视频| 国产精品亚洲精品日韩已满| 5d肉蒲团之性战奶水| 久久国产精品2020免费| 狠狠色噜噜狠狠狠狠97首创麻豆| 久久久综合九色合综| 国产老妇伦国产熟女老妇视频 | 亚洲伊人久久大香线蕉| 无码乱码天天更新| 午夜成人无码福利免费视频| 国产深夜福利视频在线| 成人网站在线进入爽爽爽| 国产精品免费观看久久| 亚洲一卡二卡三卡四卡| 五月婷之久久综合丝袜美腿| 久久综合给合久久狠狠狠97色 |