ace_uds/message/services/
routine_control.rs1use crate::UdsError;
2use ace_macros::FrameCodec;
3
4#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, FrameCodec)]
5#[frame(error = UdsError)]
6pub struct RoutineControlRequest<'a> {
7 pub routine_control_type: RoutineControlType,
8 pub routine_identifier: [u8; 2],
9 pub routine_control_option_record: &'a [u8],
10}
11
12#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, FrameCodec)]
13#[frame(error = UdsError)]
14pub struct RoutineControlResponse<'a> {
15 pub routine_control_type: RoutineControlType,
16 pub routine_identifier: [u8; 2],
17 pub routine_info: Option<u8>,
18 pub routine_status_record: &'a [u8],
19}
20
21#[repr(u8)]
22#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, FrameCodec)]
23#[frame(error = UdsError)]
24pub enum RoutineControlType {
25 #[frame(id = 0x01)]
26 StartRoutine,
27 #[frame(id = 0x02)]
28 StopRoutine,
29 #[frame(id = 0x03)]
30 RequestRoutineResults,
31}