Skip to main content

BACnet-Datentypen - Definition und Ausnahmen

Die Bibliothek BACnet verwendet zumeist BACnet-Datentypen - definiert in Bibliothek CmpBACnet - an ihrem Interface (Methoden-Argumente, Methoden-Rückgabewerte, Funktionsbaustein-Properties).

Wenn am Interface andere Datentypen verwendet werden - in diesem Fall meist IEC-Grunddatentypen - führen die entsprechenden Methoden und Propertys eine implizite Konvertierung von/nach den entsprechenden intern verwendeten BACnet-Datentypen durch.

Beispiele dafür:

Konvertierung

IEC BOOL <-> CmpBACnet.IEC_BACNET_BOOLEAN

Die Verwendung von BOOL (TRUE/FALSE) anstelle CmpBACnet.IEC_BACNET_BOOLEAN macht den IEC-Code besser lesbar.

IEC WSTRING <-> CmpBACnet.IEC_BACNET_STRING

Die Verwendung von WSTRING ist nötig, da eine Konvertierung von/nach den intern verwendeten BACnet-Datentypen CmpBACnet.IEC_BACNET_STRING_TYPE.BACNET_STRING_UTF_8 oder CmpBACnet.IEC_BACNET_STRING_TYPE.BACNET_STRING_ISO_8859_1 erfolgt.

IEC DATE/TIME / BACnetDateTime <-> CmpBACnet.IEC_BACNET_DATE/CmpBACnet.IEC_BACNET_TIME

Die Verwendung von IEC DATE/TIME ist für den IEC-Programmierer gebräuchlicher und wird daher am Interface bevorzugt.

Am Interface der Bibliothek BACnet werden andere als die BACnet-Datentypen nur in wohlbegründeten Ausnahmen verwendet, um den Applikations-IEC-Code zu vereinfachen. Der meist geringe Zusatzaufwand für eine Konvertierung ist vernachlässigbar.