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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? include.pas

?? 一個DELPHI 云臺控制動態(tài)庫
?? PAS
字號:
unit include;

interface
uses data_def,types,windows,SysUtils;

type

    pelco_d = class
    private
       function getMessage(address,data1,data2,data3,data4 : byte) : pdata;
       function setCamera(address,value : byte) : pdata;
       function autoScan(address,value : byte) : pdata;
       function setIris(address,value : byte) : pdata;
       function setFocus(address,value : byte) : pdata;
       function setAngle(address,value : byte) : pdata;
       function moveLeft(address,value : byte) : pdata;
       function moveRight(address,value : byte) : pdata;
       function moveUp(address,value : byte) : pdata;
       function moveDown(address,value : byte) : pdata;
       function ClearAction(address,value : byte) : pdata;
    public
      function run_command(address,cmdNo,value : byte) : pdata;
    end;

    function YT_Open(AComNo : Integer; ComSpeed : DWORD) : Boolean;
    function YT_Command(AAddress , ACmdNo , AParam: byte) : Boolean;
    function YT_Close() : Boolean;

implementation
var
	m_hCom :THANDLE;//
    //m_Buffer : array [0..500] of char;
   // m_BufferUsedSize : Integer;
    
function YT_Open(AComNo : Integer; ComSpeed :DWORD) : Boolean;
var
    COMMTIMEOUTS : TCommTimeouts;
    dcb : TDCB;
    ComNo : String;
begin
    Result := False;
    try
      YT_Close();
      ComNo := 'COM' + IntToStr(AComNo);
      m_hCom := CreateFile( PChar(ComNo),
                       GENERIC_READ or GENERIC_WRITE,
                       0,    // comm devices must be opened w/exclusive-access
                       nil, // no security attributes
                       OPEN_EXISTING, // comm devices must use OPEN_EXISTING
                       FILE_ATTRIBUTE_NORMAL,    //0 not overlapped I/O
                       //FILE_FLAG_OVERLAPPED,
                       0  // hTemplate must be NULL for comm devices
                       );
      if(m_hCom = INVALID_HANDLE_VALUE) then
      begin
        Exit;
      end;

      GetCommTimeouts(m_hCom,CommTimeOuts);
      ZeroMemory(@CommTimeOuts,sizeof(TCommTimeouts));
      CommTimeOuts.ReadIntervalTimeout := $ffffffff;   //200毫秒
      CommTimeOuts.WriteTotalTimeoutConstant := $1388;
      SetCommTimeouts(m_hCom,CommTimeOuts);
      GetCommState(m_hCom, dcb);
      ZeroMemory(@dcb,sizeof(TDCB));
      dcb.DCBlength := sizeof(TDCB);
      dcb.BaudRate := ComSpeed;     // set the baud rate
      dcb.ByteSize := 8;             // data size, xmit, and rcv
      dcb.Parity := NOPARITY;        // no parity bit
      dcb.StopBits := ONESTOPBIT;    // one stop bit
      dcb.XonLim := 2048;
      dcb.XoffLim := 512;
      dcb.XonChar := Char(17);
      dcb.XoffChar := Char(19);
      dcb.EofChar := Char(26);
      SetCommState(m_hCom, dcb);

      Result := True;
    except
      Result := False;
    end;
end;

function YT_Command(AAddress , ACmdNo , AParam: byte) : Boolean;
var
    command : pelco_d ;
    bWriteFile : Boolean;
    writtenLen : Cardinal	;
begin
    command := pelco_d.Create ;
    result := False;
    try
        try
          command.run_command(AAddress,ACmdNo,AParam);
          bWriteFile := WriteFile(m_hCom, data_Buffer, Length(data_Buffer) + 1, writtenLen, 0);
        except
          result := False;
          exit;
        end;

        result := bWriteFile

    finally
      command.Free;
    end;
end;

function YT_Close() : Boolean;
begin
  result := False;
  try
    if(INVALID_HANDLE_VALUE <> m_hCom) then
    begin
      CloseHandle(m_hCom);
      m_hCom := INVALID_HANDLE_VALUE;
    end;
    result := True;
  except
    result := False;
  end;
    //ZeroMemory(@m_Buffer,sizeof(m_Buffer));
   // m_BufferUsedSize :=0;
end;

function pelco_d.autoScan(address,value: byte): pdata;
begin
    if value = $00 then
    result := clearAction(address,value )
    else if value = $01 then
    result := getMessage(address,AutoscanOn,Zero,Zero,Zero);
end;

function pelco_d.ClearAction(address, value: byte): pdata;
begin
    result := getMessage(address,Zero,Zero,Zero,Zero);
end;

function pelco_d.getMessage(address, data1, data2, data3,
  data4: byte): pdata;
var
    checkSum : byte;
begin
    if (address < $00 ) or (address > $1F) then
    raise Exception.Create('Protocol Pelco P support 32 devices only');
    checkSum := (address + data1 + data2 + data3 + data4) mod 256;
    data_Buffer[0] := STX;
    data_Buffer[1] := address;
    data_Buffer[2] := data1;
    data_Buffer[3] := data2;
    data_Buffer[4] := data3;
    data_Buffer[5] := data4;
    data_Buffer[6] := checkSum;
    //data_Buffer[7] := checkSum;
    result := True;
end;

function pelco_d.moveDown(address, value: byte): pdata;
begin
    if ( value > TiltSpeedMin ) and ( value <= TiltSpeedMax) then
    result := getMessage(address,Zero,TiltDown,Zero,value)
    else if value = 0 then
    result := clearAction(address,value )
    else
    raise Exception.Create('Speed beyond Support');
end;

function pelco_d.moveLeft(address, value: byte): pdata;
begin
    if (( value > PanSpeedMin ) and ( value <= PanSpeedMax)) or ( value = PanSpeedMost)then
    result := getMessage(address,Zero,PanLeft,value,Zero)
    else if value = 0 then
    result := clearAction(address,value )
    else
    raise Exception.Create('Speed beyond Support');
end;

function pelco_d.moveRight(address, value: byte): pdata;
begin
    if (( value > PanSpeedMin ) and ( value <= PanSpeedMax)) or ( value = PanSpeedMost)then
    result := getMessage(address,Zero,PanRight,value,Zero)
    else if value = 0 then
    result := clearAction(address,value )
    else
    raise Exception.Create('Speed beyond Support');
end;

function pelco_d.moveUp(address, value: byte): pdata;
begin
    if ( value > TiltSpeedMin ) and ( value <= TiltSpeedMax) then
    result := getMessage(address,Zero,TiltUp,Zero,value)
    else if value = 0 then
    result := clearAction(address,value )
    else
    raise Exception.Create('Speed beyond Support');
end;

function pelco_d.run_command(address, cmdNo, value : byte): pdata;
begin
    case cmdNo of
    1 : setCamera(address,value);
    2 : autoScan(address,value) ;
    3 : setIris(address,value ) ;
    11 : setFocus(address,value);
    12 : setAngle(address,value) ;
    21 : moveLeft(address,value ) ;
    22 : moveRight(address,value) ;
    23 : moveUp(address,value) ;
    24 : moveDown(address,value ) ;
    0 : clearAction(address,value ) ;
    end
end;

function pelco_d.setAngle(address, value: byte): pdata;
begin
  if value = $00 then
    result := getMessage(address,Zero,ZoomTele,Zero,Zero)
  else if value = $01 then
    result := getMessage(address,Zero,ZoomWide,Zero,Zero);
end;

function pelco_d.setCamera(address, value: byte): pdata;
begin
  if value = $00 then
    result := getMessage(address,CameraOff,Zero,Zero,Zero)
  else if value = $01 then
    result := getMessage(address,CameraOn,Zero,Zero,Zero);
end;

function pelco_d.setFocus(address, value: byte): pdata;
begin
  if value = $00 then
    result := getMessage(address,FocusNear+$10,Zero,Zero,Zero)
  else if value = $01 then
    result := getMessage(address,Zero+$10,FocusFar,Zero,Zero);
end;

function pelco_d.setIris(address, value: byte): pdata;
begin
  if value = $00 then
    result := getMessage(address,IrisClose,Zero,Zero,Zero)
  else if value = $01 then
    result := getMessage(address,IrisOpen,Zero,Zero,Zero);
end;

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品在线观看播放| 91日韩精品一区| 日韩精品一区二区三区中文不卡 | 麻豆精品视频在线| 日韩一区二区三区四区| 久久精品国产亚洲aⅴ| 26uuu亚洲综合色| 成人午夜精品一区二区三区| 国产精品成人网| 在线观看视频欧美| 久久成人免费日本黄色| 久久午夜免费电影| 色乱码一区二区三区88| 午夜精品成人在线视频| 在线综合+亚洲+欧美中文字幕| 日本不卡1234视频| 国产精品污www在线观看| 色狠狠色狠狠综合| 黄色日韩三级电影| 亚洲精品写真福利| 欧美xxxxx牲另类人与| 国产成人a级片| 亚洲五月六月丁香激情| 精品国产百合女同互慰| 99精品偷自拍| 免费成人av在线| 国产精品久线在线观看| 欧美精品日日鲁夜夜添| 精品一区二区三区视频在线观看| 国产精品色婷婷久久58| 欧美日韩激情一区二区三区| 国产精品911| 亚欧色一区w666天堂| 国产精品无遮挡| 欧美一级欧美三级| 色综合色综合色综合| 狠狠色丁香婷综合久久| 亚洲第一综合色| 中文字幕日韩av资源站| 精品久久久久一区| 欧美亚洲免费在线一区| 国产成人8x视频一区二区| 男女男精品视频| 亚洲精品你懂的| 久久久久88色偷偷免费| 欧美一区二区三区免费视频 | 久久综合久久99| 欧美日本一区二区三区| 99久久精品99国产精品| 精品一区二区三区香蕉蜜桃| 亚洲一卡二卡三卡四卡无卡久久 | 国产呦萝稀缺另类资源| 亚洲bdsm女犯bdsm网站| 亚洲欧美色图小说| 国产精品国产精品国产专区不片| 欧美电影免费观看完整版| 欧美男人的天堂一二区| 91美女片黄在线观看91美女| 国产传媒欧美日韩成人| 国产一区二区福利视频| 美日韩一区二区| 偷拍与自拍一区| 天天做天天摸天天爽国产一区| 亚洲男人的天堂在线aⅴ视频| 久久精品无码一区二区三区| 欧美大片在线观看| 这里只有精品视频在线观看| 欧美在线不卡一区| 欧美视频一二三区| 欧美视频在线不卡| 欧美色涩在线第一页| 色吧成人激情小说| 日本精品视频一区二区三区| 色狠狠av一区二区三区| 在线观看免费一区| 欧美日韩在线观看一区二区| 欧美日韩精品欧美日韩精品一| 欧美无砖专区一中文字| 欧美日韩五月天| 欧美日韩在线播放一区| 欧美精品vⅰdeose4hd| 69精品人人人人| 欧美成人a在线| 久久色在线观看| 中文字幕欧美激情一区| 中文字幕一区免费在线观看 | 亚洲综合色自拍一区| 亚洲一区欧美一区| 亚洲成人免费视频| 免费一级片91| 国产成人精品一区二| 成人精品高清在线| 91成人国产精品| 337p亚洲精品色噜噜噜| 久久久综合网站| 日韩久久一区二区| 性做久久久久久免费观看欧美| 男女性色大片免费观看一区二区| 国产在线视频一区二区三区| 国产福利精品导航| 91色porny在线视频| 69堂成人精品免费视频| 国产午夜亚洲精品理论片色戒 | 欧美日韩黄视频| 精品国产91久久久久久久妲己| 国产欧美va欧美不卡在线| 亚洲欧美一区二区三区国产精品| 午夜精品久久久久影视| 黄色精品一二区| 在线视频国产一区| 精品久久国产字幕高潮| 亚洲桃色在线一区| 久色婷婷小香蕉久久| 91亚洲精品久久久蜜桃网站| 69精品人人人人| 中文字幕一区二区三区色视频 | jlzzjlzz欧美大全| 欧美午夜精品久久久久久孕妇| 欧美成人精品福利| 亚洲精品成人在线| 久久99国产精品麻豆| 色婷婷精品久久二区二区蜜臂av| 欧美精品乱人伦久久久久久| 国产日韩综合av| 午夜在线成人av| 不卡一卡二卡三乱码免费网站| 欧美日韩dvd在线观看| 国产精品人人做人人爽人人添| 亚洲成人一二三| av男人天堂一区| 精品国产一区二区三区久久久蜜月 | 成人国产视频在线观看| 欧美一区二区三区视频| 亚洲欧美福利一区二区| 国产九色精品成人porny| 9191久久久久久久久久久| 国产精品乱码人人做人人爱| 精品一区二区三区香蕉蜜桃| 欧美色大人视频| 亚洲精品视频一区二区| 国产91精品一区二区麻豆网站| 欧美精品久久久久久久多人混战| 国产精品久久久久aaaa樱花| 九九**精品视频免费播放| 欧美群妇大交群中文字幕| 亚洲精品成人在线| 99riav久久精品riav| 久久久国际精品| 国产综合久久久久久鬼色| 91麻豆精品国产91久久久资源速度 | 欧美高清dvd| 亚洲一区二三区| 色哟哟欧美精品| 亚洲男帅同性gay1069| www.欧美精品一二区| 日本一区二区三区四区| 国产在线看一区| 精品国产1区2区3区| 久久激情综合网| 欧美电影免费观看高清完整版在线 | 亚洲亚洲精品在线观看| 欧洲亚洲精品在线| 亚洲欧美一区二区三区国产精品| 成人国产免费视频| 亚洲国产精品99久久久久久久久| 国产精品中文欧美| 国产亚洲成aⅴ人片在线观看 | 91免费在线视频观看| 国产精品乱人伦一区二区| 成人激情免费视频| 亚洲日本乱码在线观看| 色综合久久天天| 亚洲国产乱码最新视频| 制服丝袜国产精品| 精油按摩中文字幕久久| 国产三级精品视频| 91理论电影在线观看| 亚洲午夜激情网页| 欧美一区二区在线免费观看| 日本欧美在线看| 亚洲精品一区二区在线观看| 国产麻豆精品95视频| 亚洲欧洲成人精品av97| 在线一区二区三区做爰视频网站| 性做久久久久久免费观看 | 欧美视频一区二区三区| 视频在线观看国产精品| 精品国产一区二区三区不卡| 国产精品一区二区男女羞羞无遮挡| 国产日本一区二区| 色久优优欧美色久优优| 免费一级欧美片在线观看| 国产视频在线观看一区二区三区 | 欧美一级日韩一级| 粉嫩一区二区三区性色av| 国产精品免费视频网站| 欧美影院精品一区| 国产在线播放一区二区三区| 亚洲视频精选在线| 欧美高清精品3d|