📄 serveritem.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 + -