IEmberPlusConnector

<< Klicken Sie hier um das Inhaltsverzeichnis anzuzeigen >>

Navigation:  Anleitungen > EmberPlusTcp Plugin konfigurieren >

IEmberPlusConnector

Die Schnittstelle IEmberPlusConnector Beschreibt die Funktionalität, welche das EmberPlusTcpPlugin für die Skripting-Umgebung zur Verfügung stellt. Die nachfolgend aufgeführten Ereignisse, werden im Skript-Editor auf der linken Seite unter der Kategorie "EmberPlusConnector" aufgelistet, die dazugehörigen Ereignis-Handler können dort mittels C# Code ausprogrammiert werden. Alle hier aufgeführten Methoden können grundsätzlich in allen Ereignis-Handlern aufgerufen werden, welche die Skripting-Umgebubg zur Verfügung stellt. Die Methoden werden innerhalb der Scripting-Umgebung über das Objekt "EmberPlusConnector" zur Verfügung gestellt. Beispiele können der Anleitung aus dem Kapitel "EmberPlusTcpPlugin konfigurieren" entnommen werden.

 

namespace Sohard.Dabis.Ember

{

 

  /// <summary>

  /// Delegat (Methodensignatur) welches verwendet wird, wenn das Ereignis "ParameterChanged" ausgelöst wird.

  /// </summary>

  /// <param name="path">Absoluter Identifier-Pfad zum Parameter welcher geändert hat (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

  /// <param name="value">Neuer Wert des Parameters.</param>

  /// <param name="echoDistance">Anzahl Millisekunden, welche vergangen sind, seit dem dieser Parameter das letzte Mal durch eine der  

  /// SetParameter Methoden gesetzt wurde. Darüber kann festgestellt werden, ob es sich um eine Parameter Änderung handelt, welche

  /// vom Gerät ausgeht (z.B. durch das Drücken eines Knopfes) oder um ein Echo durch SetParameter. Wurde SetParameter für diesen

  /// Wert noch nie aufgerufen, ist echoDistance = DateTime.MaxValue.Ticks / 10000.</param>

  public delegate void ParameterChangedHandler(string path, object value, long echoDistance);

 

  /// <summary>

  /// Definiert Eigenschaften und Methoden die dem Scripting zur Verfügung gestellt werden.

  /// </summary>

  public interface IEmberPlusConnector

   {

 

      /// <summary>

      /// Instanzname des Connectors. Kann Beispielsweise für das Loggen benutzt werden,

      /// um Logeinträge unterschiedlicher Instanzen auseinander zu halten.

      /// </summary>

      string InstanceName { get; }

 

      /// <summary>

      /// Startet den EmberPlusConnector und baut die Verbindung zum Ember+ Gerät auf.

      /// Diese Methode wird automatisch aufgerufen und sollte im Scripting nicht verwendet werden.

      /// </summary>

      void Start();

 

      /// <summary>

      /// Trennt die Verbindung zum Ember+ Gerät und beendet den EmberPlusConnector.

      /// Diese Methode wird automatisch aufgerufen und sollte im Scripting nicht verwendet werden.

      /// </summary>

      void Stop();

      /// <summary>

      /// Dieses Ereignis wird ausgelöst, wenn ein Parameter des angebundenen Ember+ Gerätes ändert.

      /// </summary>

      event ParameterChangedHandler ParameterChanged;

      /// <summary>

      /// Dieses Ereignis wird ausgelöst, wenn die Verbindung zum Ember+ Gerät hergestellt wurde.

      /// </summary>

      event System.ActionConnected;

      /// <summary>

      /// Traversiert einen Teil des Ember+ Trees. Bei der Traversierung werden einerseits Informationen

      /// über Knoten und Parameter im lokalen Cache gespeichert. Andererseits wird durch die

      /// Traversierung zu einem Parameter bewirkt, dass Änderungen an diesem das ParameterChanged

      /// Ereignis auslösen. Die Methode sollte grundsätzlich einmal für jeden Parameter* aufgerufen werden, welcher

      /// geschrieben werden soll und/oder dessen Änderungen ein ParameterChanged Ereignis auslösen sollen.

      /// *Je Ebene muss nur ein Parameter abgefragt werden. Alle anderen Parameter auf gleicher Ebene können dann

      /// automatisch auch gesetzt werden und lösen bei deren Änderung ebenfalls ein ParameterChanged Ereignis aus.

      /// </summary>

      /// <param name="identPath">Absoluter Pfad zum Parameter.</param>

      /// <returns>Gibt true zurück, wenn die Traversierung erfolgreich war, false sonst.</returns>

      bool TraverseTreePart(string identPath);

      /// <summary>

      /// Löscht den lokalen Cache. Diese Methode sollte immer dann aufgerufen werden, wenn

      /// eine Verbindung zum Ember+ Gerät hergestellt wurde und bevor das erste Mal TraverseTreePart

      /// aufgerufen wird.

      /// </summary>

      void ClearLocalTree();

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode sollte verwendet werden,

      /// um einen Parameter vom BER Typ "UTF8String" [X.690 8.21] zu setzen.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      void SetParameter(string identPath, string value);

      /// <summary>

      /// Initialisiert einen verzögerbaren Parameter des Typs "UTF8String" [X.690 8.21].

      /// Diese Methode muss aufgerufen werden, bevor das erste Mal ein Parameter mit Verzögerung gesetzt werden will.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="initialState">Setzt den initialen Zustand dieses Parameters.</param>

      void InitDelayedParameter(string identPath, string initialState);

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode sollte verwendet werden,

      /// um einen Parameter vom BER Typ "UTF8String" [X.690 8.21] zu setzen.

      /// Vor der Verwendung dieser Methode muss InitDelayedParameter() mit demselben "identPath" aufgerufen werden.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      /// <param name="delay">Verzögerung in Millisekunden.</param>

      void SetParameter(string identPath, string value, ushort delay);

 

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode sollte verwendet werden,

      /// um einen Parameter vom BER Typ "Integer" [X.690 8.3] zu setzen.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      void SetParameter(string identPath, long value);

 

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode sollte verwendet werden,

      /// um einen Parameter vom BER Typ "Integer" [X.690 8.3] zu setzen.

      /// Vor der Verwendung dieser Methode muss InitDelayedParameter() mit demselben "identPath" aufgerufen werden.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      /// <param name="delay">Verzögerung in Millisekunden.</param>

      void SetParameter(string identPath, long value, ushort delay);

 

      /// <summary>

      /// Initialisiert einen verzögerbaren Parameter des Typs "Integer" [X.690 8.3].

      /// Diese Methode muss aufgerufen werden, bevor das erste Mal ein Parameter mit Verzögerung gesetzt werden will.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="initialState">Setzt den initialen Zustand dieses Parameters.</param>

      void InitDelayedParameter(string identPath, long initialState);

 

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode sollte verwendet werden,

      /// um einen Parameter vom BER Typ "Real" [X.690 8.5] zu setzen.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      void SetParameter(string identPath, double value);

 

      /// <summary>

      /// Initialisiert einen verzögerbaren Parameter des Typs "Real" [X.690 8.5].

      /// Diese Methode muss aufgerufen werden, bevor das erste Mal ein Parameter mit Verzögerung gesetzt werden will.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="initialState">Setzt den initialen Zustand dieses Parameters.</param>

      void InitDelayedParameter(string identPath, double initialState);

 

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode sollte verwendet werden,

      /// um einen Parameter vom BER Typ "Real" [X.690 8.5] zu setzen.

      /// Vor der Verwendung dieser Methode muss InitDelayedParameter() mit demselben "identPath" aufgerufen werden.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      /// <param name="delay">Verzögerung in Millisekunden.</param>

      void SetParameter(string identPath, double value, ushort delay);

 

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode sollte verwendet werden,

      /// um einen Parameter vom BER Typ "Boolean" [X.690 8.2] zu setzen.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      void SetParameter(string identPath, bool value);

 

      /// <summary>

      /// Initialisiert einen verzögerbaren Parameter des Typs "Boolean" [X.690 8.2].

      /// Diese Methode muss aufgerufen werden, bevor das erste Mal ein Parameter mit Verzögerung gesetzt werden will.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="initialState">Setzt den initialen Zustand dieses Parameters.</param>

      void InitDelayedParameter(string identPath, bool initialState);

 

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode sollte verwendet werden,

      /// um einen Parameter vom BER Typ "Boolean" [X.690 8.2] zu setzen.

      /// Vor der Verwendung dieser Methode muss InitDelayedParameter() mit demselben "identPath" aufgerufen werden.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      /// <param name="delay">Verzögerung in Millisekunden.</param>

      void SetParameter(string identPath, bool value, ushort delay);

      /// <summary>

      /// Setzt den angegebenen Parameter (BER Typ "Boolean" [X.690 8.2]) auf true und nach Ablauf von

      /// <paramref name="length"/> zurück auf false. Vor der Verwendung dieser Methode muss InitDelayedParameter()

      /// mit demselben "identPath" aufgerufen werden.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="length">Länge des Pulses.</param>

      /// <param name="delay">Verzögerung in Millisekunden.</param>

      void Pulse(string identPath, ushort length, ushort delay = 0);

 

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode sollte verwendet werden,

      /// um einen Parameter vom BER Typ "Octet String" [X.690 8.7] zu setzen.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      void SetParameter(string identPath, byte[] value);

 

      /// <summary>

      /// Initialisiert einen verzögerbaren Parameter des Typs "Octet String" [X.690 8.7].

      /// Diese Methode muss aufgerufen werden, bevor das erste Mal ein Parameter mit Verzögerung gesetzt werden will.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="initialState">Setzt den initialen Zustand dieses Parameters.</param>

      void InitDelayedParameter(string identPath, byte[] value);

 

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode sollte verwendet werden,

      /// um einen Parameter vom BER Typ "Octet String" [X.690 8.7] zu setzen.

      /// Vor der Verwendung dieser Methode muss InitDelayedParameter() mit demselben "identPath" aufgerufen werden.

      /// </summary>

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      /// <param name="delay">Verzögerung in Millisekunden.</param>

      void SetParameter(string identPath, byte[] value, ushort delay);

 

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode kann verwendet werden,

      /// um einen Parameter vom BER Typ "UTF8String" [X.690 8.21] zu setzen.

      /// </summary>

      /// <param name="identPath">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// SetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      void SetParameter(int[] path, string value);

 

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode kann verwendet werden,

      /// um einen Parameter vom BER Typ "Integer" [X.690 8.3] zu setzen.

      /// </summary>

      /// <param name="identPath">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// SetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      void SetParameter(int[] path, long value);

 

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode kann verwendet werden,

      /// um einen Parameter vom BER Typ "Real" [X.690 8.5] zu setzen.

      /// </summary>

      /// <param name="identPath">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// SetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      void SetParameter(int[] path, double value);

 

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode kann verwendet werden,

      /// um einen Parameter vom BER Typ "Boolean" [X.690 8.2] zu setzen.

      /// </summary>

      /// <param name="identPath">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// SetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      void SetParameter(int[] path, bool value);

 

      /// <summary>

      /// Setzt den angegebenen Parameter auf den angegebenen Wert. Diese Methode kann verwendet werden,

      /// um einen Parameter vom BER Typ "Octet String" [X.690 8.7] zu setzen.

      /// </summary>

      /// <param name="identPath">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// SetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <param name="value">Wert, welcher gesetzt werden soll.</param>

      void SetParameter(int[] path, byte[] value);

      /// <summary>

      /// Versucht den Wert des angegebenen Parameters (vom BER Typ "UTF8String") aus dem lokalen Cache zu lesen. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde.

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wird mit dem Wert vom Parameter initialisiert. Gibt die Methode false zurück, wird dieser Wert nicht gesetzt.</param>

      /// <returns>true, wenn der Wert erfolgreich aus dem Cache gelesen wurde, false sonst.</returns>

      bool TryGetParameter(string identPath, out string value);

 

      /// <summary>

      /// Versucht den Wert des angegebenen Parameters (vom BER Typ "Integer") aus dem lokalen Cache zu lesen. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde.

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wird mit dem Wert vom Parameter initialisiert. Gibt die Methode false zurück, wird dieser Wert nicht gesetzt.</param>

      /// <returns>true, wenn der Wert erfolgreich aus dem Cache gelesen wurde, false sonst.</returns>

      bool TryGetParameter(string identPath, out long value);

 

      /// <summary>

      /// Versucht den Wert des angegebenen Parameters (vom BER Typ "Real") aus dem lokalen Cache zu lesen. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde.

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wird mit dem Wert vom Parameter initialisiert. Gibt die Methode false zurück, wird dieser Wert nicht gesetzt.</param>

      /// <returns>true, wenn der Wert erfolgreich aus dem Cache gelesen wurde, false sonst.</returns>

      bool TryGetParameter(string identPath, out double value);

 

      /// <summary>

      /// Versucht den Wert des angegebenen Parameters (vom BER Typ "Boolean") aus dem lokalen Cache zu lesen. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde.

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wird mit dem Wert vom Parameter initialisiert. Gibt die Methode false zurück, wird dieser Wert nicht gesetzt.</param>

      /// <returns>true, wenn der Wert erfolgreich aus dem Cache gelesen wurde, false sonst.</returns>

      bool TryGetParameter(string identPath, out bool value);

 

      /// <summary>

      /// Versucht den Wert des angegebenen Parameters (vom BER Typ "Octet String") aus dem lokalen Cache zu lesen. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde.

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <param name="value">Wird mit dem Wert vom Parameter initialisiert. Gibt die Methode false zurück, wird dieser Wert nicht gesetzt.</param>

      /// <returns>true, wenn der Wert erfolgreich aus dem Cache gelesen wurde, false sonst.</returns>

      bool TryGetParameter(string identPath, out byte[] value);

 

      /// <summary>

      /// Versucht den Wert des angegebenen Parameters (vom BER Typ "UTF8String") aus dem lokalen Cache zu lesen. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde.

      /// <param name="path">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// TryGetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <param name="value">Wird mit dem Wert vom Parameter initialisiert. Gibt die Methode false zurück, wird dieser Wert nicht gesetzt.</param>

      /// <returns>true, wenn der Wert erfolgreich aus dem Cache gelesen wurde, false sonst.</returns>

      bool TryGetParameter(int[] path, out string value);

 

      /// <summary>

      /// Versucht den Wert des angegebenen Parameters (vom BER Typ "Integer") aus dem lokalen Cache zu lesen. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde.

      /// <param name="path">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// TryGetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <param name="value">Wird mit dem Wert vom Parameter initialisiert. Gibt die Methode false zurück, wird dieser Wert nicht gesetzt.</param>

      /// <returns>true, wenn der Wert erfolgreich aus dem Cache gelesen wurde, false sonst.</returns>

      bool TryGetParameter(int[] path, out long value);

 

      /// <summary>

      /// Versucht den Wert des angegebenen Parameters (vom BER Typ "Real") aus dem lokalen Cache zu lesen. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde.

      /// <param name="path">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// TryGetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <param name="value">Wird mit dem Wert vom Parameter initialisiert. Gibt die Methode false zurück, wird dieser Wert nicht gesetzt.</param>

      /// <returns>true, wenn der Wert erfolgreich aus dem Cache gelesen wurde, false sonst.</returns>

      bool TryGetParameter(int[] path, out double value);

 

      /// <summary>

      /// Versucht den Wert des angegebenen Parameters (vom BER Typ "Boolean") aus dem lokalen Cache zu lesen. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde.

      /// <param name="path">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// TryGetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <param name="value">Wird mit dem Wert vom Parameter initialisiert. Gibt die Methode false zurück, wird dieser Wert nicht gesetzt.</param>

      /// <returns>true, wenn der Wert erfolgreich aus dem Cache gelesen wurde, false sonst.</returns>

      bool TryGetParameter(int[] path, out bool value);

 

      /// <summary>

      /// Versucht den Wert des angegebenen Parameters (vom BER Typ "Octet String") aus dem lokalen Cache zu lesen. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde.

      /// <param name="path">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// TryGetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <param name="value">Wird mit dem Wert vom Parameter initialisiert. Gibt die Methode false zurück, wird dieser Wert nicht gesetzt.</param>

      /// <returns>true, wenn der Wert erfolgreich aus dem Cache gelesen wurde, false sonst.</returns>

      bool TryGetParameter(int[] path, out byte[] value);

      /// <summary>

      /// Liest den Wert des angegebenen Parameters (vom BER Typ "UTF8String") aus dem lokalen Cache. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde. In diesem Fall wird eine Exception geworfen.

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <returns>Wert des Parameters.</returns>

      string GetParameterString(string identPath);

 

      /// <summary>

      /// Liest den Wert des angegebenen Parameters (vom BER Typ "Integer") aus dem lokalen Cache. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde. In diesem Fall wird eine Exception geworfen.

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <returns>Wert des Parameters.</returns>

      long GetParameterLong(string identPath);

 

      /// <summary>

      /// Liest den Wert des angegebenen Parameters (vom BER Typ "Real") aus dem lokalen Cache. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde. In diesem Fall wird eine Exception geworfen.

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <returns>Wert des Parameters.</returns>

      double GetParameterDouble(string identPath);

 

      /// <summary>

      /// Liest den Wert des angegebenen Parameters (vom BER Typ "Boolean") aus dem lokalen Cache. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde. In diesem Fall wird eine Exception geworfen.

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <returns>Wert des Parameters.</returns>

      bool GetParameterBool(string identPath);

 

      /// <summary>

      /// Liest den Wert des angegebenen Parameters (vom BER Typ "Octet String") aus dem lokalen Cache. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde. In diesem Fall wird eine Exception geworfen.

      /// <param name="identPath">Absoluter Identifier-Pfad zum Parameter (Einzelne Identifier Elemente werden mit '/' getrennt).</param>

      /// <returns>Wert des Parameters.</returns>

      byte[] GetParameterBytes(string identPath);

 

      /// <summary>

      /// Liest den Wert des angegebenen Parameters (vom BER Typ "UTF8String") aus dem lokalen Cache. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde. In diesem Fall wird eine Exception geworfen.

      /// <param name="path">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// GetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <returns>Wert des Parameters.</returns>

      string GetParameterString(int[] path);

 

      /// <summary>

      /// Liest den Wert des angegebenen Parameters (vom BER Typ "Integer") aus dem lokalen Cache. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde. In diesem Fall wird eine Exception geworfen.

      /// <param name="path">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// GetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <returns>Wert des Parameters.</returns>

      long GetParameterLong(int[] path);

 

      /// <summary>

      /// Liest den Wert des angegebenen Parameters (vom BER Typ "Real") aus dem lokalen Cache. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde. In diesem Fall wird eine Exception geworfen.

      /// <param name="path">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// GetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <returns>Wert des Parameters.</returns>

      double GetParameterDouble(int[] path);

 

      /// <summary>

      /// Liest den Wert des angegebenen Parameters (vom BER Typ "Boolean") aus dem lokalen Cache. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde. In diesem Fall wird eine Exception geworfen.

      /// <param name="path">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// GetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <returns>Wert des Parameters.</returns>

      bool GetParameterBool(int[] path);

 

      /// <summary>

      /// Liest den Wert des angegebenen Parameters (vom BER Typ "Octet String") aus dem lokalen Cache. Die Methode kann zum

      /// Beispiel fehlschlagen, wenn der gesuchte Parameter nicht im Cache (lokaler Ember+ Tree) ist - weil die entsprechende

      /// TraverseTreePart Methode zuvor nicht aufgerufen wurde. Oder wenn der angegebene Parameter zwar vorhanden ist, aber

      /// dieser von einem anderen Typ ist, als erwartet wurde. In diesem Fall wird eine Exception geworfen.

      /// <param name="path">Absoluter Number-Pfad zum Parameter. Ember+ gewährleistet nur, dass dieser Pfad

      /// innerhalb einer Session gleich bleibt. Einige Geräte stellen aber sicher, dass sich dieser Pfad grundsätzlich

      /// nicht ändert. Im Zweifelsfall sollte die Geräte Dokumentation herangezogen werden, oder die entsprechende

      /// GetParameter Methode verwendet werden, welche stattdessen einen Identifier-Pfad entgegen nimmt.</param>

      /// <returns>Wert des Parameters.</returns>

      byte[] GetParameterBytes(int[] path);

 

   }

}