Protocols/OSCAR/Datatypes

From NINA Wiki
Revision as of 03:21, 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

String Types

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