rsiot/components/cmp_linux_can/
error.rs1use std::io;
2
3use crate::{
4 components::shared_tasks, components_config::can_general::CanFrame, executor::ComponentError,
5};
6
7use super::COMPONENT_NAME;
8
9#[allow(missing_docs)]
10#[derive(Debug, thiserror::Error)]
11pub enum Error {
12 #[error("{COMPONENT_NAME} | FrameConversion: {0:?}")]
13 FrameConversion(CanFrame),
14
15 #[error("{COMPONENT_NAME} | InterfaceDetails: {0:?}")]
16 InterfaceDetails(String),
17
18 #[error("{COMPONENT_NAME} | InterfaceDown: {0:?}")]
19 InterfaceDown(String),
20
21 #[error("{COMPONENT_NAME} | InterfaceOpen: {0:?}")]
22 InterfaceOpen(String),
23
24 #[error("{COMPONENT_NAME} | InterfaceState: {0:?}")]
25 InterfaceState(String),
26
27 #[error("{COMPONENT_NAME} | InterfaceUp: {0:?}")]
28 InterfaceUp(String),
29
30 #[error("{COMPONENT_NAME} | InvalidId: {0}")]
31 InvalidId(u64),
32
33 #[error("{COMPONENT_NAME} | ProcessExecution: {0}")]
34 ProcessExecution(io::Error),
35
36 #[error("{COMPONENT_NAME} | ReadFrame: {0}")]
37 ReadFrame(socketcan::Error),
38
39 #[error("{COMPONENT_NAME} | ReadFrame: {0}")]
40 ReadFrame2(io::Error),
41
42 #[error("{COMPONENT_NAME} | SetFilters: {0}")]
43 SetFilters(io::Error),
44
45 #[error("{COMPONENT_NAME} | SocketOpen: {0}")]
46 SocketOpen(io::Error),
47
48 #[error("{COMPONENT_NAME} | Sudo: {0}")]
49 Sudo(String),
50
51 #[error("{COMPONENT_NAME} | TaskEnd")]
52 TaskEnd,
53
54 #[error("{COMPONENT_NAME} | TaskEndInput")]
55 TaskEndInput,
56
57 #[error("{COMPONENT_NAME} | TaskEndOutput")]
58 TaskEndOutput,
59
60 #[error("{COMPONENT_NAME} | TaskEndRecvFromCan")]
61 TaskEndRecvFromCan,
62
63 #[error("{COMPONENT_NAME} | TaskEndSendToCan")]
64 TaskEndSendToCan,
65
66 #[error("{COMPONENT_NAME} | TaskMpscToBroadcast")]
67 TaskMpscToBroadcast(#[from] shared_tasks::mpsc_to_broadcast::Error),
68
69 #[error("{COMPONENT_NAME} | TokioSyncMpscSend")]
70 TokioSyncMpscSend,
71
72 #[error("{COMPONENT_NAME} | TokioTaskJoin: {0}")]
73 TokioTaskJoin(#[from] tokio::task::JoinError),
74
75 #[error("{COMPONENT_NAME} | WriteFrame: {0}")]
76 WriteFrame(io::Error),
77
78 #[error("{COMPONENT_NAME} | WriteFrame: {0}")]
79 WriteFrame2(socketcan::Error),
80}
81
82impl From<Error> for ComponentError {
83 fn from(value: Error) -> Self {
84 ComponentError::Execution(value.to_string())
85 }
86}