<img src="../public/ico/white_64x64.ico" alt="hikvision-rs"/>
### 📄 [中文](README.zh.md) | 📄 [English](../README.md)
# ⚡ 这是什么?
**这是海康威视Camera Rust SDK,支持通用网络摄像头、通用USB摄像头、物联网摄像头和工业摄像头(USB、网络、CamL)**
### 支持 SDK
<table style="background:#000">
<tr>
<th><h3 style="color:#fff"><center>SDK</center></h3></th>
<th><h3 style="color:#fff"><center>Windows10</center></h3></th>
<th><h3 style="color:#fff"><center>Unix</center></h3></th>
<th><h3 style="color:#fff"><center>-</center></h3></th>
</tr>
<tr>
<td><center>MVS</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:red"><center>X</center></h4></td>
<td><h4 style="color:#aaa"><center>工业采集接口 (USB、CamL、GigE)</center></h4></td>
</tr>
<tr>
<td><center>NET</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:red"><center>X</center></h4></td>
<td><h4 style="color:#aaa"><center>通用网络接口</center></h4></td>
</tr>
<tr>
<td><center>USB</center></td>
<td><h4 style="color:red"><center>X</center></h4></td>
<td><h4 style="color:red"><center>X</center></h4></td>
<td><h4 style="color:#aaa"><center>通用USB接口</center></h4></td>
</tr>
<tr>
<td><center>OTAP</center></td>
<td><h4 style="color:red"><center>X</center></h4></td>
<td><h4 style="color:red"><center>X</center></h4></td>
<td><h4 style="color:#aaa"><center>物联网开放访问协议</center></h4></td>
</tr>
</table>
### SDK Support API
<table style="background:#000">
<tr>
<th><h3 style="color:#fff"><center>API</center></h3></th>
<th><h3 style="color:#fff"><center>MVS</center></h3></th>
<th><h3 style="color:#fff"><center>NET</center></h3></th>
<th><h3 style="color:#fff"><center>USB</center></h3></th>
<th><h3 style="color:#fff"><center>OTAP</center></h3></th>
<th><h3 style="color:#fff"><center>-</center></h3></th>
</tr>
<tr>
<td><center>exposure_auto</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:green"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>自动曝光</center></h4></td>
</tr>
<tr>
<td><center>gain_mode</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:green"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>自动增益</center></h4></td>
</tr>
<tr>
<td><center>Init SDK</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>初始化SDK</center></h4></td>
</tr>
<tr>
<td><center>Enumerate</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:red"><center>X</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>枚举设备</center></h4></td>
</tr>
<tr>
<td><center>Login</center></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>登录设备</center></h4></td>
</tr>
<tr>
<td><center>Open</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>打开设备</center></h4></td>
</tr>
<tr>
<td><center>Handle</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>创建句柄</center></h4></td>
</tr>
<tr>
<td><center>Log</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>日志输出</center></h4></td>
</tr>
<tr>
<td><center>Clean SDK</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>清理SDK</center></h4></td>
</tr>
<tr>
<td><center>Clean All</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>清理所有</center></h4></td>
</tr>
<tr>
<td><center>Destroy All</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>销毁</center></h4></td>
</tr>
<tr>
<td><center>Callback Sream</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>回调数据流</center></h4></td>
</tr>
<tr>
<td><center>Sream</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>数据流</center></h4></td>
</tr>
<tr>
<td><center>Fix Network</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:red"><center>X</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>自适应网络传输大小</center></h4></td>
</tr>
<tr>
<td><center>Preview</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>预览图像</center></h4></td>
</tr>
<tr>
<td><center>Capture Image</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>抓图</center></h4></td>
</tr>
</tr>
<tr>
<td><center>Save JPEG</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>存储JPEG格式</center></h4></td>
</tr>
<tr>
<td><center>GUI</center></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:green"><center>√</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:white"><center>-</center></h4></td>
<td><h4 style="color:#aaa"><center>图形化图像界面</center></h4></td>
</tr>
</table>
# ✨ 分支
```toml
[features]
net = []
mvs = []
ui = ["e-utils/ui"]
default = []
```
# 📖 示例
```toml
[dependencies]
hikvision = {version="0.1", feature=["mvs","net","ui"]}
```
### Examples
[初始化 Mvs SDK](examples/global_mvs.rs) | [初始化 Net SDK](examples/global_net.rs)
## `💡!重要:`
#### xxx
1. [Env.json](Examples/Env.json) **环境变量; `{origin}` 是特殊的关键词,记录原始目录**
```json
{
"envs": [
{
"key": "HCNET_LIB",
"value": "{origin}/libs/HCNet/lib"
},
{
"key": "HCNET_COM_LIB",
"value": "{origin}/libs/HCNet/lib/HCNetSDKCom"
},
{
"key": "HCMVS_LIB",
"value": "{origin}/libs/HCMvs/Win64_x64"
}
]
}
```
1. 添加海康威视摄像头的链接库到hikvision-rs
```sh
cargo run --example global_mvs
cargo run --example global_net
```
1. 添加SDK Cargo.toml
```toml
[dependencies]
hikvision = {version="0.1", feature=["mvs","net"]}
```
# 🚀 快速运行
```sh
# test global mvs init sdk
cargo run --example global_mvs
# test global net init sdk
cargo run --example global_net
```
# 🦊 已运用项目
### 通过hikvision-rs开发的图形化界面;
### 通过海康威视摄像头抓图,上传日志和图像与MES系统

# 🔭 为什么需要hikvision-rs?
# 🙋 参考项目与资料