⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serveritem.pas

📁 ModLink VCL component 组件以及代码。版本是shareware edition of ModLink 2.10
💻 PAS
字号:
{*****************************************************************}
{                                                                 }
{ ModLink                                                         }
{ Copyright (C) 2002 - 2007 Ing. Ivo Bauer                        }
{ All Rights Reserved.                                            }
{                                                                 }
{ Web site: http://www.ozm.cz/ivobauer/modlink/                   }
{ E-mail:   ivo.bauer@tiscali.cz | bauer@ozm.cz                   }
{                                                                 }
{ For a detailed information regarding the distribution and use   }
{ of this software product, please refer to the License Agreement }
{ embedded in the accompanying online documentation (ModLink.chm) }
{                                                                 }
{*****************************************************************}

unit ServerItem;

{$I ModLink.inc}

interface

//--------------------------------------------------------------------------------------------------

uses
  { Delphi } Classes;

//--------------------------------------------------------------------------------------------------

type
  TItemKind = (
    ikCoil,
    ikDiscreteInput,
    ikHoldingRegister,
    ikInputRegister
  );

  PServerItem = ^TServerItem;
  TServerItem = packed record
    Addr: Word;
    Kind: TItemKind;
    Value,
    MinValue,
    MaxValue: Word;
    Writeable: Boolean;
  end;

//--------------------------------------------------------------------------------------------------

function CreateServerItem(
  aAddr: Word;
  aKind: TItemKind;
  aValue,
  aMinValue,
  aMaxValue: Word;
  aWriteable: Boolean): PServerItem;

procedure DestroyServerItem(aServerItem: PServerItem);
procedure LoadServerItem(aServerItem: PServerItem; aStream: TStream);
procedure SaveServerItem(aServerItem: PServerItem; aStream: TStream);

//--------------------------------------------------------------------------------------------------

implementation

uses
  { Windows } Windows;

//--------------------------------------------------------------------------------------------------

function CreateServerItem(
  aAddr: Word;
  aKind: TItemKind;
  aValue,
  aMinValue,
  aMaxValue: Word;
  aWriteable: Boolean): PServerItem;
begin
  New(Result);
  ZeroMemory(Result, SizeOf(TServerItem));
  with Result^ do
  begin
    Addr := aAddr;
    Kind := aKind;
    Value := aValue;
    MinValue := aMinValue;
    MaxValue := aMaxValue;
    Writeable := aWriteable;
  end;
end;

//--------------------------------------------------------------------------------------------------

procedure DestroyServerItem(aServerItem: PServerItem);
begin
  if Assigned(aServerItem) then
    Dispose(aServerItem);
end;

//--------------------------------------------------------------------------------------------------

procedure LoadServerItem(aServerItem: PServerItem; aStream: TStream);
begin
  aStream.ReadBuffer(aServerItem^, SizeOf(TServerItem));
end;

//--------------------------------------------------------------------------------------------------

procedure SaveServerItem(aServerItem: PServerItem; aStream: TStream);
begin
  aStream.WriteBuffer(aServerItem^, SizeOf(TServerItem));
end;

//--------------------------------------------------------------------------------------------------

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -