rsiot/components_config/uart_master/
error.rs

1use crate::{components::shared_tasks, components_config::master_device, executor::ComponentError};
2
3#[allow(missing_docs)]
4#[derive(Debug, thiserror::Error)]
5pub enum Error {
6    #[error("CmpOutput: {0}")]
7    CmpOutput(ComponentError),
8
9    #[error("FnOutput: {0}")]
10    FnInput(anyhow::Error),
11
12    #[error("FnOutput: {0}")]
13    FnOutput(anyhow::Error),
14
15    #[error("TokioTaskJoin: {0}")]
16    TokioTaskJoin(#[from] tokio::task::JoinError),
17
18    #[error("TaskEndUartComm")]
19    TaskEndUartComm,
20
21    #[error("TokioSyncMpscSend")]
22    TokioSyncMpscSend,
23
24    #[error(transparent)]
25    TaskFilterIdenticalData(shared_tasks::filter_identical_data::Error),
26
27    #[error(transparent)]
28    TaskMpscToMsgBus(shared_tasks::mpsc_to_msgbus::Error),
29
30    #[error("UartRead: {0}")]
31    UartRead(String),
32
33    #[error("UartWrite: {0}")]
34    UartWrite(String),
35
36    #[error(transparent)]
37    TaskMsgbusToBroadcast(shared_tasks::msgbus_to_broadcast::Error),
38
39    #[error("GpioSetup: {0}")]
40    GpioSetup(String),
41
42    #[error("GpioPinSet: {0}")]
43    GpioPinSet(String),
44
45    #[error("OpenSerialPort: {0}")]
46    OpenSerialPort(String),
47
48    #[error(transparent)]
49    Device(master_device::Error),
50
51    #[error("BufferFull")]
52    BufferFull,
53}
54
55impl From<Error> for ComponentError {
56    fn from(value: Error) -> Self {
57        ComponentError::Execution(value.to_string())
58    }
59}