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

📄 comm_sp.dpr

📁 一个串口通讯的封装
💻 DPR
字号:
library comm_sp;

uses
  SysUtils,
  Classes,
  Forms,
  IdGlobal,
  USpComm in 'USpComm.pas' {spComFrm};

{$R *.res}

{common transfer}
function createFrm():integer;
begin
    try
        spComFrm:= TspComFrm.Create(Application);
        result:=0;
    except on e:exception do
        result:=-1;
     end;
end;

function destoryFrm():integer;
begin
    try
        spComFrm.Free;
        result:=0;
    except on e:exception do
        result:=-1;
    end;
end;

{ourer transfer}

//打开串口
function openCom(comPort:integer; baudRate:integer; byteSize:integer;
                          stopBit:integer; parity:integer):integer; stdcall;
begin
    result:=createFrm();
    result:=spComFrm.openCom(comPort,baudRate,byteSize,stopBit,parity);
end;

//关闭串口
function closeCom():integer; stdcall;
begin
    result:=spComFrm.closeCom;
    result:=destoryFrm();
end;

//返回长度
function portread(recv:pchar):integer; stdcall;
begin
    result:=spComFrm.portread(recv);
end;

function portwrite(trans:pchar; size:integer):boolean; stdcall;
begin
    result:=spComFrm.portwrite(trans,size);
end;

function enableReceiveTimeout(mSecond:integer): boolean; stdcall;
var
    FirstTickCount, Now: Longint;
begin
    result:=false;
    FirstTickCount := GetTickCount();
    repeat
        Application.ProcessMessages; //可以相应其它事件
        if (bResponse) then break;
        Now := GetTickCount();
    until (Now - FirstTickCount >= mSecond) or (Now < FirstTickCount);
    result:=true;
end;

function available:integer; stdcall;
begin
    result:=lResponse;
end;


exports openCom, closeCom, portread, portwrite, enableReceiveTimeout, available;

begin
end.

⌨️ 快捷键说明

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