Skip to main content

ace_uds/message/services/
control_dtc_setting.rs

1use 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}