Difference between revisions of "Protocols/OSCAR/Datatypes"

From NINA Wiki
Jump to navigation Jump to search
(Base Types)
Line 3: Line 3:
 
== Base Types ==
 
== Base Types ==
  
{|  
+
{| class="wikitable"
 
! Name
 
! Name
 
! Size
 
! Size
Line 30: Line 30:
 
| UUID
 
| UUID
 
| 16 bytes
 
| 16 bytes
| Sixteen bytes that represent a [Protocols/OSCAR/UUID|UUID] also known as a GUID
+
| Sixteen bytes that represent a [Protocols/OSCAR/UUID UUID] also known as a GUID
 
|-
 
|-
 
| blob
 
| blob
 
| length bytes
 
| length bytes
| Used in a [Protocols/OSCAR/TLV|TLV], data type and size is defined by external values
+
| Used in a [Protocols/OSCAR/TLV TLV], data type and size is defined by external values
 
|-
 
|-
 
| empty
 
| empty
 
| 0 bytes
 
| 0 bytes
| Used in a [Protocols/OSCAR/TLV|TLV], existence of tag causes behavior, the data is ignored
+
| Used in a [Protocols/OSCAR/TLV TLV], existence of tag causes behavior, the data is ignored
 
|}
 
|}
  
Line 45: Line 45:
 
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.
 
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.
  
{|  
+
{| class="wikitable"
 
! Name
 
! Name
 
! Size
 
! Size
Line 52: Line 52:
 
| string
 
| string
 
| data
 
| data
| Inside of [Protocols/OSCAR/TLV|TLVs] a string inherits its length from the TLV length
+
| Inside of [Protocols/OSCAR/TLV TLVs] a string inherits its length from the TLV length
 
|-
 
|-
 
| string08
 
| string08

Revision as of 03:18, 17 March 2020

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 [Protocols/OSCAR/UUID UUID] also known as a GUID
blob length bytes Used in a [Protocols/OSCAR/TLV TLV], data type and size is defined by external values
empty 0 bytes Used in a [Protocols/OSCAR/TLV 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 [Protocols/OSCAR/TLV 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