1use crate::{client::UdsClient, ClientError};
4use ace_sim::node::SimNode;
5
6pub const SIM_MAX_FRAME: usize = 4096;
12
13pub const SIM_MAX_OUTBOX: usize = 16;
15
16impl<const N: usize> SimNode<SIM_MAX_FRAME, SIM_MAX_OUTBOX> for UdsClient<N> {
21 type Error = ClientError;
22
23 fn address(&self) -> &ace_sim::io::NodeAddress {
24 UdsClient::address(self)
25 }
26
27 fn handle(
28 &mut self,
29 src: &ace_sim::io::NodeAddress,
30 data: &[u8],
31 now: ace_sim::clock::Instant,
32 ) -> Result<(), Self::Error> {
33 UdsClient::handle(self, src, data, now)
34 }
35
36 fn tick(&mut self, now: ace_sim::clock::Instant) -> Result<(), Self::Error> {
37 UdsClient::tick(self, now)
38 }
39
40 fn drain_outbox(
41 &mut self,
42 out: &mut heapless::Vec<
43 (ace_sim::io::NodeAddress, heapless::Vec<u8, SIM_MAX_FRAME>),
44 SIM_MAX_OUTBOX,
45 >,
46 ) -> usize {
47 UdsClient::drain_outbox(self, out)
48 }
49}
50
51