Skip to main content

Connection

Struct Connection 

Source
pub struct Connection { /* private fields */ }

Implementations§

Source§

impl Connection

Authenticated virtual connection can be used to send commands to device.

Source

pub async fn read_request( &self, endpoint: u16, cluster: u32, attr: u32, ) -> Result<Message>

Read attribute from device and return parsed matter protocol response.

Source

pub async fn read_request2( &self, endpoint: u16, cluster: u32, attr: u32, ) -> Result<TlvItemValue>

Read attribute from device and return tlv with attribute value. Reassembles chunked reports (MoreChunkedMessages) transparently.

Source

pub async fn invoke_request( &self, endpoint: u16, cluster: u32, command: u32, payload: &[u8], ) -> Result<Message>

Invoke command

Source

pub async fn invoke_request2( &self, endpoint: u16, cluster: u32, command: u32, payload: &[u8], ) -> Result<TlvItemValue>

Invoke command and return result TLV

Source

pub async fn write_request( &self, endpoint: u16, cluster: u32, attr: u32, payload: &[u8], ) -> Result<()>

Source

pub async fn subscribe_attrs( &self, endpoint: Option<u16>, cluster: Option<u32>, attr: Option<u32>, keep_subscriptions: bool, ) -> Result<Subscription>

Subscribe to attribute changes. None path fields act as wildcards. Set keep_subscriptions = true when adding a second subscription on the same connection so the device does not cancel the first one.

Handles the full subscribe transaction (chunked priming report, IM StatusResponse acks, SubscribeResponse) and returns a Subscription delivering decoded updates; updates are acked automatically by the background read loop.

Source

pub async fn subscribe_events( &self, endpoint: Option<u16>, cluster: Option<u32>, event: Option<u32>, keep_subscriptions: bool, ) -> Result<Subscription>

Subscribe to events. None path fields act as wildcards. See Connection::subscribe_attrs for transaction details.

Source

pub async fn im_unsubscribe_all(&self) -> Result<Message>

Cancel all subscriptions on this session by sending a SubscribeRequest with KeepSubscriptions = false and no paths. The device drops all prior subscriptions.

Source

pub fn set_auto_status_response(&self, enabled: bool)

Enable or disable automatic IM StatusResponse replies to unsolicited ReportData (enabled by default). Disable only when acking reports manually via the raw message API.

Source

pub async fn invoke_request_timed( &self, endpoint: u16, cluster: u32, command: u32, payload: &[u8], timeout: u16, ) -> Result<Message>

Invoke command with timed interaction

Source

pub async fn recv_event(&self) -> Option<Message>

Receive next unsolicited raw message not handled elsewhere (subscription reports are delivered decoded via Subscription; only reports with an unknown subscription id and other unsolicited messages end up here). Returns None when connection is closed. Messages may be dropped when nobody drains this channel.

Source

pub fn try_recv_event(&self) -> Option<Message>

Try receive event without blocking.

Source

pub async fn reauth( &self, controller: &Controller, node_id: u64, controller_id: u64, ) -> Result<()>

Re-run CASE over the existing transport channel without tearing it down. Stops the active read loop, runs auth_sigma (with BUSY retry), swaps the session, and restarts the read loop – all on the same underlying UDP channel registration.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V