# CANLink TSCan Sys
[](https://crates.io/crates/canlink-tscan-sys)
[](https://docs.rs/canlink-tscan-sys)
[](../LICENSE-MIT)
<a id="en"></a>
CANLink TSCan Sys provides low-level, unsafe Rust FFI bindings to the LibTSCAN C API.
## Warning
This crate exposes raw C functions. For a safe, high-level API, use `canlink-tscan` instead.
## Validation Scope
Real-hardware regression in this repository is limited to TOSUN-related devices. LibTSCAN documentation lists more device types on the same backend path, but they are not individually validated here.
## Platform Support
- Windows 10/11 x64 (validated)
- LibTSCAN runtime required (`libTSCAN.dll` + `libTSCAN.lib`)
- LibTSCAN is not distributed by this project
## Installation
```toml
[dependencies]
canlink-tscan-sys = "0.3.0"
```
## Basic Usage
```rust,no_run
use canlink_tscan_sys::*;
use std::ptr;
unsafe {
initialize_lib_tscan(true, false, true);
let mut device_count = 0;
tscan_scan_devices(&mut device_count);
let mut handle = 0;
tscan_connect(ptr::null(), &mut handle);
// ... use device ...
tscan_disconnect_by_handle(handle);
finalize_lib_tscan();
}
```
## Build and Runtime Requirements
- Provide `libTSCAN.dll` and `libTSCAN.lib` (x64) during build.
- At runtime, `libTSCAN.dll` must be in the executable directory or in `PATH`.
- See `docs/guides/libtscan-setup-guide.md` for setup details.
## Related Crates
- [canlink-hal](https://crates.io/crates/canlink-hal) - HAL abstraction
- [canlink-tscan](https://crates.io/crates/canlink-tscan) - Safe LibTSCAN backend
- [canlink-cli](https://crates.io/crates/canlink-cli) - CLI tool
## Documentation
- [API docs](https://docs.rs/canlink-tscan-sys)
## License
MIT OR Apache-2.0
<a id="zh"></a>
CANLink TSCan Sys 提供 LibTSCAN C API 的底层 Rust FFI 绑定(不安全接口)。
## 警告
此 crate 直接暴露 C 函数。若需要安全、高层 API,请使用 `canlink-tscan`。
## 验证范围
当前仓库的实机回归仅覆盖同星 / TOSUN 相关硬件。LibTSCAN 文档列出的其他设备类型尚未逐项验证。
## 平台支持
- Windows 10/11 x64(已验证)
- 需要 LibTSCAN 运行库(`libTSCAN.dll` + `libTSCAN.lib`)
- 本项目不分发 LibTSCAN 文件
## 安装
```toml
[dependencies]
canlink-tscan-sys = "0.3.0"
```
## 基础用法
```rust,no_run
use canlink_tscan_sys::*;
use std::ptr;
unsafe {
initialize_lib_tscan(true, false, true);
let mut device_count = 0;
tscan_scan_devices(&mut device_count);
let mut handle = 0;
tscan_connect(ptr::null(), &mut handle);
// ... 使用设备 ...
tscan_disconnect_by_handle(handle);
finalize_lib_tscan();
}
```
## 构建与运行要求
- 构建时提供 `libTSCAN.dll` 与 `libTSCAN.lib`(x64)。
- 运行时 `libTSCAN.dll` 需在可执行文件目录或 `PATH` 中。
- 具体配置参考 `docs/guides/libtscan-setup-guide.md`。
## 相关包
- [canlink-hal](https://crates.io/crates/canlink-hal) - HAL 抽象层
- [canlink-tscan](https://crates.io/crates/canlink-tscan) - 安全的 LibTSCAN 后端
- [canlink-cli](https://crates.io/crates/canlink-cli) - 命令行工具
## 文档
- [API 文档](https://docs.rs/canlink-tscan-sys)
## 许可证
MIT OR Apache-2.0