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

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

?? gprs_interface.pas

?? delphi開發的基于 gprsd數據采集程序
?? PAS
字號:
unit Gprs_Interface;

interface

uses Windows, Classes, SysUtils, StrUtils;

type
  //record for base tag definity
  PTag = ^TTag;
  TTag = record
    WellID: Integer;   //井號標示
    DataID: Integer;   //數據項標示
    TagID : string;    //OPC標簽名稱
    Handle : DWORD;    //OPC標簽句柄
  end;

  //base class for gprs data convert
  TGPRS_Intf = class
  private
    //服務器標簽列表
    FTagList: TList;
    //服務器激活狀態
    FActive: BOOL;
  public
    constructor Create;
    destructor Destroy; override;
    //增加服務器標簽
    procedure AddTag(WellID: Integer; DataID: Integer); overload;
    procedure AddTag(WellID: Integer; DataID: Integer; tagID: string); overload;
    procedure UpdateTag(WellID: Integer; DataID: Integer; Value : Integer; dt: TDateTime);
    //激活OPC服務器,服務器只能激活一次,而且激活后的服務器不能添加標簽
    function  ActiveOPC: BOOL;
    //注冊OPC服務器
    function Reg(ExeName: string): BOOL;
    //注銷OPC服務器
    procedure Unreg(ExeName: string);
  end;
var
  GPRS_Intf: TGPRS_Intf;

implementation

const
  //const for opc state
  OPC_STATUS_RUNNING    = 1;
  OPC_STATUS_FAILED     = 2;
  OPC_STATUS_NOCONFIG   = 3;
  OPC_STATUS_SUSPENDED  = 4;
  OPC_STATUS_TEST       = 5;
  OPC_STATUS_COMM_FAULT = 6;
  OPCDrv                = 'opcdll.dll';
  SvrClsID              = '{0CC30552-F2CD-4BC9-A050-60CBC46F87E9}';
  SvrName               = 'OPC.GPRS_LHZC.1';
  SvrDesc               = 'OPC Server for GPRS';
  SvrRate               = 1000;
  //dll export procedure
  function  InitOPCSvr(pCLSID_Svr: LPCSTR; ServerRate: UINT): BOOL; stdcall;external OPCDrv;
  procedure UninitOPCSvr; stdcall;external OPCDrv;
  function  RegServer(pCLSID_Svr: LPCSTR; Name: LPCSTR; Descr: LPCSTR; ExePath: LPCSTR): BOOL; stdcall;external OPCDrv;
  function  UnregServer(pCLSID_Svr: LPCSTR; Name: LPCSTR): BOOL; stdcall;external OPCDrv;
  function  RunSvr: BOOL; stdcall;  external OPCDrv;
  function  CreateTag (Name: LPCSTR; Value: VARIANT; InitialQuality: WORD; IsWriteable: BOOL): THandle;stdcall; external OPCDrv;
  function  SetTagProperties(TagHandle: THandle; PropertyID: DWORD; Description: LPCSTR; Value: VARIANT): BOOL; stdcall;external OPCDrv;
  function  UpdateTagWithTimeStamp(TagHandle: THandle; Value: VARIANT; Quality: WORD; timestamp: FILETIME): BOOL; stdcall;external OPCDrv;
  procedure SetServerState(SvrState: Word); stdcall;external OPCDrv;

{ TGPRS_Intf }

function TGPRS_Intf.ActiveOPC: BOOL;
var
  I: Integer;
  Tag: PTag;
begin
  result:= False;
  if FActive then Exit;
  if InitOPCSvr(PChar(SvrClsID),SvrRate) then
  begin
    SetServerState(OPC_STATUS_RUNNING);
    for I:=0 to FTagList.Count-1 do
    begin
      Tag:= PTag(FTagList[I]);
      if Tag.Handle=0 then
      begin
        Tag^.Handle:= CreateTag(PChar(Tag^.TagID),0,192,false);
        if Tag^.Handle>0 then
          SetTagProperties(Tag^.Handle,1,'Datatype',4);
      end;
    end;
    RunSvr;
    FActive:= true;
  end;
end;

procedure TGPRS_Intf.AddTag(WellID: Integer; DataID: Integer);
var
  Tag: PTag;
begin
  if FActive then Exit;

  try
    New(Tag);
    Tag^.WellID:= WellID;
    Tag^.DataID:= DataID;
    Tag^.TagID:= Format('W%d.DATA%d',[WellID,DataID]);
    FTagList.Add(Tag);
  except
  end;
end;

procedure TGPRS_Intf.AddTag(WellID, DataID: Integer; tagID: string);
var
  Tag: PTag;
begin
  if FActive then Exit;

  try
    New(Tag);
    Tag^.WellID:= WellID;
    Tag^.DataID:= DataID;
    Tag^.TagID:= TagID;
    FTagList.Add(Tag);
  except
  end;
end;

constructor TGPRS_Intf.Create;
begin
  Inherited Create;
  FTagList:= TList.Create;
end;

destructor TGPRS_Intf.Destroy;
var
  I: Integer;
begin
  for I:=0 to FTagList.Count-1 do
    Dispose(PTag(FTagList[I]));
  FTagList.Free;
  if FActive then
    UninitOPCSvr;
  inherited;
end;

function TGPRS_Intf.Reg(ExeName: string): BOOL;
begin
  RegServer(PChar(SvrClsID),PChar(SvrName), PChar(SvrDesc),PChar(ExeName));
end;

procedure TGPRS_Intf.Unreg(ExeName: string);
begin
  UnregServer(PChar(SvrClsID),PChar(ExeName));
end;

procedure TGPRS_Intf.UpdateTag(WellID, DataID, Value: Integer; dt: TDateTime);
var
  I: Integer;
  Tag: PTag;
  st: TSYSTEMTIME;
  ft: TFileTime;
begin
  for I:=0 to FTagList.Count-1 do
  begin
    Tag:= PTag(FTagList[I]);
    if (Tag.WellID=WellID) and (Tag.DataID= DataID) then
    begin
      DateTimeToSystemTime(dt,st);
      SystemTimeToFileTime(st,ft);
      LocalFileTimeToFileTime(ft,ft);
      UpdateTagWithTimeStamp(Tag.Handle,Value,192,ft); //192 is quality good 
      break;
    end;
  end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美专区亚洲专区| 91在线云播放| 午夜精品久久久久久久99水蜜桃 | 激情成人午夜视频| 亚洲成va人在线观看| 亚洲一区二区精品久久av| 亚洲欧美日韩中文字幕一区二区三区| 国产农村妇女毛片精品久久麻豆 | 欧美成va人片在线观看| 日韩三级.com| 久久综合色天天久久综合图片| 欧美成人a视频| 久久免费的精品国产v∧| 亚洲精品在线电影| 国产视频911| 中文字幕亚洲成人| 亚洲在线观看免费| 美女视频第一区二区三区免费观看网站 | 一本久道中文字幕精品亚洲嫩| 色综合久久综合| 色综合 综合色| 欧美日韩成人综合在线一区二区| 在线观看视频一区二区| 欧美久久久久久久久| 欧美一三区三区四区免费在线看 | 欧美激情一区二区三区| 国产精品激情偷乱一区二区∴| 亚洲人xxxx| 日本欧美一区二区| 国产盗摄女厕一区二区三区| 99精品在线观看视频| 欧美精品一级二级| 国产精品美女久久久久高潮| 亚洲午夜久久久| 精品午夜一区二区三区在线观看| 成人激情小说乱人伦| 欧美三区在线视频| 国产欧美日韩综合精品一区二区| 一级特黄大欧美久久久| 国产做a爰片久久毛片| 在线中文字幕一区| 国产午夜精品一区二区三区嫩草 | 国产精品一区二区三区99| av在线不卡免费看| 日韩欧美专区在线| 亚洲精品第一国产综合野| 久国产精品韩国三级视频| 色www精品视频在线观看| 精品福利一区二区三区 | 欧美手机在线视频| 久久久久久97三级| 美腿丝袜在线亚洲一区| 91尤物视频在线观看| 久久先锋影音av鲁色资源| 亚洲福利一二三区| 白白色亚洲国产精品| 欧美xxxx老人做受| 日韩精品91亚洲二区在线观看| 99re这里只有精品视频首页| 亚洲精品一区在线观看| 日本在线不卡一区| 欧美制服丝袜第一页| 国产精品不卡视频| 波多野洁衣一区| 欧美激情在线一区二区三区| 免费三级欧美电影| 欧美日本在线观看| 午夜精品在线看| 欧洲一区二区三区免费视频| 1024精品合集| 不卡的av网站| 中文字幕一区二区三| 成人福利视频网站| 国产欧美精品一区二区三区四区 | 精品国内二区三区| 精品一区二区久久久| 欧美一级片免费看| 免费人成网站在线观看欧美高清| 欧美日韩黄色一区二区| 亚洲国产精品自拍| 91麻豆精品国产91久久久更新时间 | 成人黄色国产精品网站大全在线免费观看| 日韩欧美一级在线播放| 久久se这里有精品| 久久这里都是精品| 国产999精品久久| 亚洲欧洲av一区二区三区久久| 波多野结衣在线一区| 中文字幕亚洲区| 欧美亚男人的天堂| 欧美a一区二区| 国产亚洲成aⅴ人片在线观看| 国产精品一级片| 亚洲欧美国产毛片在线| 欧美日韩一区中文字幕| 麻豆成人久久精品二区三区红| 久久亚洲欧美国产精品乐播 | 99久久精品费精品国产一区二区| 一区在线观看免费| 欧美亚洲另类激情小说| 蜜臀av一区二区在线免费观看 | 亚洲在线视频一区| 91精品久久久久久蜜臀| 国产精品亚洲人在线观看| 亚洲婷婷国产精品电影人久久| 色综合久久久久久久久久久| 五月激情六月综合| 国产亚洲美州欧州综合国| 97se狠狠狠综合亚洲狠狠| 午夜电影一区二区三区| 久久精品免视看| 精品1区2区3区| 国产乱子伦一区二区三区国色天香| 欧美高清在线视频| 宅男在线国产精品| 成人av电影免费观看| 日本va欧美va精品| 日韩理论片网站| 精品福利一区二区三区免费视频| 99精品热视频| 久久99久久久久久久久久久| 亚洲精品乱码久久久久久久久 | 色妹子一区二区| 国产一区中文字幕| 视频一区二区三区入口| 欧美国产激情一区二区三区蜜月| 欧美性色综合网| 高清久久久久久| 久久精品国产一区二区三区免费看| 1区2区3区欧美| 久久久久久久免费视频了| 制服丝袜中文字幕亚洲| av在线一区二区三区| 韩国v欧美v日本v亚洲v| 天堂影院一区二区| 亚洲综合男人的天堂| 中文字幕av一区二区三区高| 欧美大片日本大片免费观看| 欧美三级日韩三级| 色综合咪咪久久| 97se狠狠狠综合亚洲狠狠| 国产精品夜夜嗨| 久久国产精品72免费观看| 日韩二区在线观看| 亚洲二区在线视频| 一区二区久久久| 一二三四区精品视频| 亚洲日本一区二区| 亚洲精品视频一区| 亚洲精品成人a在线观看| 中文字幕在线观看不卡视频| 亚洲国产精品成人综合色在线婷婷| 精品奇米国产一区二区三区| 日韩精品中文字幕一区| 日韩精品一区国产麻豆| 日韩欧美资源站| 欧美va亚洲va香蕉在线| 欧美一级理论片| 精品国产百合女同互慰| 久久老女人爱爱| 亚洲国产精品99久久久久久久久 | 中文字幕一区在线观看视频| 中文字幕精品一区二区精品绿巨人| 国产偷v国产偷v亚洲高清| 国产欧美视频在线观看| 中文字幕中文字幕中文字幕亚洲无线| 国产精品不卡在线| 一区二区三区在线影院| 午夜精品123| 久草这里只有精品视频| 国产成人精品一区二区三区四区 | 色婷婷av一区二区三区大白胸| 色成年激情久久综合| 欧美日韩二区三区| 欧美xxxxxxxx| 国产精品久久久久久久久快鸭| 亚洲三级免费电影| 日韩精品一区第一页| 国产一区二区福利视频| 99免费精品视频| 欧美日韩精品一区二区三区四区| 欧美成人精品二区三区99精品| 久久久久久久久久看片| 亚洲天堂福利av| 毛片av中文字幕一区二区| 国产99久久久久| 欧美日韩性生活| 国产日韩成人精品| 亚洲国产日韩在线一区模特| 国产一区二区视频在线| 色综合天天视频在线观看| 欧美v亚洲v综合ⅴ国产v| 亚洲女同女同女同女同女同69| 天天综合天天综合色| 99久久精品一区| 欧美一二三区精品| 一区二区三区四区在线| 久久国产精品72免费观看| 91久久精品一区二区| 精品久久久久久久久久久久久久久 |