亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? commclass.pas

?? GD_2004 紅外報警控制 串口,喜歡的就下載
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
//******************************************************************************
//*本單元功能是繼承了Comm的一個類模塊                                          *
//*單元名稱:CommClass                                                         *
//*單元功能:232-485通訊                                                       *
//*具體描述:                                                                  *
//*開發作者:張志華                                                            *
//*電子郵件:E-mail(MSN):luer88@163.net; QQ:29763034 TEL:13088096280           *
//*開發日期:2004-10-11                                                        *
//*使用方法:用戶需要向串口發送指定的字符的時候只需要調用相應的命令函數,然后再*
///*調用統一的發送函數SendByte(x:integer)其中X表示該命令需要發送的BUF的個數    *
//*屬    性:                                                                  *
//*修改日期:                                                                  *
//******************************************************************************
//************************函數里參數的定義如下********************************//
        //ControllerAddr  :integer;//集中器
        //TerminalNo      :Integer;//用戶終端
        //PortNo          :Integer;//端口號
        //TerminalCount   :Integer;//用戶終端數
        //TerminalSet     :Integer;//用戶終端數
        //UportReader     :Integer;//端口讀數
        //UportSet        :Integer;//端口配置
        //UportOpen       :Integer;//端口開關開
        //UportClose      :Integer;//端口開關關
//************************函數里參數的定義如上********************************//
unit CommClass;

interface
uses
    SysUtils, Windows, Messages, Classes, Graphics, Controls,
    Forms, Dialogs,Contnrs,Variants,StdCtrls
    ,IniFiles,UnitCommSet,SPComm;
const
    WM_SHOWMESSAGE = WM_USER + 100;
type
    TSPComm = class(TComm)
    private
        MyCommName      :String;//串口名稱
        MyBaudRate      :integer;//波特率
        Sbuf            :array[0..12] of byte; //發送字符的數組
        Rbuf            :array[0..255] of byte; //接收字符的數組
    protected
        procedure InitInf;//初始化信息
    public
        Sendviewstring :string; //向串口發送的字符
        Receviewstring :string; //接收串口回傳的字符
        MSGString      :String;//信息顯示的字符
        PublicStr      :String;//公共字符串
        ContStatus     :Integer; //集中器狀態返回的Rbuf[]的值
        //ContAddr       :Byte;   //回傳集中器地址返回的Rbuf[]的值
        ControllerAddr  :integer;//集中器
        constructor Create(AOwner: TComponent);
        destructor destroy;override;
        procedure Start;  //打開串口
        procedure Stope;  //關閉串口
        procedure ReadContStatus(ControllerAddr:integer);  //讀集中器狀態
        procedure ReadContAddress;  //讀集中器地址
        procedure ReadContTerminalCount(ControllerAddr:integer);  //讀用戶終端數
        procedure ReadIPStates(ControllerAddr:integer); //讀網絡測試狀態
        procedure WriteContAddr(ControllerAddr:integer);//寫集中器地址
        procedure WriteContTerminalCount(ControllerAddr:integer;TerminalCount:integer);//寫用戶終端數

        procedure ReadTerminalStatus(ControllerAddr:integer;TerminalNo:integer); //讀智能終端狀態的命令
        procedure ReadTerminalSet(ControllerAddr:integer;TerminalNo:integer);//讀智能終端配置的命令
        procedure ReadTerminalAddr;//讀智能終端地址的命令
        procedure WriteTerminalSet(ControllerAddr:integer;TerminalNo:integer;TerminalSet:integer);//寫智能終端配置的命令
        procedure WriteTerminalAddr(TerminalNo:integer);//寫智能終端地址的命令
        procedure ReadUportSet(ControllerAddr:integer;TerminalNo:integer;PortNo:integer);//讀端口配置的命令
        procedure ReadUportReader(ControllerAddr:integer;TerminalNo:integer;PortNo:integer);//讀端口數值的命令
        procedure WriteUportReader(ControllerAddr:integer;TerminalNo:integer;PortNo:integer;UportReader:integer); //寫端口數值的命令
        procedure WriteUportSet(ControllerAddr:integer;TerminalNo:integer;PortNo:integer;UportSet:integer);//寫端口配置的命令
        procedure WriteUportOpenClose(ControllerAddr:integer;TerminalNo:integer;PortNo:integer;UportOpen:integer);//端口開關開的命令
        procedure ReadUportOpenClose(ControllerAddr:integer;TerminalNo:integer;PortNo:integer);//讀端口開關開狀態的命令
        //串口通訊事件
        procedure ReceiveData(Sender:TObject;Buffer:Pointer;BufferLength:Word);
        procedure SendMSG;
        //procedure SendMESSAGE;
        function  SendByte(x:integer):boolean;  //讀集中器狀態  x表示循環的次數
        //****************單片機回傳的字符的處理的函數************************//
        function ToPCContStatus(ControllerAddr:Integer;ContStatus:Integer):String;  //回傳集中器狀態
        function ToPCContAddress(ContAddr:Byte):Integer;  //回傳集中器地址
        function ToPCTerminalCount(ContAddr:Byte;TerminalCount:Byte):Integer;  //回傳集中器用戶終端數
        function ToPCReadIPStates(ContAddr:Byte;TerminalCount:Byte):Integer;  //回傳集中器網絡測試狀態

        function ToPCTerminalStatus(ControllerAddr:Integer;TerminalNo:Integer;Warninfo:Integer;TerminalStatus:Integer):String;//回傳用戶終端狀態
        function ToPCTerminalAddr(TerminalNoAddr:Integer):Integer; //回傳用戶終端的地址

        function ToPCUportRead(ControllerAddr:Integer;TerminalNoAddr:Integer;Uport:Integer;ReadData:Integer):Int64;//回傳用戶端口的讀數
        function ToPCUportSet(ControllerAddr:Integer;TerminalNoAddr:Integer;Uport:Integer;UportSet:Integer):String;//回傳用戶端口的配置
    end;
implementation

uses  UnitPublic, UnitMain;

{
******************************** TMyComm****************************************
}
constructor TSPComm.Create(AOwner:TComponent);
begin
    inherited  Create(AOwner);
    Outx_CtsFlow:=False;
    Outx_DsrFlow:=False;
    Outx_XonXoffFlow:=False;
    ParityCheck:=False;
    InitInf;  //初始化過程
    OnReceiveData:=ReceiveData;
end;
destructor TSPComm.destroy;
begin
    Stope;
    inherited;
end;
//把系統設置的初始化;
procedure TSPComm.InitInf;
var
    f :TIniFile;
begin
    f:=TIniFile.Create(ExtractFileDir(application.Exename)+'\SystemSet.ini');
    try
        MyCommName:=f.ReadString('CommSeting','CommName',''); //服務端口號
        MyBaudRate:=StrToint(f.ReadString('CommSeting','BaudRate','')); //服務端口號
    except
        frm_CommSet:=Tfrm_CommSet.Create(self);
        frm_CommSet.ShowModal;
        frm_CommSet.Free;
        f.Free;
        Exit;
    end;
    f.Free;
end;
procedure TSPComm.SendMSG;
begin
    if Length(MSGString)<>0 then
    begin
        SendMessage(frm_Main.Handle,WM_SHOWMESSAGE,Integer(PChar(MSGString+'        '+DateTimeToStr(now))),0);
    end;
end;
//打開串口
procedure TSPComm.Start;
begin
    CommName:=MyCommName;
    BaudRate:=MyBaudRate;
    try
        StartComm;
        PublicStr:='系統占用的是'+MyCommName+'串口  已經打開  波特率為:'+IntToStr(MyBaudRate);
    except
        Application.MessageBox('系統錯誤!','系統打開串口失敗!',MB_ok);
        frm_CommSet:=Tfrm_CommSet.Create(self);
        frm_CommSet.ShowModal;
        frm_CommSet.Free;
        Exit;
    end;
end;
//關閉串口
procedure TSPComm.Stope;
begin
    try
        StopComm;
    except
        Application.MessageBox('系統錯誤!','系統關閉串口失敗!',MB_ok);
        Exit;
    end;
end;
//自定義發送函數
function TSPComm.SendByte(x:integer):boolean;
var
    i:integer;
    commflg:boolean;
begin
    Sendviewstring:='' ;
    commflg:=true;
    for i:=0 to x do
    begin
        if not WriteCommData(@Sbuf[i],1) then
        begin
            commflg:=false;
            break;
        end;
        //發送字節時的延時
        //sleep(100);
        Sendviewstring:=Sendviewstring +inttohex(Sbuf[i],2)+' ' ;
    end;
    Sendviewstring:=Sendviewstring;
    result := commflg;
end;
{
//^^^^^^^^^^^^^^^^^^^^^^^^^計算機向單片機發送指令^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//
}
//*************************集中器命令*****************************************//
//發送讀集中器狀態的命令
procedure TSPComm.ReadContStatus(ControllerAddr:integer);
begin
    Sbuf[0]:=$7e; //表示ox7e7e中的第一個7e
    Sbuf[1]:=$7e; //表示ox7e7e中的第二個7e
    Sbuf[2]:=$A0;    //表示讀單元集中器狀態
    Sbuf[3]:=$3;  //表示三個字長
    Sbuf[4]:=HI(ControllerAddr);       //被查詢集中器號的高8位 調用HI函數
    Sbuf[5]:=Lo(ControllerAddr);       //被查詢集中器號的低8位  調用Lo函數
    Sbuf[6]:=Sbuf[2]+Sbuf[3]+ Sbuf[4]+Sbuf[5]; //取得校驗和
    SendByte(6);
end;
//讀集中器地址
procedure TSPComm.ReadContAddress;
begin
    Sbuf[0]:=$7e; //表示ox7e7e中的第一個7e
    Sbuf[1]:=$7e; //表示ox7e7e中的第二個7e
    Sbuf[2]:=$A2;    //表示讀單元集中器狀態
    Sbuf[3]:=$3;  //表示三個字長
    Sbuf[4]:=0;       //被查詢集中器號的高8位 調用HI函數
    Sbuf[5]:=0;       //被查詢集中器號的低8位  調用Lo函數
    Sbuf[6]:=Sbuf[2]+Sbuf[3]+ Sbuf[4]+Sbuf[5]; //取得校驗和
    SendByte(6);
end;
//讀用戶終端數
procedure TSPComm.ReadContTerminalCount(ControllerAddr:integer);
begin
    Sbuf[0]:=$7e; //表示ox7e7e中的第一個7e
    Sbuf[1]:=$7e; //表示ox7e7e中的第二個7e
    Sbuf[2]:=$A6;    //表示讀單元集中器狀態
    Sbuf[3]:=$3;  //表示三個字長
    Sbuf[4]:=HI(ControllerAddr);       //被查詢集中器號的高8位 調用HI函數
    Sbuf[5]:=Lo(ControllerAddr);       //被查詢集中器號的低8位  調用Lo函數
    Sbuf[6]:=Sbuf[2]+Sbuf[3]+ Sbuf[4]+Sbuf[5]; //取得校驗和
    SendByte(6);
end;
//讀網絡測試狀態
procedure TSPComm.ReadIPStates(ControllerAddr:integer);
begin
    Sbuf[0]:=$7e; //表示ox7e7e中的第一個7e
    Sbuf[1]:=$7e; //表示ox7e7e中的第二個7e
    Sbuf[2]:=$A7;    //表示讀單元集中器狀態
    Sbuf[3]:=$3;  //表示三個字長
    Sbuf[4]:=HI(ControllerAddr);       //被查詢集中器號的高8位 調用HI函數
    Sbuf[5]:=Lo(ControllerAddr);       //被查詢集中器號的低8位  調用Lo函數
    Sbuf[6]:=Sbuf[2]+Sbuf[3]+ Sbuf[4]+Sbuf[5]; //取得校驗和
    SendByte(6);
end;
//寫集中器地址
procedure TSPComm.WriteContAddr(ControllerAddr:integer);
begin
    Sbuf[0]:=$7e; //表示ox7e7e中的第一個7e
    Sbuf[1]:=$7e; //表示ox7e7e中的第二個7e
    Sbuf[2]:=$A1;    //表示讀單元集中器狀態
    Sbuf[3]:=$3;  //表示三個字長
    Sbuf[4]:=HI(ControllerAddr);       //被查詢集中器號的高8位 調用HI函數
    Sbuf[5]:=LO(ControllerAddr);       //被查詢集中器號的低8位  調用Lo函數
    Sbuf[6]:=Sbuf[2]+Sbuf[3]+Sbuf[4]+Sbuf[5]; //取得校驗和
    SendByte(6);
end;
//寫用戶終端數
procedure TSPComm.WriteContTerminalCount(ControllerAddr:integer;TerminalCount:integer);
begin
    Sbuf[0]:=$7e; //表示ox7e7e中的第一個7e
    Sbuf[1]:=$7e; //表示ox7e7e中的第二個7e
    Sbuf[2]:=$A5;    //表示讀單元集中器狀態
    Sbuf[3]:=$4;  //表示三個字長
    Sbuf[4]:=HI(ControllerAddr);       //被查詢集中器號的高8位 調用HI函數
    Sbuf[5]:=Lo(ControllerAddr);       //被查詢集中器號的低8位  調用Lo函數
    Sbuf[6]:=LO(TerminalCount);//用戶終端數
    Sbuf[7]:=Sbuf[2]+Sbuf[3]+ Sbuf[4]+Sbuf[5]+Sbuf[6]; //取得校驗和
    SendByte(7);
end;
//***********************智能終端命令*****************************************//
//讀智能終端狀態的命令
procedure TSPComm.ReadTerminalStatus(ControllerAddr:integer;TerminalNo:integer);
begin
    Sbuf[0]:=$7e; //表示ox7e7e中的第一個7e
    Sbuf[1]:=$7e; //表示ox7e7e中的第二個7e
    Sbuf[2]:=$B0;    //表示讀單元集中器狀態
    Sbuf[3]:=$4;  //表示三個字長
    Sbuf[4]:=HI(ControllerAddr);       //被查詢集中器號的高8位 調用HI函數
    Sbuf[5]:=Lo(ControllerAddr);       //被查詢集中器號的低8位  調用Lo函數
    Sbuf[6]:=Lo(TerminalNo);           //被查詢智能終端號的低8位  調用Lo函數
    Sbuf[7]:=Sbuf[2]+Sbuf[3]+Sbuf[4]+Sbuf[5]+Sbuf[6]; //取得校驗和
    SendByte(7);
end;
//讀智能終端配置的命令
procedure TSPComm.ReadTerminalSet(ControllerAddr:integer;TerminalNo:integer);
begin
    Sbuf[0]:=$7e; //表示ox7e7e中的第一個7e
    Sbuf[1]:=$7e; //表示ox7e7e中的第二個7e
    Sbuf[2]:=$B4;    //表示讀單元集中器狀態
    Sbuf[3]:=$4;  //表示三個字長
    Sbuf[4]:=HI(ControllerAddr);       //被查詢集中器號的高8位 調用HI函數
    Sbuf[5]:=Lo(ControllerAddr);       //被查詢集中器號的低8位  調用Lo函數
    Sbuf[6]:=Lo(TerminalNo);           //被查詢智能終端號的低8位  調用Lo函數
    Sbuf[7]:=Sbuf[2]+Sbuf[3]+Sbuf[4]+Sbuf[5]+Sbuf[6]; //取得校驗和
    SendByte(7);
end;
//讀智能終端地址的命令
procedure TSPComm.ReadTerminalAddr;
begin
    Sbuf[0]:=$7e; //表示ox7e7e中的第一個7e
    Sbuf[1]:=$7e; //表示ox7e7e中的第二個7e
    Sbuf[2]:=$B2;    //表示讀單元集中器狀態
    Sbuf[3]:=$2;  //表示三個字長
    Sbuf[4]:=0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
图片区日韩欧美亚洲| 一区二区三区电影在线播| 久久久99久久精品欧美| 久久亚洲一级片| 亚洲丝袜精品丝袜在线| 亚洲第一会所有码转帖| 国内偷窥港台综合视频在线播放| 久久99热99| 91热门视频在线观看| 制服丝袜中文字幕亚洲| 久久蜜桃香蕉精品一区二区三区| 中文一区在线播放| 亚洲午夜在线视频| 国产麻豆成人传媒免费观看| 99久久精品免费精品国产| 欧美日韩二区三区| 日本一区二区视频在线| 视频一区二区国产| 91亚洲资源网| 精品国产一区a| 亚洲国产综合色| 成人涩涩免费视频| 欧美一区二区三区四区久久| 国产日韩亚洲欧美综合| 午夜电影网一区| 91在线高清观看| 亚洲精品在线一区二区| 亚洲激情第一区| 国产成人av电影免费在线观看| 在线成人小视频| 亚洲制服丝袜av| 99热精品一区二区| 久久久www成人免费无遮挡大片| 午夜精品福利在线| 91久久精品网| 国产精品免费视频网站| 免费观看久久久4p| 欧美三级午夜理伦三级中视频| 欧美激情综合五月色丁香| 日韩理论电影院| 美女在线观看视频一区二区| 91精品国产91久久久久久最新毛片| 国产欧美日韩在线| 国产在线视频不卡二| 欧美成人伊人久久综合网| 亚洲国产成人精品视频| 在线观看视频欧美| 亚洲激情欧美激情| 色噜噜狠狠色综合欧洲selulu| 中文字幕高清不卡| 国内精品不卡在线| 久久久久成人黄色影片| 免费高清在线一区| 日韩一区二区三区观看| 奇米一区二区三区| 精品欧美乱码久久久久久1区2区| 亚洲在线视频网站| 欧美精品高清视频| 午夜婷婷国产麻豆精品| 欧美人伦禁忌dvd放荡欲情| 亚洲h动漫在线| 91精品国产综合久久久久久久 | 午夜免费欧美电影| 欧美日韩一区高清| 午夜国产精品影院在线观看| 欧美一区二区三区在线看| 免费精品99久久国产综合精品| 欧美一区二区性放荡片| 老司机精品视频导航| 久久亚洲免费视频| 成人av在线一区二区三区| 国产精品国产自产拍高清av王其 | 成人免费高清在线| 亚洲日本在线看| 欧美三级电影网| 日本午夜一本久久久综合| 欧美成人乱码一区二区三区| 国产精品小仙女| 亚洲一区二区视频在线| 日韩欧美中文字幕一区| 国产不卡视频在线播放| 一区二区三区鲁丝不卡| 6080yy午夜一二三区久久| 国产精品一区二区三区四区 | 国产麻豆精品视频| 亚洲色图在线视频| 337p亚洲精品色噜噜噜| 国产91丝袜在线播放| 一区二区三区资源| 精品成人a区在线观看| 91在线国产福利| 日韩和欧美一区二区三区| 久久久久久亚洲综合影院红桃| 一本一本久久a久久精品综合麻豆| 丝袜诱惑制服诱惑色一区在线观看| 久久综合色天天久久综合图片| 99在线精品观看| 免费在线观看日韩欧美| 亚洲天堂av老司机| 精品久久久久久久久久久院品网 | 大尺度一区二区| 美女在线一区二区| 国产精品久久夜| 精品国免费一区二区三区| 日本高清不卡视频| 国产91精品久久久久久久网曝门| 亚洲五月六月丁香激情| 久久蜜桃av一区精品变态类天堂| 色哟哟日韩精品| 国产美女娇喘av呻吟久久| 亚洲gay无套男同| 《视频一区视频二区| 欧美成人国产一区二区| 精品视频全国免费看| 成人手机电影网| 激情欧美一区二区三区在线观看| 亚洲一区二区三区四区不卡| 国产精品国产三级国产aⅴ无密码| 91麻豆精品国产91久久久久| 91麻豆福利精品推荐| 国内精品伊人久久久久影院对白| 亚洲韩国一区二区三区| 亚洲欧美一区二区三区极速播放 | 欧美三级中文字幕在线观看| 成人免费视频视频在线观看免费| 奇米精品一区二区三区在线观看一 | 日韩一区二区在线观看| 欧美私人免费视频| 91国产成人在线| 本田岬高潮一区二区三区| 国产精品影音先锋| 精品一区二区在线看| 麻豆成人91精品二区三区| 日韩高清一区二区| 视频在线观看一区| 欧美a一区二区| 婷婷成人激情在线网| 亚洲一二三四在线| 亚洲一区二三区| 亚洲成国产人片在线观看| 一区二区三区在线观看动漫| 亚洲男同性恋视频| 国产视频视频一区| 国产99久久久久久免费看农村| 色婷婷激情一区二区三区| www.日本不卡| 色综合天天综合网天天看片| 在线观看日韩精品| 精品国产91亚洲一区二区三区婷婷| 国产喷白浆一区二区三区| 亚洲欧洲精品成人久久奇米网| 夜夜嗨av一区二区三区四季av| 日本欧洲一区二区| jizz一区二区| 91精品国产综合久久婷婷香蕉 | 久久精品一区二区三区不卡牛牛 | 成人av免费在线| 在线看国产一区二区| 精品1区2区在线观看| 一区二区三区日本| 国产伦精品一区二区三区免费迷 | 国产精品一二三四| 欧美特级限制片免费在线观看| 精品成a人在线观看| 91玉足脚交白嫩脚丫在线播放| 精品一区二区三区在线视频| 99re视频精品| 久久久久99精品一区| 一级精品视频在线观看宜春院| 国产一区日韩二区欧美三区| 欧美亚洲国产一区在线观看网站| 久久日韩粉嫩一区二区三区| 午夜日韩在线电影| 99re亚洲国产精品| 国产女人水真多18毛片18精品视频| 日日噜噜夜夜狠狠视频欧美人 | 91黄色激情网站| 国产欧美日产一区| 国产在线不卡一区| 欧美v日韩v国产v| 亚洲.国产.中文慕字在线| 色综合久久88色综合天天6| 国产偷国产偷亚洲高清人白洁| 麻豆91在线播放免费| 欧美疯狂性受xxxxx喷水图片| 亚洲视频在线观看三级| 成人小视频在线| 久久久久久久久久久久久久久99| 免费成人结看片| 91精品国产高清一区二区三区蜜臀| 一级精品视频在线观看宜春院| 99九九99九九九视频精品| 亚洲国产精华液网站w| 丰满白嫩尤物一区二区| 精品福利视频一区二区三区| 麻豆精品蜜桃视频网站| 日韩免费一区二区三区在线播放| 天天av天天翘天天综合网| 欧美麻豆精品久久久久久| 亚洲一区二区精品久久av|