1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
//! # `CANLink` HAL
//! <a id="en"></a>
//! [English](#en) | [中文](#zh)
//!
//! `CANLink` HAL is the core hardware abstraction layer of `CANLink`. It defines the
//! `CanBackend` trait, message types, and the backend registry used by real
//! hardware backends.
//!
//! ## Quick Start
//!
//! ```rust,ignore
//! use canlink_hal::{BackendConfig, CanBackend, CanMessage};
//! use canlink_tscan::TSCanBackend;
//!
//! # fn main() -> Result<(), canlink_hal::CanError> {
//! let mut backend = TSCanBackend::new();
//! let config = BackendConfig::new("tscan");
//!
//! backend.initialize(&config)?;
//! backend.open_channel(0)?;
//!
//! let msg = CanMessage::new_standard(0x123, &[1, 2, 3, 4])?;
//! backend.send_message(&msg)?;
//!
//! backend.close_channel(0)?;
//! backend.close()?;
//! # Ok(())
//! # }
//! ```
//!
//! ## Scope
//!
//! This crate is hardware-agnostic. The only real-hardware backend currently
//! landed in this repository is `canlink-tscan` (`LibTSCAN`).
//!
//! ## Related Crates
//!
//! - [`canlink-tscan-sys`](https://docs.rs/canlink-tscan-sys) - `LibTSCAN` FFI
//! - [`canlink-tscan`](https://docs.rs/canlink-tscan) - `LibTSCAN` backend
//! - [`canlink-cli`](https://docs.rs/canlink-cli) - CLI tool
//!
//! <a id="zh"></a>
//! [中文](#zh) | [English](#en)
//!
//! `CANLink` HAL 是 `CANLink` 的核心硬件抽象层,定义 `CanBackend` trait、消息类型以及后端注册表。
//!
//! ## 快速开始
//!
//! ```rust,ignore
//! use canlink_hal::{BackendConfig, CanBackend, CanMessage};
//! use canlink_tscan::TSCanBackend;
//!
//! # fn main() -> Result<(), canlink_hal::CanError> {
//! let mut backend = TSCanBackend::new();
//! let config = BackendConfig::new("tscan");
//!
//! backend.initialize(&config)?;
//! backend.open_channel(0)?;
//!
//! let msg = CanMessage::new_standard(0x123, &[1, 2, 3, 4])?;
//! backend.send_message(&msg)?;
//!
//! backend.close_channel(0)?;
//! backend.close()?;
//! # Ok(())
//! # }
//! ```
//!
//! ## 定位
//!
//! 本 crate 与具体硬件无关。当前仓库唯一已落地的真实硬件后端是 `canlink-tscan`(`LibTSCAN`)。
//!
//! ## 相关包
//!
//! - [`canlink-tscan-sys`](https://docs.rs/canlink-tscan-sys) - `LibTSCAN` FFI 绑定
//! - [`canlink-tscan`](https://docs.rs/canlink-tscan) - `LibTSCAN` 后端
//! - [`canlink-cli`](https://docs.rs/canlink-cli) - 命令行工具
//!
// Core modules
// New modules introduced in v0.2.0 (003-async-and-filtering)
// Conditional modules
// Periodic message sending (004 spec FR-001 to FR-006)
// ISO-TP protocol support (004 spec FR-007 to FR-019)
// Resource management documentation
// Re-exports
pub use CanBackendAsync;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use BackendState;
pub use BackendVersion;
// Periodic message sending re-exports (004 spec)
pub use ;
// ISO-TP protocol re-exports (004 spec)
pub use ;