type
{ Forwardeklarationen }
IDeviceController = interface;
IDeviceEntity = interface;
{ Interface unserer obersten Controllerklasse }
ILineController = interface(IInterface)['{4096970D-4269-4626-B710-AF753D80D0BF}']
{ Initialisiert den Controller mit den gegebenen Daten }
function Initialize(
db: TAdsConnection; id: Integer): Boolean;
{ Finalisiert den Controller, entfernt alle Daten }
function Finalize: Boolean;
{ Setzt die Genauigkeit der Protokollierung }
function SetLoglevel(ll: Integer): Boolean;
{ Gibt die Datenbankverbindung zurueck die angegeben wurde }
function GetDatabaseConnection: TAdsConnection;
function GetDatabaseConfigurationKey: Integer;
{ Setzt die Callbackmethode die der Controller aufrufen soll }
function SetCallbackMethod(cm: TCallbackMethod): Boolean;
{ Verarbeitet einen DeviceStatus und reicht ihn an den Callback weiter }
function ProcessDeviceStatus(ds: TDeviceStatus): Boolean;
{ Gibt die Anzahl der DeviceController zurück }
function GetDeviceControllerCount: Integer;
{ Gibt den Index des übergebenen DeviceControllers wieder }
function GetDeviceControllerIndex(
dc: IDeviceController): Integer;
{ Gibt den DeviceController des übergebenen Index wieder }
function GetDeviceControllerByIndex(index: Integer): IDeviceController;
{ Fügt einen neuen DeviceController hinzu }
function AddDeviceController(
dc: IDeviceController): Boolean;
{ Entfernt den übergebenen DeviceController }
function RemoveAllDeviceController: Boolean;
function RemoveDeviceController(index: Integer): Boolean; overload;
function RemoveDeviceController(
dc: IDeviceController): Boolean; overload;
{ Startet den übergebenen DeviceController }
function StartAllDeviceController: Boolean;
function StartDeviceController(index: Integer): Boolean; overload;
function StartDeviceController(
dc: IDeviceController): Boolean; overload;
{ Stoppt den übergebenen DeviceController }
function StopAllDeviceController: Boolean;
function StopDeviceController(index: Integer): Boolean; overload;
function StopDeviceController(
dc: IDeviceController): Boolean; overload;
{ Aktiviert den übergebenen DeviceController, somit wird er bei der
Abfrage der DeviceController mit einbezogen }
function ActivateAllDeviceController: Boolean;
function ActivateDeviceController(index: Integer): Boolean; overload;
function ActivateDeviceController(
dc: IDeviceController): Boolean; overload;
{ Deaktiviert den übergebenen DeviceController, somit wird er bei der
Abfrage der DeviceController übersprungen }
function DeactivateAllDeviceController: Boolean;
function DeactivateDeviceController(index: Integer): Boolean; overload;
function DeactivateDeviceController(
dc: IDeviceController): Boolean; overload;
end;
{ Interface unserer Controllerklasse für die einzelnen Verbindungen/Module }
IDeviceController = interface(IInterface)['{0217D970-51CC-49AD-944E-E9B0B86C6C14}']
{ Initialisiert den Controller mit den gegebenen Daten }
function Initialize(lc: ILineController; id: Integer): Boolean;
{ Finalisiert den Controller, entfernt alle Daten }
function Finalize: Boolean;
{ Setzt die Genauigkeit der Protokollierung }
function SetLoglevel(ll: Integer): Boolean;
{ Setzt den LineController dieses Objekts, wichtig um Daten weiterzugeben }
function SetLineController(lc: ILineController): Boolean;
{ Gibt den LineController dieses Objektszurück }
function GetLineController: ILineController;
{ Setzt die Verbindung dieses Controllers, also Comport oder
TCP/
IP }
function SetConnection(cnnct: IPort): Boolean;
{ Ermittelt die Verbindung dieses Controllers }
function GetConnection: IPort;
{ Oeffnet die Verbindung }
function OpenConnection(ps: TPortSettings): Boolean;
{ Schliesst die Verbindung }
function CloseConnection: Boolean;
{ Liest von der Verbindung }
function ReadConnection: String; overload;
function ReadConnection(ByteCount: Integer): String; overload;
{ Schreibt auf die Verbindung }
function WriteConnection(Text: String): Boolean;
{ Aktiviert den Controller, heisst er soll arbeiten falls gefragt }
function Activate: Boolean;
{ Deaktiviert den Controller, Controller arbeitet nicht }
function Deactivate: Boolean;
{ Startet die Abfrage der einzelnen Module die angeschlossen sind }
function Start: Boolean;
{ Beendet die Abfrage der einzelnen Module die angeschlossen sind }
function Stop: Boolean;
{ Gibt die Anzahl der angeschlossenen DeviceEntities zurück }
function GetDeviceEntityCount: Integer;
{ Gibt den Index des übergebenen DeviceEntity wieder }
function GetDeviceEntityIndex(de: IDeviceEntity): Integer;
{ Gibt das DeviceEntity des übergebenen Index wieder }
function GetDeviceEntityByIndex(index: Integer): IDeviceEntity;
{ Fügt ein neues DeviceEntity hinzu }
function AddDeviceEntity(de: IDeviceEntity): Boolean;
{ Entfernt das übergebene DeviceEntity }
function RemoveAllDeviceEntitites: Boolean;
function RemoveDeviceEntity(index: Integer): Boolean; overload;
function RemoveDeviceEntity(de: IDeviceEntity): Boolean; overload;
{ Aktiviert das übergebenen DeviceEntity, somit wird es bei der
Abfrage der DeviceEntities mit einbezogen }
function ActivateAllDeviceEntities: Boolean;
function ActivateDeviceEntity(index: Integer): Boolean; overload;
function ActivateDeviceEntity(de: IDeviceEntity): Boolean; overload;
{ Dektiviert das übergebenen DeviceEntity, somit wird es bei der
Abfrage der DeviceEntities ausgelassen }
function DeactivateAllDeviceEntities: Boolean;
function DeactivateDeviceEntity(index: Integer): Boolean; overload;
function DeactivateDeviceEntity(de: IDeviceEntity): Boolean; overload;
end;
IDeviceEntity = interface(IInterface)['{E7803FED-19E9-462C-9289-2165E0464F53}']
{ Initialisiert den Controller mit den gegebenen Daten }
function Initialize(lc: ILineController;
dc: IDeviceController; id: Integer): Boolean;
{ Finalisiert den Controller, entfernt alle Daten }
function Finalize: Boolean;
{ Setzt die Genauigkeit der Protokollierung }
function SetLoglevel(ll: Integer): Boolean;
{ Setzt den LineController dieses Objekts, wichtig um Daten weiterzugeben }
function SetLineController(lc: ILineController): Boolean;
{ Setzt den DeviceController dieses Objekts, wichtig um Daten weiterzugeben }
function SetDeviceController(
dc: IDeviceController): Boolean;
{ Gibt den LineController dieses Objekts wieder }
function GetLineController: ILineController;
{ Gibt den DeviceController dieses Objekts wieder }
function GetDeviceController: IDeviceController;
{ Aktiviert das modul, heisst er soll arbeiten falls gefragt }
function Activate: Boolean;
{ Deaktiviert das Modul, Modul arbeitet nicht }
function Deactivate: Boolean;
{ Liest den aktuellen Gerätestatus aus }
function GetDeviceStatus: TDeviceStatus;
{ Setzt den aktuellen Gerätestatus. }
function SetDeviceStatus(ds: TDeviceStatus): Boolean;
{ Setzt das Relais auf den angegebenen Status, falls vorhanden }
function SetRelaisState(ns: Boolean): Boolean;
{ Schreibt den gegebenen Text auf das Display, falls vorhanden }
function SetDisplayText(nt: String): Boolean;
{ Hat das Geraet die angegebene Eigenschaft? }
function IsRfidModule: Boolean;
function IsDisplayModule: Boolean;
function IsRelaisModule: Boolean;
function IsScannerModule: Boolean;
function IsNumpadModule: Boolean;
end;