<< 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);
}
}