SixML - ImplicitValues

Zweck

ImplicitValue-Container stellen eine generische Möglichkeit dar, Geräte-, Dienst- und Elementwerte zu beschreiben. Sie sind durch einen Klienten auswertbar, sobald das zugehörige Gerät online ist. Dies vereinfacht die Definition von Diensten, welche solche Werte verarbeiten müssen, z.B. für Logging und Regeln. Mehrere ImplicitValueDescriptionContainer innerhalb einer Nachricht sind über eine ImplicitValueContainerID eindeutig identifizierbar.

ImplicitValueContainer funktionieren nur mit Diensten, welche sich an die definierte Einteilung in verschiedene Dienstgruppen halten. Daher ist es wichtig, auch bei herstellerspezifischen Diensten auf eine entsprechende Semantik zu achten.

ImplicitValueDescriptionContainer-Struktur

ImplicitValueContainer sind analog zu SixML-Nachrichten aufgebaut, d.h., sie bestehen aus einzelnen SixML-Tupeln. Das erste Tupel enthält stets den ImplicitValueContainerType.

ValueContainer-Typen

Dienstwert

ImplicitValueContainerType.ServiceValue beschreibt den aktuellen Wert eines Dienstes.

Beispiel: Aktueller Zustand eines Schalters (DigitalInput.State)

	
ImplicitValueContainerType.ServiceValue, DeviceID, ServiceID*

31-1-20-42-2-11-184-72-1-01-130-1-10-131-1-14-133-2-255-246-134-2-00-40-0

1 Byte                                  31                                      ImplicitValueContainerType
  1 Byte                                1                                       
  1 Byte                                20                                      ServiceValue
1 Byte                                  42                                      DeviceID
  1 Byte                                2                                       
  2 Bytes                               11-184                                  3000
1 Byte                                  72                                      ServiceID
  1 Byte                                1                                       
  1 Byte                                01                                      1
1 Byte                                  -126                                    ValueInputOperator
  1 Byte                                1                                       
  1 Byte                                10                                      ToRange
1 Byte                                  -125                                    ValueOutputOperator
  1 Byte                                1                                       
  1 Byte                                14                                      RangeToNumeric
1 Byte                                  -123                                    ValueInputMin
  1 Byte                                2                                       
  2 Bytes                               255-246                                 HexValue:0xFF-F6;DecValue:65526
1 Byte                                  -122                                    ValueInputMax
  1 Byte                                2                                       
  2 Bytes                               00-40                                   HexValue:0x00-28;DecValue:40
1 Byte                                  0                                       EndOfPacket

  <ImplicitValueContainerType>ServiceValue</ImplicitValueContainerType>
  <DeviceID>3000</DeviceID>
  <ServiceID>1</ServiceID>
  <ValueInputOperator>ToRange</ValueInputOperator>
  <ValueOutputOperator>RangeToNumeric</ValueOutputOperator>
  <ValueInputMin HexValue="0xFF-F6" >65526</ValueInputMin>
  <ValueInputMax HexValue="0x00-28" >40</ValueInputMax>

Dienstwert.Composite

Der Dienstwert.Composite-ValueContainer besteht aus dem ValueContainerType-, DeviceID-, ServiceID- und CompositePartID-Tupel. Er beschreibt den aktuellen Teilwert eines Dienstes.

Beispiel: Aktuelle Geschwindigkeit (DriveInformation.Speed)

Elementwert

Der Elementwert-ValueContainer besteht aus dem ValueContainerType-, DeviceID-,ServiceID- und ElementIndex-Tupel. Er beschreibt den einzelnen Elementwert einer Elementliste, z.B. für MultipleInput oder TextOutput-Dienste.

Beispiel: Aktueller Statustext (TextOutput[Layer])

Elementwert.PropertyID

Der Elementwert.PropertyID-Selektor besteht aus dem ValueContainerType-, DeviceID-,ServiceID- und ElementPropertyID-Tupel. Er beschreibt eine einzelne Eigenschaft eines Elements, z.B. für MediaInformation. Für Elementlisten z.B. im WeatherInformation oder CommStatus-Dienst wird zusätzlich das ElementIndex-Tupel übertragen.

Beispiel: Aktuelle Bildbreite (MediaInformation.Width)

Beispiel: Tagesminimaltemperatur (WeatherInformation[Morgen].Min)

Gerätename

Der Gerätename-ValueContainer besteht aus dem ValueContainerType- und DeviceID-Tupel. Er beschreibt den aktuellen Namen des Gerätes.

Geräteposition

Der Geräteposition-ValueContainer besteht aus dem ValueContainerType- und DeviceID-Tupel. Er beschreibt die aktuelle Position des Gerätes.