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

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

?? serialdebug.pas

?? vb與三菱PLC通訊 實現(xiàn)PC與PLC之間的連接
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit SerialDebug;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, OleCtrls, MSCommLib_TLB;

type
  TMainForm = class(TForm)
    mmReceive: TMemo;
    Panel2: TPanel;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    cmbbxComNum: TComboBox;
    cmbbxBaud: TComboBox;
    cmbbxDataNum: TComboBox;
    cmbbxStopBit: TComboBox;
    cmbbxCheckBit: TComboBox;
    btnSerial: TButton;
    shpSerial: TShape;
    mmSend: tmemo;
    chckbxHexSend: TCheckBox;
    chckbxTimer: TCheckBox;
    edtTime: TEdit;
    Label7: TLabel;
    MSComm: TMSComm;
    tmrSend: TTimer;
    chckbxHexShow: TCheckBox;
    Panel3: TPanel;
    chckbxRTS: TCheckBox;
    chckbxDTR: TCheckBox;
    Label5: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    shpDSR: TShape;
    shpCTS: TShape;
    shpCD: TShape;
    Button1: TButton;
    Button2: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Button4: TButton;
    Button3: TButton;
    Button5: TButton;
    Memo1: TMemo;
    Button6: TButton;
    btnSend: TButton;
    btnClear: TButton;
    Label10: TLabel;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Shape1: TShape;
    Shape2: TShape;
    Shape3: TShape;
    procedure FormCreate(Sender: TObject);
    procedure btnSerialClick(Sender: TObject);
    procedure chckbxDTRClick(Sender: TObject);
    procedure chckbxRTSClick(Sender: TObject);
    procedure chckbxTimerClick(Sender: TObject);
    procedure MSCommComm(Sender: TObject);
    procedure chckbxHexShowClick(Sender: TObject);
    procedure chckbxHexSendClick(Sender: TObject);
    procedure btnSendClick(Sender: TObject);
    procedure btnClearClick(Sender: TObject);
    procedure tmrSendTimer(Sender: TObject);
    procedure Panel2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Label11Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
  private
    { Private declarations }
    HexShow:Boolean;
    HexSend:Boolean;
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}
//該函數(shù)接收1個
//轉換成功.輸出字符對應的數(shù)
//轉換失敗.輸出-1
function hex(c:char):Integer ;
var
      x:integer;
begin
     if c=' ' then
        x:=0
     else if (Ord(c)>=ord('0')) and (Ord(c)<=ord('9')) then
        x:=Ord(c)-Ord('0')
     else if (Ord(c)>=ord('a')) and (Ord(c)<=ord('f')) then
        x:=Ord(c)-Ord('a')+10
     else if (Ord(c)>=ord('A')) and (Ord(c)<=ord('F')) then
        x:=Ord(c)-Ord('A')+10
     else
        //輸入錯誤
        x:=-1;        
      Result:=x;
end;

//該函數(shù)接收1個至2個字符
//轉換成功.輸出對應16進制數(shù)的值
//轉換失敗.輸出-1。
function HexToInt(S:String): Integer;
var
    tmpInt1,tmpInt2:Integer ;
begin
   if Length(S)=1 then
   begin
      Result:=hex(S[1]);
   end
   else if Length(S)=2 then
   begin
      tmpInt1:=hex(S[1]);
      tmpInt2:=hex(S[2]);
      if (tmpInt1=-1) or (tmpInt2=-1) then
          Result:=-1
      else
          Result:= tmpInt1*16+tmpInt2;
      end
    else
        //輸入錯誤,轉換失敗    
        Result:=-1;
end;

//程序的初始化
procedure TMainForm.FormCreate(Sender: TObject);
begin
    HexShow:=False;
    cmbbxComNum.ItemIndex:=0;
    shpSerial.Brush.Color:=clWhite;
    shpCD.Brush.Color:=clWhite;
    shpCTS.Brush.Color:=clWhite;
    shpDSR.Brush.Color:=clWhite;
    Panel1.Enabled:=True;
end;

//打開或者關閉串口,并變換指示燈的狀態(tài)
procedure TMainForm.btnSerialClick(Sender: TObject);
var
    ComSetting:String;
    
begin
    if not MSComm.PortOpen then
    begin
        //打開串口
        MSComm.CommPort :=cmbbxComNum.ItemIndex +1;
        //默認值為 '9600,N,8,1'
        ComSetting:=cmbbxBaud.Text;
        ComSetting:=ComSetting+','+cmbbxCheckBit.Text;
        ComSetting:=ComSetting+','+cmbbxDataNum.Text;
        ComSetting:=ComSetting+','+cmbbxStopBit.Text;
        MSComm.Settings:=ComSetting;
        MSComm.PortOpen:=True;

        //變換各個組件的狀態(tài)
        shpSerial.Brush.Color:=clRed; //指示燈變紅
        Panel1.Enabled:=False;
        btnSerial.Caption :='關閉串口';
        chckbxHexShow.Enabled:=False;
    end
    else  begin
        //關閉串口
        //變換各個組件的狀態(tài)
        MSComm.PortOpen:=False;
        shpSerial.Brush.Color:=clWhite;//指示燈變白
        Panel1.Enabled:=True;
        btnSerial.Caption :='打開串口';
        chckbxHexShow.Enabled:=True;        
    end;
end;

//設置DTR線狀態(tài)
procedure TMainForm.chckbxDTRClick(Sender: TObject);
begin
        MSComm.DTREnable :=chckbxDTR.Checked
end;

//設置RTS線狀態(tài)
procedure TMainForm.chckbxRTSClick(Sender: TObject);
begin
        MSComm.RTSEnable :=chckbxRTS.Checked
end;

//開啟定時器,定時發(fā)送數(shù)據(jù)
procedure TMainForm.chckbxTimerClick(Sender: TObject);
begin
    if chckbxTimer.Checked then
    begin
        tmrSend.Interval:=StrToInt(edtTime.Text);
        tmrSend.Enabled:=True;        
    end
    else begin
        tmrSend.Enabled:=False;
    end;
end;

//處理控件的該事件,獲取底層交換的數(shù)據(jù)和連線的狀態(tài)
procedure TMainForm.MSCommComm(Sender: TObject);
var
    i,InputLen:Integer;
    tmpInt:Integer;
    tmpvar:Variant;
    InputString,s:String;
    m, x,x1,x2,z,z1,z2,z3,z4,z5,z6,z7:string;y,y1,y2:integer;
begin
    if MSComm.CommEvent=ComEvReceive then
    begin
        InputLen:=MSComm.InBufferCount;

        //接收二進制數(shù)據(jù),轉換為十六進制顯示
        if HexShow then
        begin
          tmpvar:=MSComm.Input;
          InputString:='';
          for i:= 0 to InputLen-1 do
          begin
            tmpInt:=tmpvar[i];
            InputString:=InputString+''+LowerCase(IntToHex(tmpInt,2));
          end;
        end
        //直接接收字符
        else begin
            InputString:=MSComm.Input;
        end;
        MainForm.mmReceive.Text :=MainForm.mmReceive.Text+inputstring;

          s:=mainform.mmReceive.Text;


       if length(s) >1  then  m:=copy(s,1,18);
        x1:=copy( m,2,1); x2:=copy(m,3,1);
       trystrtoint(x1,y1); trystrtoint(x2,y2);
y:=y1*16+y2;
z:=chr(y);
         x1:=copy( m,4,1); x2:=copy(m,5,1);
       trystrtoint(x1,y1); trystrtoint(x2,y2);
y:=y1*16+y2;
z1:=chr(y);
          x1:=copy( m,6,1); x2:=copy(m,7,1);
       trystrtoint(x1,y1); trystrtoint(x2,y2);
y:=y1*16+y2;
z2:=chr(y);
          x1:=copy( m,8,1); x2:=copy(m,9,1);
       trystrtoint(x1,y1); trystrtoint(x2,y2);
y:=y1*16+y2;
z3:=chr(y);
          x1:=copy( m,10,1); x2:=copy(m,11,1);
       trystrtoint(x1,y1); trystrtoint(x2,y2);
y:=y1*16+y2;
z4:=chr(y);
         x1:=copy( m,12,1); x2:=copy(m,13,1);
       trystrtoint(x1,y1); trystrtoint(x2,y2);
y:=y1*16+y2;
z5:=chr(y);
          x1:=copy( m,14,1); x2:=copy(m,15,1);
       trystrtoint(x1,y1); trystrtoint(x2,y2);
y:=y1*16+y2;
z6:=chr(y);
          x1:=copy( m,16,1); x2:=copy(m,17,1);
       trystrtoint(x1,y1); trystrtoint(x2,y2);
y:=y1*16+y2;
z7:=chr(y);
      memo1.text:=z+z1+z2+z3+z4+z5+z6+z7;
  end
    //顯示CD線的狀態(tài)
    else if MSComm.CommEvent=ComEvCD then
    begin
        if MSComm.CDHolding then
            shpCD.Brush.Color:=clRed
        else
            shpCD.Brush.Color:=clWhite;
    end
    //顯示CTS線的狀態(tài)
    else if MSComm.CommEvent=ComEvCTS then
    begin
        if MSComm.CTSHolding then
            shpCTS.Brush.Color:=clRed
        else
            shpCTS.Brush.Color:=clWhite;
    end
    //顯示DSR線的狀態(tài)
    else if MSComm.CommEvent=ComEvDSR then
    begin
        if MSComm.DSRHolding then
            shpDSR.Brush.Color:=clRed
        else
            shpDSR.Brush.Color:=clWhite;
    end;
end;

//設置MSComm控件的數(shù)據(jù)接收的方式
procedure TMainForm.chckbxHexShowClick(Sender: TObject);
begin
    if chckbxHexShow.Checked then
    begin
        MSComm.InputMode:=1;
        HexShow:=True;
    end
    else begin
        MSComm.InputMode:=0;
        HexShow:=False;
    end;
end;

//設置參數(shù)HexSend的值,以告訴程序如何發(fā)送數(shù)據(jù)
procedure TMainForm.chckbxHexSendClick(Sender: TObject);
begin
    HexSend:=chckbxHexSend.Checked;
end;


//發(fā)送數(shù)據(jù)
procedure TMainForm.btnSendClick(Sender: TObject);
var
    Len:Integer;
    i,count,tmpInt:Integer;
    tmpVar:Variant;
    tmpStr,Output:String;

begin
    if not MSComm.PortOpen then
    begin
        showmessage('沒有打開串口!');
        Exit;
    end
    else begin
        //發(fā)送二進制數(shù),需要使用Variant變量矩陣,矩陣大小自動調(diào)節(jié)
        if HexSend then
        begin
            Output:=mmSend.Text;
            Len:=Length(Output);
            if Len>0 then
            begin
               i:=1;
               count:=1;
               //創(chuàng)建一個Variant數(shù)組
               tmpVar:=VarArrayCreate([1,1],varByte);
               while(i<Len) do
               begin
                  //每3個字符串中截取2個字符,轉換為16進制
                  tmpStr:=Copy(Output,i,2);
                  tmpStr:=LowerCase(tmpStr);
                  tmpInt:=HexToInt(tmpStr);
                  if tmpInt=-1 then
                  begin
                      showmessage('發(fā)送的數(shù)據(jù)格式有問題!');
                      exit;
                  end
                  else begin
                      tmpVar[Count]:=tmpInt;
                      Inc(count);
                     //增大Variant數(shù)組
                      VarArrayRedim(tmpVar,count);
                  end;
                  i:=i+3;
               end;
               MSComm.Output :=tmpVar;
            end;
        end
        else begin
            MSComm.Output :=mmSend.Text;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区视频在线播放| 精品久久久久久久久久久久包黑料 | 欧美亚洲另类激情小说| 亚洲精选免费视频| 欧美三级视频在线观看| 免费在线观看一区| 久久只精品国产| 成人美女视频在线看| 亚洲激情五月婷婷| 3d成人h动漫网站入口| 黑人巨大精品欧美一区| 欧美激情综合在线| 欧美亚洲国产一区二区三区| 日韩综合小视频| 亚洲精品一区二区三区蜜桃下载| 国产成人免费视频精品含羞草妖精 | 在线精品视频一区二区三四| 日韩精品五月天| 久久精品一级爱片| 色哟哟在线观看一区二区三区| 天堂久久一区二区三区| 久久亚洲综合色一区二区三区 | 久久国产日韩欧美精品| 日本一区二区成人| 欧美日本一道本| 国产成+人+日韩+欧美+亚洲| 一区二区三区中文免费| 欧美一级淫片007| 成人黄色777网| 免费欧美在线视频| 日韩毛片精品高清免费| 精品久久99ma| 91啪在线观看| 国产一区二区成人久久免费影院| 一区二区免费视频| 久久老女人爱爱| 欧美日韩亚洲综合一区| 成人久久久精品乱码一区二区三区| 亚洲成人手机在线| 国产精品久久久久影院色老大| 在线综合视频播放| 91视视频在线观看入口直接观看www| 蜜乳av一区二区| 一区二区三区不卡在线观看 | 欧美日韩精品福利| 成人99免费视频| 激情综合亚洲精品| 日韩在线一区二区| 一区二区三区日本| 国产精品毛片大码女人| 久久综合一区二区| 日韩一区二区视频| 欧美日韩精品专区| 91久久一区二区| 成人av动漫在线| 欧美视频在线不卡| caoporn国产精品| 国产在线精品视频| 美女视频黄 久久| 视频一区在线播放| 午夜精品一区二区三区免费视频 | 色哟哟国产精品免费观看| 久久www免费人成看片高清| 天堂午夜影视日韩欧美一区二区| 成人欧美一区二区三区1314| 欧美经典一区二区三区| 久久久久久亚洲综合影院红桃 | 亚洲精品一区在线观看| 91精品国产美女浴室洗澡无遮挡| 欧美日韩一级大片网址| 欧美色精品在线视频| 欧美手机在线视频| 欧美日韩久久不卡| 在线不卡a资源高清| 欧美另类变人与禽xxxxx| 欧美精品久久天天躁| 欧美精品在线观看一区二区| 欧美另类一区二区三区| 91精品国产麻豆| 精品国产乱码久久久久久久| 久久综合一区二区| 国产女同性恋一区二区| 国产精品三级久久久久三级| 国产精品天美传媒| 亚洲天堂av老司机| 一区二区三区电影在线播| 亚洲一区在线看| 日本色综合中文字幕| 老司机精品视频导航| 国产一区二区三区免费播放| 国产成人精品在线看| 99久久99久久免费精品蜜臀| 91久久精品日日躁夜夜躁欧美| 色欧美乱欧美15图片| 制服.丝袜.亚洲.另类.中文 | 欧美日韩在线三区| 制服丝袜亚洲色图| 久久免费视频色| 国产精品灌醉下药二区| 一区二区三区精品在线观看| 日日夜夜精品免费视频| 韩国av一区二区三区| gogo大胆日本视频一区| 欧美日韩一区久久| 精品久久久久av影院| 亚洲图片激情小说| 日本大胆欧美人术艺术动态| 国产乱码精品一区二区三| 91麻豆福利精品推荐| 91精品国产91久久久久久一区二区| 久久这里只有精品6| 亚洲精品乱码久久久久久| 蜜桃一区二区三区在线| av亚洲产国偷v产偷v自拍| 91精品久久久久久久99蜜桃| 中文一区二区在线观看| 午夜精品福利在线| 成人美女视频在线观看18| 欧美日韩国产综合一区二区三区| 2021中文字幕一区亚洲| 亚洲一区在线看| 国产成人免费xxxxxxxx| 欧美福利电影网| 国产精品对白交换视频| 美女被吸乳得到大胸91| 91视频国产资源| 26uuu欧美| 亚洲sss视频在线视频| 成人app网站| 精品国产伦一区二区三区观看方式| 亚洲人吸女人奶水| 国产一区二区不卡| 欧美日韩国产另类不卡| 国产精品视频一二| 久久国产日韩欧美精品| 欧美日韩精品系列| 亚洲欧美日韩系列| 日本系列欧美系列| 欧美一级在线观看| 日韩精品一区二区三区swag| 亚洲同性同志一二三专区| 国产一区二区三区国产| 3751色影院一区二区三区| 亚洲欧美经典视频| 高清成人在线观看| 精品久久久久久综合日本欧美| 日日夜夜精品视频天天综合网| 一本在线高清不卡dvd| 国产精品久久久久一区二区三区 | 国产精品国产a级| 韩国在线一区二区| 91精品国产一区二区三区| 一二三四区精品视频| 成人精品视频.| 国产喂奶挤奶一区二区三区| 久久99在线观看| 91精品视频网| 视频一区中文字幕国产| 欧美日韩一区在线观看| 亚洲一区二区三区四区五区黄| 99久久精品国产一区| 欧美国产激情二区三区| 高清不卡在线观看| 国产欧美日韩久久| 国产福利一区二区三区| 国产校园另类小说区| 国产成人自拍在线| 国产午夜精品一区二区三区嫩草 | 欧美一区二区在线看| 日韩av一级片| 欧美一区二区三区四区五区| 奇米影视一区二区三区| 精品久久久影院| 狠狠久久亚洲欧美| 国产欧美日本一区二区三区| 国产69精品久久久久毛片| 国产亚洲成av人在线观看导航| 国产成人精品影院| 亚洲视频在线一区二区| 色播五月激情综合网| 亚洲成人免费观看| 一区二区三区中文字幕| 在线观看免费亚洲| 日韩国产在线观看| 久久久亚洲精品一区二区三区 | 麻豆精品在线视频| 久久夜色精品国产噜噜av| 成人污污视频在线观看| 中文字幕综合网| 欧美三区在线观看| 久久99国产精品久久99| 久久丝袜美腿综合| 91免费观看在线| 天天综合天天综合色| 精品裸体舞一区二区三区| 成人免费三级在线| 亚洲高清免费一级二级三级| 精品久久久久久久久久久院品网 | 亚洲v日本v欧美v久久精品| 欧美一区二区三区日韩|