This document outlines the packet specification used within the SENSUS SDK, including the supporting types and the various packet types. This information is essential for understanding how data is organised and transmitted within the SDK.
Supporting Types #
TimeStamp #
The TimeStamp
type contains information related to the timing of data acquisition:
milliseconds
(uint): The number of milliseconds since the last second.seconds_since_epoch
(uint): The number of seconds since the Unix epoch (January 1, 1970).
Array2 #
The Array2
type represents a two-dimensional array structure used in data packets:
num_tx
(uint): The number of transmitting elements.num_rx
(uint): The number of receiving elements.tx_locations[]
(Point2::float): An array of transmitting locations in a 2-D space.rx_locations[]
(Point2::float): An array of receiving locations in a 2-D space.
Array3 #
The Array3
type represents a three-dimensional array structure:
num_tx
(uint): The number of transmitting elements.num_rx
(uint): The number of receiving elements.tx_locations[]
(Point3::float): An array of transmitting locations in a 3-D space.rx_locations[]
(Point3::float): An array of receiving locations in a 3-D space.
Packet Types #
Each packet type contains specific fields along with common metadata. The metadata includes:
- underlying_type(string): Specifies the data type. Possible values include:
"float"
"cx"
"uint"
"byte"
- packet_type(string): Identifies the type of packet. Possible values include:
"Mat2"
"Mat3"
"PointCloud2"
"PointCloud3"
- AcquisitionInfo
centre_frequency
(uint): The centre frequency (Hz) of the data acquisitionnum_time_points
(uint): The total number of time points in the acquisitionnum_signals
(uint): The total number of signals recordednum_cycles
(uint): The number of cycles in a transmission pulseserial_number
(string): The serial number of the device, or"simulator"
for simulated datasetssample_rate
(uint): The sample rate (Hz) of the data acquisitionph_vel
(float): Phase velocity (m/s) used in the processingarray
(Array2 / Array3): The associated array of locations for the packettime_stamp
(TimeStamp): The timestamp for when the data was acquired
Mat2 #
The Mat2
packet type is defined as follows:
Rows
(uint): The number of rows in the matrix.Cols
(uint): The number of columns in the matrix.data[]
(underlying_type): An array containing the data values in the specified underlying type.
Mat3 #
The Mat3
packet type is defined as follows:
Rows
(uint): The number of rows in the matrix.Cols
(uint): The number of columns in the matrix.Slices
(uint): The number of slices in the three-dimensional matrix.data[]
(underlying_type): An array containing the data values in the specified underlying type.
PointCloud2 #
The PointCloud2
packet type is defined as follows:
nele
(uint): The number of elements in the point cloud.data[]
(Point2::underlying_type): An array containing the points in a 2-D space, represented in the specified underlying type.
PointCloud3 #
The PointCloud3
packet type is defined as follows:
nele
(uint): The number of elements in the point cloud.data[]
(Point3::underlying_type): An array containing the points in a 3-D space, represented in the specified underlying type.
This packet specification serves as a reference for developers looking to understand the structure and format of data within the SENSUS SDK. Properly handling these packet types is crucial for successful data processing and integration within applications.