Read Reduced Encoded Data from a Binary Connection
Source:R/SeaSondeRCSSY.R
seasonder_read_reduced_encoded_data.Rd
This function reads an array of numbers from a binary connection using a custom command-based protocol.
A block of data is processed according to its size specified in key$size
. Within the block, the first byte read
is a command byte that determines how the subsequent bytes are interpreted. The function updates a running "tracking
value" based on the commands encountered and returns a vector of decoded numbers. The supported commands are:
Details
- 0x9C
Read 4 bytes as an unsigned 32-bit integer.
- 0x94
Read one count byte, then (count+1) unsigned 32-bit integers.
- 0xAC
Read 3 bytes as a 24-bit signed integer; add its value to the current tracking value.
- 0xA4
Read one count byte, then (count+1) 24-bit signed integers; sequentially add each to the tracking value.
- 0x89
Read 1 byte as a signed 8-bit integer; add it to the tracking value.
- 0x8A
Read 2 bytes as a signed 16-bit integer; add it to the tracking value.
- 0x82
Read one count byte, then (count+1) signed 16-bit integers; sequentially add each to the tracking value.
- 0x81
Read one count byte, then (count+1) signed 8-bit integers; sequentially add each to the tracking value.
A 24-bit signed integer is computed by reading 3 bytes and then adjusting the value by subtracting 16777216 if the computed value is greater than or equal to 8388608 to account for the two's complement representation.