bacnet_client/client/
audit.rs1use super::*;
2
3use bacnet_services::audit::{AuditLogQueryAck, AuditLogQueryRequest, AuditNotificationRequest};
4
5impl<T: TransportPort + 'static> BACnetClient<T> {
6 pub async fn confirmed_audit_notification(
10 &self,
11 destination_mac: &[u8],
12 request: &AuditNotificationRequest,
13 ) -> Result<(), Error> {
14 let mut service_data = BytesMut::new();
15 request.try_encode(&mut service_data)?;
16
17 let _ = self
18 .confirmed_request(
19 destination_mac,
20 ConfirmedServiceChoice::CONFIRMED_AUDIT_NOTIFICATION,
21 &service_data,
22 )
23 .await?;
24
25 Ok(())
26 }
27
28 pub async fn unconfirmed_audit_notification(
33 &self,
34 destination_mac: &[u8],
35 request: &AuditNotificationRequest,
36 ) -> Result<(), Error> {
37 let mut service_data = BytesMut::new();
38 request.try_encode(&mut service_data)?;
39
40 self.unconfirmed_request(
41 destination_mac,
42 UnconfirmedServiceChoice::UNCONFIRMED_AUDIT_NOTIFICATION,
43 &service_data,
44 )
45 .await
46 }
47
48 pub async fn audit_log_query(
53 &self,
54 destination_mac: &[u8],
55 request: &AuditLogQueryRequest,
56 ) -> Result<AuditLogQueryAck, Error> {
57 let mut service_data = BytesMut::new();
58 request.try_encode(&mut service_data)?;
59
60 let response = self
61 .confirmed_request(
62 destination_mac,
63 ConfirmedServiceChoice::AUDIT_LOG_QUERY,
64 &service_data,
65 )
66 .await?;
67
68 AuditLogQueryAck::decode(&response)
69 }
70}