pub struct Connection { /* private fields */ }Implementations§
Source§impl Connection
Authenticated virtual connection can be used to send commands to device.
impl Connection
Authenticated virtual connection can be used to send commands to device.
Sourcepub async fn read_request(
&self,
endpoint: u16,
cluster: u32,
attr: u32,
) -> Result<Message>
pub async fn read_request( &self, endpoint: u16, cluster: u32, attr: u32, ) -> Result<Message>
Read attribute from device and return parsed matter protocol response.
Sourcepub async fn read_request2(
&self,
endpoint: u16,
cluster: u32,
attr: u32,
) -> Result<TlvItemValue>
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.
Sourcepub async fn invoke_request(
&self,
endpoint: u16,
cluster: u32,
command: u32,
payload: &[u8],
) -> Result<Message>
pub async fn invoke_request( &self, endpoint: u16, cluster: u32, command: u32, payload: &[u8], ) -> Result<Message>
Invoke command
Sourcepub async fn invoke_request2(
&self,
endpoint: u16,
cluster: u32,
command: u32,
payload: &[u8],
) -> Result<TlvItemValue>
pub async fn invoke_request2( &self, endpoint: u16, cluster: u32, command: u32, payload: &[u8], ) -> Result<TlvItemValue>
Invoke command and return result TLV
pub async fn write_request( &self, endpoint: u16, cluster: u32, attr: u32, payload: &[u8], ) -> Result<()>
Sourcepub async fn subscribe_attrs(
&self,
endpoint: Option<u16>,
cluster: Option<u32>,
attr: Option<u32>,
keep_subscriptions: bool,
) -> Result<Subscription>
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.
Sourcepub async fn subscribe_events(
&self,
endpoint: Option<u16>,
cluster: Option<u32>,
event: Option<u32>,
keep_subscriptions: bool,
) -> Result<Subscription>
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.
Sourcepub async fn im_unsubscribe_all(&self) -> Result<Message>
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.
Sourcepub fn set_auto_status_response(&self, enabled: bool)
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.
Sourcepub async fn invoke_request_timed(
&self,
endpoint: u16,
cluster: u32,
command: u32,
payload: &[u8],
timeout: u16,
) -> Result<Message>
pub async fn invoke_request_timed( &self, endpoint: u16, cluster: u32, command: u32, payload: &[u8], timeout: u16, ) -> Result<Message>
Invoke command with timed interaction
Sourcepub async fn recv_event(&self) -> Option<Message>
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.
Sourcepub fn try_recv_event(&self) -> Option<Message>
pub fn try_recv_event(&self) -> Option<Message>
Try receive event without blocking.
Sourcepub async fn reauth(
&self,
controller: &Controller,
node_id: u64,
controller_id: u64,
) -> Result<()>
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.