View Categories

Packet Specifications

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 acquisition
    • num_time_points (uint): The total number of time points in the acquisition
    • num_signals (uint): The total number of signals recorded
    • num_cycles (uint): The number of cycles in a transmission pulse
    • serial_number (string): The serial number of the device, or "simulator" for simulated datasets
    • sample_rate (uint): The sample rate (Hz) of the data acquisition
    • ph_vel (float): Phase velocity (m/s) used in the processing
    • array (Array2 / Array3): The associated array of locations for the packet
    • time_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.