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

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

?? comport.~pas

?? This source code. simple tools for huawei CDMA platform function : read code write code read sp
?? ~PAS
字號:
unit ComPort_Zer0;

interface
uses Windows,SysUtils;

var
 ComNum      : integer = 2;
 iOldComOpen  : integer = 0;
 ComBaud     : integer = 115200;
 iOldComBaud  : integer = 0;
 hCom         : THandle=INVALID_HANDLE_VALUE;
 ComTimeouts  : TCommTimeouts;
 txLen, rxLen : Dword;
 FlgOvrlp     : boolean = True;
 COMwr : OVERLAPPED;
 COMrd : OVERLAPPED;
 COMst : COMSTAT;
 DCB          : TDCB;
{ DCB :
0      DWORD fBinary: 1;          // binary mode, no EOF check
1      DWORD fParity: 1;          // enable parity checking
2      DWORD fOutxCtsFlow:1;      // CTS output flow control
3      DWORD fOutxDsrFlow:1;      // DSR output flow control
4..5   DWORD fDtrControl:2;       // DTR flow control type
6      DWORD fDsrSensitivity:1;   // DSR sensitivity
7      DWORD fTXContinueOnXoff:1; // XOFF continues Tx
8      DWORD fOutX: 1;            // XON/XOFF out flow control
9      DWORD fInX: 1;             // XON/XOFF in flow control
10     DWORD fErrorChar: 1;       // enable error replacement
11     DWORD fNull: 1;            // enable null stripping
12..13 DWORD fRtsControl:2;       // RTS flow control
14     DWORD fAbortOnError:1;     // abort reads/writes on error
15..31 DWORD fDummy2:17;          // reserved}

function OpenCom(Mode:boolean) : integer;
procedure CloseCom;
function  GetComDCB : boolean;
function  SetComDCB : boolean;
function  GetComTimeouts : boolean;
function  SetComTimeouts : boolean;
function  SetComRxTimeouts(NewIntervalTimeout,NewTimeoutMultiplier,NewTimeoutConstant:dword) : boolean;
function  ReadCom(Buf:Pointer; BufLen:Dword) : boolean;
function  WriteCom(Buf:Pointer; BufLen:Dword) : boolean;
function  EscapeComFunction(dwFunc:Dword) : boolean;
//function  GetComModemStatus(lpModemStat: Pointer):boolean;
function GetComModemStatus : DWORD;
function  GetComStat : boolean;
function  PurgeCom(mode:Dword): boolean; // PURGE_TXCLEAR or PURGE_RXCLEAR
function  WriteComStr(S: String): boolean;
function  ChangeComSpeed(Baud:integer) : boolean;
procedure ComClearBuffer(rx_buffer,tx_buffer: boolean);

implementation

procedure ComClearBuffer(rx_buffer,tx_buffer: boolean);
begin
  if rx_buffer then PurgeCom(PURGE_RXCLEAR);
  if tx_buffer then PurgeCom(PURGE_TXCLEAR);
end;

function OpenCom(Mode:boolean) : integer;
var
dw : dword;
begin
 result:=66;
  if hCom<>INVALID_HANDLE_VALUE then CloseCom;
  if FlgOvrlp then dw:=FILE_FLAG_OVERLAPPED
  else dw:=FILE_ATTRIBUTE_NORMAL;
  hCom:=CreateFile(PChar('\\?\COM'+IntToStr(ComNum)),GENERIC_READ or GENERIC_WRITE,0,nil,OPEN_EXISTING,dw,0);
  if hCom<>INVALID_HANDLE_VALUE then begin
   SetupComm(hCom,$20000,$20000); //8192, 8192); // Rd , Wr
   if GetComDCB then begin
    if Mode then DCB.Flags := (DCB.Flags and $ffff8000) or $0001
    else DCB.Flags := (DCB.Flags and $ffff8000) or $0011;   //$1011;
    DCB.ByteSize := 8;
    DCB.Parity := 0;
    DCB.StopBits := 0;
    DCB.BaudRate := ComBaud;
    if SetComDCB then begin
     ComTimeouts.ReadIntervalTimeout:=20; //0
     ComTimeouts.ReadTotalTimeoutMultiplier:=1; //0
     ComTimeouts.ReadTotalTimeoutConstant:=200; //200
     ComTimeouts.WriteTotalTimeoutMultiplier:=0;//MAXDWORD;
     ComTimeouts.WriteTotalTimeoutConstant:=0;//MAXDWORD;
     if SetComTimeouts then begin
      iOldComOpen:=ComNum;
      iOldComBaud:=ComBaud;
      if Mode then begin
       sleep(75);
       EscapeComFunction(SETRTS);
       sleep(25);
       EscapeComFunction(SETDTR);
      end
      else begin
       EscapeComFunction(SETDTR);
       EscapeComFunction(SETRTS);
      end;
      result := 0;
     end;
    end;
   end;
  end;
end;

procedure CloseCom;
var
x: THandle;
begin
 if hCom<>INVALID_HANDLE_VALUE then begin
  x:=hCom;
  hCom:=INVALID_HANDLE_VALUE;
  CloseHandle(x);
 end;
 iOldComOpen:=0;
end;

function GetComDCB : boolean;
begin
 result := FALSE;
 if hCom<>INVALID_HANDLE_VALUE then
  result := GetCommState(hCom,DCB);
end;

function SetComDCB : boolean;
begin
 result:=FALSE;
 if hCom<>INVALID_HANDLE_VALUE then
  result := SetCommState(hCom,DCB);
end;

function ChangeComSpeed(Baud:integer) : boolean;
var
save_baud : integer;
begin
 result:=FALSE;
 save_baud:=dcb.BaudRate;
 if hCom<>INVALID_HANDLE_VALUE then begin
  if GetComDCB then begin
   if dcb.BaudRate<>Dword(Baud) then begin
    dcb.BaudRate:=Baud;
    result := SetCommState(hCom,DCB);
    EscapeComFunction(SETRTS);
    EscapeComFunction(SETDTR);
    if not result then begin
     dcb.BaudRate:=save_baud;
     SetCommState(hCom,DCB);
     EscapeComFunction(SETRTS);
     EscapeComFunction(SETDTR);
    end;
   end;
  end;
 end;
end;

function GetComTimeouts : boolean;
begin
 result:=FALSE;
 if hCom<>INVALID_HANDLE_VALUE then
  result := GetCommTimeouts(hCom,ComTimeouts);
end;

function SetComTimeouts : boolean;
begin
 result:=FALSE;
 if hCom<>INVALID_HANDLE_VALUE then
  if SetCommTimeouts(hCom,ComTimeouts) then result:=TRUE;
end;

function SetComRxTimeouts(NewIntervalTimeout,NewTimeoutMultiplier,NewTimeoutConstant:dword) : boolean;
begin
 result:=FALSE;
 if (ComTimeouts.ReadIntervalTimeout<>NewIntervalTimeout)
 or (ComTimeouts.ReadTotalTimeoutMultiplier<>NewTimeoutMultiplier)
 or (ComTimeouts.ReadTotalTimeoutConstant<>NewTimeoutConstant)
 then begin
  ComTimeouts.ReadIntervalTimeout:=NewIntervalTimeout;
  ComTimeouts.ReadTotalTimeoutMultiplier:=NewTimeoutMultiplier;
  ComTimeouts.ReadTotalTimeoutConstant:=NewTimeoutConstant;
  if hCom<>INVALID_HANDLE_VALUE then
   if SetCommTimeouts(hCom,ComTimeouts) then result:=TRUE;
 end
 else result:=TRUE;
end;

function  GetComStat : boolean;
var
  dErr : DWORD;
begin
 result:=FALSE;
 dErr := 0;
 if hCom<>INVALID_HANDLE_VALUE
  then
    begin
      if ClearCommError(hCom,dErr,@COMst)
        then
          begin
           Result := True;
          end;
    end;
end;

function ReadCom(Buf:Pointer; BufLen :Dword) : boolean;
var
 dErr: Dword;
begin
 result := False;
 if (hCom<>INVALID_HANDLE_VALUE)and(Buf<>Nil)and(BufLen<>0) then begin
  rxlen:=0;
  if FlgOvrlp then begin
   COMrd.hEvent:=CreateEvent(Nil,TRUE,FALSE,Nil);
   if not ReadFile(hCom,Buf^,BufLen,rxLen,@COMrd) then begin
    if not GetOverlappedResult(hCom,COMrd,rxLen,True) then begin
    end;
   end;
   CloseHandle(COMrd.hEvent);
  end
  else begin
   if not ReadFile(hCom,Buf^,BufLen,rxLen,Nil) then begin
   end;
  end;
  if rxLen = BufLen then result := True
  else ClearCommError(hCom,dErr,Nil);
 end;
end;

function WriteCom(Buf:Pointer; BufLen:Dword) : boolean;
Var
 dErr: Dword;
begin
 result:=FALSE;
 if (hCom<>INVALID_HANDLE_VALUE)and(Buf<>Nil)and(BufLen<>0)
  then
    begin
      txLen:=0;
      if FlgOvrlp
        then
          begin
            COMwr.hEvent:=CreateEvent(Nil,TRUE,FALSE,Nil);
            if not WriteFile(hCom,Buf^,BufLen,txLen,@COMwr)
              then
                  if not GetOverlappedResult(hCom,COMwr,txLen,True)
                    then
                      begin
                      end;
            CloseHandle(COMwr.hEvent);
          end
        else
          begin
            if not WriteFile(hCom,Buf^,BufLen,txLen,Nil)
              then
                begin
                end;
          end;
      if txLen = BufLen
        then result:=TRUE
        else ClearCommError(hCom,dErr,Nil);
    end;
end;

function WriteComStr(S: String): boolean;
begin
  Result:=WriteCom(@S[1],Length(S));
end;

function PurgeCom(mode:Dword): boolean; //function
begin
 result := PurgeComm(hCom,mode);
end;

function EscapeComFunction(dwFunc:Dword):boolean;
begin
 result:=FALSE;
 if hCom<>INVALID_HANDLE_VALUE then
  result := EscapeCommFunction(hCom,dwFunc);
end;

function GetComModemStatus : DWORD;
var
   dwModemState : DWORD;
begin
  if hCom<>INVALID_HANDLE_VALUE then
     if not GetCommModemStatus( hCom, dwModemState ) then
        Result := 0
     else
        Result := dwModemState
end;


end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一二三四在线观看| 亚洲电影一区二区| 在线91免费看| 欧美日韩在线一区二区| 色哟哟亚洲精品| 欧美在线三级电影| 欧美三级欧美一级| 7777精品伊人久久久大香线蕉经典版下载| 日本乱人伦aⅴ精品| 欧美性做爰猛烈叫床潮| 欧美一区二区三区电影| 日韩免费电影一区| 精品成人一区二区| 日本一区二区综合亚洲| 《视频一区视频二区| 夜夜揉揉日日人人青青一国产精品| 亚洲伊人色欲综合网| 亚洲福利视频三区| 狠狠色丁香婷婷综合久久片| 国产精品一区在线观看乱码 | 欧美亚洲国产bt| 欧美午夜精品一区二区三区| 这里只有精品电影| 久久婷婷成人综合色| 成人免费在线视频| 日日摸夜夜添夜夜添国产精品| 韩国精品主播一区二区在线观看 | 91视频www| 欧美视频第二页| 久久午夜色播影院免费高清| 亚洲欧美激情在线| 精品一区二区三区香蕉蜜桃| www.亚洲精品| 日韩视频永久免费| 国产精品久99| 经典一区二区三区| 欧美影院一区二区三区| 久久精品日产第一区二区三区高清版 | 国产精品私人影院| 日韩国产欧美在线播放| caoporn国产一区二区| 欧美一区二区三区在| 中文字幕在线免费不卡| 麻豆国产精品777777在线| 99久久免费视频.com| 日韩免费观看2025年上映的电影 | 久久精品国产亚洲一区二区三区 | 在线播放日韩导航| 欧美高清一级片在线观看| 视频在线观看一区| 91亚洲大成网污www| 久久亚洲欧美国产精品乐播| 午夜精品久久久久久久久| 99re视频这里只有精品| 久久亚洲精品国产精品紫薇| 日韩高清一级片| 欧美亚洲精品一区| 亚洲精选一二三| 成人永久看片免费视频天堂| 精品成人a区在线观看| 欧美aⅴ一区二区三区视频| 欧美日韩一本到| 一级日本不卡的影视| 91原创在线视频| 国产精品久久毛片av大全日韩| 国产一区高清在线| 精品美女一区二区| 另类成人小视频在线| 欧美一区二区在线看| 日韩中文字幕不卡| 欧美日韩国产美| 三级不卡在线观看| 91超碰这里只有精品国产| 丝袜美腿亚洲色图| 91精品国产综合久久精品 | 日韩高清在线电影| 91精品国产色综合久久ai换脸| 亚洲综合男人的天堂| 欧美系列日韩一区| 日韩高清欧美激情| 欧美videos大乳护士334| 国产一区二区三区四区五区美女| 久久综合色鬼综合色| 国产精品白丝jk白祙喷水网站| 国产亚洲一二三区| 成人av免费在线| 亚洲一区二区成人在线观看| 欧美精品久久99久久在免费线| 五月天激情综合| 精品粉嫩超白一线天av| 国产成人午夜精品5599 | 色婷婷综合久久久| 亚洲午夜免费福利视频| 欧美精品在线视频| 激情小说欧美图片| 国产精品久久久久aaaa| 91福利在线播放| 伦理电影国产精品| 欧美极品aⅴ影院| 欧美亚男人的天堂| 国产在线观看免费一区| 亚洲美女免费视频| 日韩一区二区在线播放| 成人永久免费视频| 午夜精品久久久久久久| 久久久精品免费观看| 99re66热这里只有精品3直播| 亚洲成人精品一区| 国产欧美一区二区精品久导航| 色视频成人在线观看免| 久久99九九99精品| 亚洲在线观看免费视频| 久久蜜桃一区二区| 欧美喷水一区二区| av电影在线观看完整版一区二区 | 欧美成人精品高清在线播放| 成人晚上爱看视频| 欧美aⅴ一区二区三区视频| 亚洲色欲色欲www| 欧美tickling网站挠脚心| 91久久一区二区| 成人午夜看片网址| 国产在线国偷精品免费看| 亚洲成人自拍一区| 国产精品麻豆欧美日韩ww| 日韩免费视频线观看| 欧美日韩你懂的| 99久久精品国产网站| 狠狠色综合日日| 免费观看久久久4p| 亚洲图片欧美视频| 亚洲免费av在线| 中文字幕在线一区二区三区| 精品国产一区二区三区av性色| 欧美日韩一区视频| 日本道精品一区二区三区| 色综合天天做天天爱| 高清久久久久久| 国产成人在线观看| 国产福利电影一区二区三区| 免费久久99精品国产| 日韩高清电影一区| 日本麻豆一区二区三区视频| 香蕉久久夜色精品国产使用方法 | 精品国产91亚洲一区二区三区婷婷| 欧美日韩在线播放一区| 欧美亚男人的天堂| 欧美在线制服丝袜| 欧美日韩亚洲综合| 欧美日韩在线观看一区二区 | 婷婷丁香久久五月婷婷| 一区二区三区产品免费精品久久75 | 欧美一级日韩不卡播放免费| 欧美日韩午夜影院| 欧美色男人天堂| 欧美精品一二三区| 69久久夜色精品国产69蝌蚪网| 在线欧美小视频| 欧美福利视频导航| 精品久久国产字幕高潮| 久久久久久免费网| 综合中文字幕亚洲| 亚洲国产一区二区三区| 日本91福利区| 国产麻豆精品在线| 北条麻妃国产九九精品视频| 色婷婷一区二区| 91精品国产日韩91久久久久久| 久久尤物电影视频在线观看| 中文av字幕一区| 亚洲午夜久久久久久久久电影网 | 制服.丝袜.亚洲.另类.中文| 精品免费日韩av| 日韩一区在线看| 亚洲电影你懂得| 极品少妇xxxx精品少妇| 国产69精品久久99不卡| 91黄色免费版| 精品国产不卡一区二区三区| 中文字幕一区在线观看| 三级亚洲高清视频| 国产999精品久久| 欧美理论在线播放| 国产欧美视频一区二区| 亚洲一区二区五区| 国产在线视视频有精品| 色哟哟在线观看一区二区三区| 欧美一区二区三区精品| 国产精品高潮久久久久无| 婷婷激情综合网| 成人动漫av在线| 欧美成人性战久久| 一区二区三区波多野结衣在线观看| 另类专区欧美蜜桃臀第一页| 在线一区二区三区| 精品av久久707| 日韩中文字幕不卡| 91九色02白丝porn| 日本一区二区视频在线| 日韩av中文在线观看|