Protocols/OSCAR/Datatypes

From NINA Wiki
Revision as of 03:23, 17 March 2020 by AD (talk | contribs)
Jump to navigation Jump to search

The protocol is built on top of some common base types described below; these are the building blocks for all the other datatypes and SNACs. When encoding or decoding these types, make sure to use network byte order.

Base Types

Name Size Notes
u08 1 byte Unsigned byte
u16 2 bytes Unsigned two byte short
u32 4 bytes Unsigned four byte int
f32 4 bytes Four byte float
t70 4 bytes Unsigned four byte timestamp, from UNIX EPOCH
UUID 16 bytes Sixteen bytes that represent a UUID also known as a GUID
blob length bytes Used in a TLV, data type and size is defined by external values
empty 0 bytes Used in a TLV, existence of tag causes behavior, the data is ignored

Strings

In general strings are not NULL terminated and are encoded using UTF8. A string is said to be compressed if all white spaces are removed and all upper case characters are converted to lower case.

Name Size Notes
string data Inside of TLVs a string inherits its length from the TLV length
string08 u08 + data One byte length followed by that many bytes of data
string16 u16 + data Two byte length followed by that many bytes of data