[][src]Trait bluetooth_hci::host::HciHeader

pub trait HciHeader {
    const HEADER_LENGTH: usize;

    fn new(opcode: Opcode, param_len: usize) -> Self;
fn copy_into_slice(&self, buf: &mut [u8]); }

Trait to define a command packet header.

See the Bluetooth Specification Vol 2, Part E, section 5.4.1. The command packet header contains an opcode (comprising a 6-bit OGF and 10-bit OCF) and a 1-byte parameter length. The packet itself then contains various parameters as defined by the Bluetooth specification.

Before this command header, many (all?) Bluetooth implementations include a 1-byte packet type preceding the command header. This version of the HciHeader is implemented by uart::CommandHeader, while versions without the packet byte are implemented by cmd_link::Header and event_link::NoCommands.

Associated Constants

const HEADER_LENGTH: usize

Defines the length of the packet header. With the packet byte, this is 4. Without it, the length shall be 3.

Loading content...

Required methods

fn new(opcode: Opcode, param_len: usize) -> Self

Returns a new header with the given opcode and parameter length.

fn copy_into_slice(&self, buf: &mut [u8])

Serialize the header into the given buffer, in Bluetooth byte order (little-endian).

Panics

Panics if buf.len() < Self::HEADER_LENGTH

Loading content...

Implementors

impl HciHeader for Header[src]

impl HciHeader for NoCommands[src]

impl HciHeader for CommandHeader[src]

Loading content...