Skip to content

doublechaintech/smart-scale-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Smart Scale (Rust)

智能秤系统 Rust 重构版

功能特性

  • 电子秤 - 支持科利/耀华协议,串口通信
  • 车牌识别 - 多摄像头端点,HTTP 触发/读取
  • IC卡 - 串口读卡器支持
  • 数据上报 - HTTP POST 上报到服务器
  • 日志系统 - UDP 远程日志 + 控制台输出
  • 配置管理 - 远程 YAML + 本地回退

快速开始

# 编译
cargo build --release

# 运行 (Mock 模式)
SCALE_MOCK=true cargo run --release

# 运行 (真实模式)
SCALE_PORT=/dev/ttyS1 SCALE_BAUD_RATE=9600 cargo run --release

配置

环境变量

变量 默认值 说明
CONFIG_URL http://localhost:8888/config.yml 远程配置 URL
CONFIG_PATH config.yml 本地配置文件
PORT 8080 HTTP 服务端口
SCALE_PORT /dev/ttyUSB0 秤串口
SCALE_BAUD_RATE 9600 串口波特率
SCALE_TYPE keli 秤类型 (keli/yaohua)
SCALE_MOCK false Mock 模式
LPR_MOCK false LPR Mock 模式
ICCARD_MOCK false IC卡 Mock 模式
REPORT_MOCK false 上报 Mock 模式
LOG_SERVER_ENABLED false UDP 日志
LOG_SERVER_IP 127.0.0.1 UDP 日志服务器 IP
LOG_SERVER_PORT 9999 UDP 日志服务器端口

YAML 配置格式

scale:
  port: /dev/ttyS1
  baudRate: 9600
  minWeight: 10
  mock: true

lpr:
  mock: true
  waitTime: 2000
  endpoints:
    - name: front
      loginUrl: http://192.168.0.211/login.php
      triggerURL: http://192.168.0.211/avstrigger.php
      authToken: xxx

logServer:
  ip: 101.200.75.8
  port: 54321
  enabled: true

log:
  opened: true

report:
  loginUrl: https://wxapp.xhl365.cn/jingou/secUserManager/login
  reportUrl: https://wxapp.xhl365.cn/jingou/smartScaleManager/pushMixData/
  delay: 200
  mock: true

iccard:
  port: /dev/ttyUSB0
  baudRate: 9600
  mock: true

测试

# 运行所有测试
cargo test --release

# 带日志运行
RUST_LOG=info cargo test --release

架构

smart-scale-rs/
├── src/
│   ├── main.rs           # 主程序 FSM 状态机
│   ├── config/mod.rs     # 环境变量配置
│   ├── configserver/     # 远程配置服务
│   ├── scale/            # 电子秤模块
│   ├── lpr/              # 车牌识别模块
│   ├── iccard/           # IC卡模块
│   ├── report/           # 数据上报模块
│   ├── log/              # 日志模块
│   ├── server/           # HTTP 服务
│   └── time.rs           # 时间工具
└── tests/               # 集成测试

与 Go 版本对比

指标 Go Rust
代码行数 1883 2353
文件数 17 11
依赖 5+ 15+
编译时间 ~2s ~10s
二进制大小 ~15MB ~7MB

Rust 代码量多 25% 主要原因:

  • 显式错误处理 (Result/Option)
  • 严格的类型系统
  • 模块化设计

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages