MoBa-Package Home

TSRCPBaseDeviceGroup

Declaration

TSRCPBaseDeviceGroup = class(TComponent)

Description

Basisklasse für alle von SRCP unterstützten Gerätegruppen.

Diese Klassse implementiert das grundlegende Verhalten und Reaktion der SRCP Gerätegruppen. Es ist Implementiert wie die Kommandos in TSRCPCmd zusammengesetzt und in welcher Reihenfolge Kommandos bei Fehlermeldungen erneut gesendet werden müssen.

Für die Kommunikation auf dem Kommando-Kanal wird eine Instanz von TSRCPCommandClient benötigt. Um auf Veränderungen einer Gerätegruppe reagieren zu können, die durch einen anderen Client ausgelöst wurde, ist eine Instanz von TSRCPInfoClient notwendig.
Für alle Gerätegruppen-Objekt innerhalb eines Clients wird nur eine Instanz für den Kommando- und eine Instanz für den Info-Kanal benötigt. Die Komponenten implementieren einen Mechanismus, mit dem die richtigen Gerätegruppen bei Kommandoantworten und Info-Meldungen angesprochen werden.

Overview

Unit: SrcpClnt
Properties Methods Events
CmdSessionID GetData OnChange
Locked SetData OnInit
LockClient Lock OnTerm
TimeStamps Unlock OnLock
CommandClient Terminate OnUnlock
DeviceState Initalize
InfoClient
Bus
EventMode

Properties

read only property CmdSessionID: Integer;
SessionID des Kommando-Kanals, mit der die Gerätegruppe komuniziert.
Diese SessionID wird benötigt, um entscheiden zu können, ob eine Gerätegruppe von diesem oder einem anderen Client gesperrt wurde.
read only property Locked: Boolean;
Zeigt an, ob eine Gerätegruppe im Moment gesperrt ist.
read only property LockClient: Integer;
SessionID des Clients, der einen Lock auf die Gerätegruppe ausgeführt hat.
read write property TimeStamps[Index: TSRCPTimeStampType]: TSRCPTimeStamp;
Array mit den Timestamps für die einzelnen auf dieGerätegruppe ausgeführten Kommandos.
Es werden drei Timestamps gespeichert. Der Zeitpunkt der Initialisierung bzw. Terminierung, der Zeitpunkt einer Sperre, bzw. deren Aufhebung, der Zeitpunkt der letzten Datenänderung.
read write property CommandClient: TSRCPCommandClient;
Referenz auf die zu verwendende Kommando-Client-Komponente. Über diese Komponente werden Kommandos an den Server gesendet.
read only property DeviceState: TSRCPDeviceState;
Satusinformation der Gerätegruppe. Anhanden dieser Statusinformation kann die Komponente entscheiden, welche Kommandos zulässig sind, und welche nicht. Ebenso kann die notwendige Kommando-Reihenfolge daraus bestimmt werden.
read write property InfoClient: TSRCPInfoClient;
Referenz auf die zu verwendende Info-Client-Komponente. Über diese Komponente werden Info-Meldungen vom Server empfangen und die entsprechenden Ereignisse werden ausgelöst.
read write property Bus: Integer;
Busnummer, zu der die Gerätegruppe gehört oder gehören soll. Diese Nummer wird direkt in das SRCP-Kommando übernommen.
read write property EventMode: TSRCPEventMode;
Gibt vor, wie eine Gerätegruppekomponente auf eine Info-Meldung reagiert.
Es kann eingestellt werden, ob auf alle Info-Meldungen, alle Info- Meldungen für den in Bus eingestellten Bus, alle Info- Meldungen für das in Bus und Adresse eingestellte Gerät, reagiert wird.

Methods

function GetData: Boolean;
Sendet ein von den eingestellten Daten abhängiges GET-Kommando über den CommandClient an den Server.
Die Antwort löst ein OnChange Ereignis aus.
Abhängig von einer etwaigen Fehlermeldung vom Server wird das GET- Kommando ein zweites mal gesendet. Davor wird aber versucht mittels einer INIT-Kommanos die Fehlermeldung zu vermeiden.
function SetData: Boolean;
Sendet ein von den eingestellten Daten abhängiges SET-Kommando über den CommandClient an den Server.
Abhängig von einer etwaigen Fehlermeldung vom Server wird das SET- Kommando ein zweites mal gesendet. Davor wird aber versucht mittels einer GET-Kommandos die Fehlermeldung zu vermeiden.
function Lock(Duration: Integer = 0): Boolean;
Sendet ein von den eingestellten Daten abhängiges SET-LOCK-Kommando über den CommandClient an den Server.
function Unlock: Boolean;
Sendet ein von den eingestellten Daten abhängiges TERM-LOCK-Kommando über den CommandClient an den Server.
procedure Terminate;
Sendet ein von den eingestellten Daten abhängiges TERM-Kommando über den CommandClient an den Server.
procedure Initalize;
Sendet ein von den eingestellten Daten abhängiges TERM-Kommando über den CommandClient an den Server.

Events

property OnChange: TNotifyEvent;
Ereigniss wird ausgelöst, wenn eine 100 INFO "busnumber" "devicegroup" ... Meldung vom Server empfangen wird.
property OnInit: TNotifyEvent;
Ereigniss wird ausgelöst, wenn eine 101 INFO "busnumber" "devicegroup" ... Meldung vom Server empfangen wird.
property OnTerm: TNotifyEvent;
Ereigniss wird ausgelöst, wenn eine 102 INFO "busnumber" "devicegroup" ... Meldung vom Server empfangen wird.
property OnLock: TNotifyEvent;
Ereigniss wird ausgelöst, wenn eine 101 INFO "busnumber" LOCK ... Meldung vom Server empfangen wird.
property OnUnlock: TNotifyEvent;
Ereigniss wird ausgelöst, wenn eine 102 INFO "busnumber" LOCK ... Meldung vom Server empfangen wird.

Hierarchy

TComponent
   |
TSRCPBaseDeviceGroup

See also

TSRCPCmd, TSRCPCommandClient, TSRCPInfoClient, TSRCPDeviceState, TSRCPEventMode, TSRCPTimeStampType, TSRCPTimeStamp

©Roman Lauer
Zuletzt geändert am: 15.01.2005