fuchsia.hardware.uwb

APIs for interacting with Ultra-Wideband vendor drivers.

Added: HEAD

PROTOCOLS

Snoop

Defined in fuchsia.hardware.uwb/vendor.fidl

The Snoop protocol is an output-only channel for monitoring UCI traffic. The snoop channel contains messages that are sent from the Host to the Controller (e.g. control packets, data packets). The snoop channel also contains responses sent from the Controller to the Host (e.g. response packets, notification packets, data packets).

WatchPacket

A hanging-get method that returns when packets have been transmitted or received. The server is allowed to drop packets if the client takes too long to call WatchPacket().

Request

<EMPTY>

Response

NameType
payload Snoop_WatchPacket_Result

Uci

Defined in fuchsia.hardware.uwb/vendor.fidl

The UCI protocol is the way the UWB HAL interfaces with the vendor chip via the Driver.

Send

Send serialized UCI packets to the UWB Controller via the Driver. The UWB HAL or driver aren't responsible for performing any packet segmentation or reassembly. Bytes will be sent to the UWB Controller as is.

NOTE: The UWB spec requires the host to wait for a response to a sent command before sending another (FiRa UWB UCI Generic Specification Version 3.0.0 Section 4.3.1). This method can be called multiple times to queue up data to be sent to the UWB Controller (e.g. when sending a segmented packet). However, it's the Host's responsibility to ensure only a single command is sent.

Request

NameType
payload UciSendRequest

Response

NameType
payload Uci_Send_Result

SessionInit

Perform vendor specific session initialization for a given session id.

Session initialization is done via the Session Init UCI command (FiRa UWB UCI Generic Specification Version 3.0.0 Section 7.2.1). This command is normally sent by the upper layers of the stack via Send(...). However, some Controllers may require vendor specific configuration during session initialization. This command instructs the Driver to perform that vendor specific initialization, inserting the necessary bytes into the UCI data stream.

Request

NameType
payload UciSessionInitRequest

Response

NameType
payload Uci_SessionInit_Result

WatchReceive

Watch for UCI packets from the UWB Controller. The UWB HAL or driver isn't responsible for performing any packet segmentation or reassembly. Bytes will be sent to the UWB Host as is.

Request

<EMPTY>

Response

NameType
payload Uci_WatchReceive_Result

STRUCTS

Uci_Send_Response

Defined in fuchsia.hardware.uwb/vendor.fidl

<EMPTY>

Uci_SessionInit_Response

Defined in fuchsia.hardware.uwb/vendor.fidl

<EMPTY>

TABLES

Packet

Defined in fuchsia.hardware.uwb/vendor.fidl

OrdinalFieldTypeDescription
data vector<uint8>:65540

Snoop_WatchPacket_Response

Defined in fuchsia.hardware.uwb/vendor.fidl

OrdinalFieldTypeDescription
packets vector<SnoopPacket>
dropped_sent uint32

The number of outbound packets dropped since the last response to WatchPacket(). These packets are excluded from packets. This is only non-zero when WatchPacket() is slow to poll.

dropped_received uint32

The number of inbound packets dropped since the last response to WatchPacket(). These packets are excluded from packets. This is only non-zero when WatchPacket() is slow to poll.

UciSendRequest

Defined in fuchsia.hardware.uwb/vendor.fidl

OrdinalFieldTypeDescription
packets vector<Packet>

UciSessionInitRequest

Defined in fuchsia.hardware.uwb/vendor.fidl

OrdinalFieldTypeDescription
session_id uint32

Uci_WatchReceive_Response

Defined in fuchsia.hardware.uwb/vendor.fidl

OrdinalFieldTypeDescription
packets vector<Packet>

UNIONS

SnoopPacket flexible

Defined in fuchsia.hardware.uwb/vendor.fidl

The full packet sent between the controller and the host, including packet headers.

Note: if the host or controller performed packet segmentation, the bytes represented here won't be reassembled and will be in segmented form. See FiRa UWB UCI Generic Specification Version 3.0.0 Section 4.4 for more information on segmentation and reassembly.

OrdinalVariantTypeDescription
to_controller_data Packet
from_controller_data Packet
command Packet
response Packet
notification Packet

Snoop_WatchPacket_Result strict

Defined in fuchsia.hardware.uwb/vendor.fidl

OrdinalVariantTypeDescription
response Snoop_WatchPacket_Response
framework_err internal

Uci_Send_Result strict

Defined in fuchsia.hardware.uwb/vendor.fidl

OrdinalVariantTypeDescription
response Uci_Send_Response
framework_err internal

Uci_SessionInit_Result strict

Defined in fuchsia.hardware.uwb/vendor.fidl

OrdinalVariantTypeDescription
response Uci_SessionInit_Response
framework_err internal

Uci_WatchReceive_Result strict

Defined in fuchsia.hardware.uwb/vendor.fidl

OrdinalVariantTypeDescription
response Uci_WatchReceive_Response
framework_err internal

CONSTANTS

NameValueTypeDescription
MAX_PACKET_SIZE 65540 uint32

SERVICES

Vendor

Defined in fuchsia.hardware.uwb/vendor.fidl

NameTypeTransport
uci fuchsia.hardware.uwb/Uci Channel
snoop fuchsia.hardware.uwb/Snoop Channel