SixML - Basisdatentypen

Die SixML definiert verschiedene Basisdatentypen, die hier mit Beispielen kurz erläutert werden. Es gibt Datentypen für numerische Werte, Strings, Wahrheitswerte und Zeiten.

 

 

Numerische Werte

Es werden ValueTypes für 1-Byte, 2-Byte und 4-Byte Werte definiert, jeweils unsigned und signed. Alle Werte werden mit dem MSB zuerst übertragen. Signed-Werte werden als 2er-Komplement interpretiert.

	
UInt8
1 Byte                                  76                                      ServiceValue
  1 Byte                                1                                       
  1 Byte                                01                                      1


Int8
1 Byte                                  76                                      ServiceValue
  1 Byte                                1                                       
  1 Byte                                0xFF                                    -1


UInt16
1 Byte                                  76                                      ServiceValue
  1 Byte                                2                                       
  2 Bytes                               0x02-00                                 512


Int16
1 Byte                                  76                                      ServiceValue
  1 Byte                                2                                       
  2 Bytes                               0xFF-9C                                 -100


UInt32
1 Byte                                  76                                      ServiceValue
  1 Byte                                4                                       
  4 Bytes                               0x02-01-00-00                           33619968


Int32
1 Byte                                  76                                      ServiceValue
  1 Byte                                4                                       
  4 Bytes                               0x80-00-00-00                           -2147483648
Numerische Listen

Für jeden numerischen ValueType existiert zusätzlich ein Listentyp, der eine Reihe von Werten gleichen Typs enthält. Die Anzahl der enthaltenen Werte ergibt sich aus der Länge des Tupels dividiert durch die Byteanzahl des Wertetyps.

	
UInt8-List
1 Byte                                  76                                      ServiceValue
  1 Byte                                3                                       
  3 Bytes                               0x01-02-03                              1,2,3


Int32-List
1 Byte                                  76                                      ServiceValue
  1 Byte                                8                                       
  8 Bytes                               0x80-00-00-00-00-00-00-01               -2147483648,1

 

 

Wahrheitswerte

Wahrheitswerte werden als Bytes übertragen. 0 ist false, 1 ist true. Zusätzlich wird die dazugehörige Liste definiert.

	
Boolean
1 Byte                                  76                                      ServiceValue
  1 Byte                                1                                       
  1 Byte                                01                                      True


Boolean-List
1 Byte                                  76                                      ServiceValue
  1 Byte                                2                                       
  2 Bytes                               0x00-01                                 False,True
	

 

 

Textwerte

Als Textwerttypen werden Strings und URLs definiert. Für Listen enthält die Payload jeweils die Länge jedes Eintrags plus den Eintrag selbst (siehe Beispiel).

	
String
1 Byte                                  76                                      ServiceValue
  1 Byte                                5                                       
  5 Bytes                               79-119-110-101-114                      'Owner'


StringList
1 Byte                                  76                                      ServiceValue
  1 Byte                                9                                       
  9 Bytes                               05-79-119-110-101-114-02-78-111         'Owner', 'No'

 

 

DateTime-Werte

Es existiert ein Datentyp zur Beschreibung eines Datums und einer Uhrzeit. Die innere Struktur ist:

JahrMSB, JahrLSB, Monat, Tag, Stunde, Minute, Sekunde, 4x Millisekunden, UTC-Offset in halben Stunden

Zusätzlich wird die dazugehörige Liste definiert.

	
DateTime
1 Byte                                  76                                      ServiceValue
  1 Byte                                9                                       
  9 Bytes                               07-221-10-11-09-32-36-00-04            11.Oktober 2013 09:32:36 CEST


DateTimeList
1 Byte                                  76                                      ServiceValue
  1 Byte                                18                                       
  18 Bytes                              07-221-10-11-09-32-36-00-04-            11.Oktober 2013 09:32:36 CEST, 1.Oktober 2013 09:00:00 CEST
                                        07-221-10-01-09-00-00-00-04

 

 

DATENTYPEN