embedded_bacnet/application_protocol/services/
time_synchronization.rs1use crate::{
2 application_protocol::{
3 primitives::data_value::{Date, Time},
4 unconfirmed::UnconfirmedServiceChoice,
5 },
6 common::{
7 io::Writer,
8 tag::{ApplicationTagNumber, Tag, TagNumber},
9 },
10};
11
12#[derive(Debug, Clone)]
13#[cfg_attr(feature = "defmt", derive(defmt::Format))]
14pub struct TimeSynchronization {
15 pub date: Date,
16 pub time: Time,
17}
18
19impl TimeSynchronization {
20 pub fn encode(&self, writer: &mut Writer) {
21 writer.push(UnconfirmedServiceChoice::TimeSynchronization as u8);
22
23 let tag = Tag::new(TagNumber::Application(ApplicationTagNumber::Date), 4);
25 tag.encode(writer);
26 self.date.encode(writer);
27
28 let tag = Tag::new(TagNumber::Application(ApplicationTagNumber::Time), 4);
30 tag.encode(writer);
31 self.time.encode(writer);
32 }
33}