ace_uds/message/services/
control_dtc_setting.rs1use crate::UdsError;
2use ace_macros::FrameCodec;
3
4#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, FrameCodec)]
5#[frame(error = UdsError)]
6pub struct ControlDTCSettingRequest<'a> {
7 pub dtc_setting_type: DtcSettingType,
8 pub dtc_setting_control_option_record: &'a [u8],
9}
10
11#[repr(u8)]
12#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, FrameCodec)]
13#[frame(error = UdsError)]
14pub enum DtcSettingType {
15 #[frame(id_pat = "0x00 | 0x03..=0x3F | 0x7F")]
16 IsoSaeReserved(u8),
17 #[frame(id = 0x01)]
18 On,
19 #[frame(id = 0x02)]
20 Off,
21 #[frame(id_pat = "0x40..=0x5F")]
22 VehicleManufacturerSpecific(u8),
23 #[frame(id_pat = "0x60..=0x7E")]
24 SystemSupplierSpecific(u8),
25}
26
27#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, FrameCodec)]
28#[frame(error = UdsError)]
29pub struct ControlDTCSettingResponse {
30 pub dtc_setting_type: DtcSettingType,
31}