#serial-port #scale #iot #server #toledo

app serialscale

An IOT server written in rust for reading weighing data on scales via serial port

1 unstable release

0.1.2 May 24, 2024

#605 in Hardware support

MIT license

16KB
365 lines

Serial Scale

An IOT server written in rust for reading weighing data on scales via serial port.

Features

  • very fast single binary with no dependencies
  • extensively tested with hurl
  • currently only supports Toledo scales (pull requests welcome).

Install

cargo install serialscale

Usage

Connects to a scale via USB serial port.

sudo serialscale /dev/ttyUSB0

You must identify in your operating system, according to the scale's connection type, which is the correct path.

For more options use:

serialscale --help

Development

sudo apt install libudev-dev pkg-config
cargo build --release

Releases

Currently, only binaries for generic versions of Linux are distributed across releases.

sudo apt install pkg-config libssl-dev musl-tools
rustup target add x86_64-unknown-linux-musl
cargo build --release --target x86_64-unknown-linux-musl

Tests

./target/release/serialscale -b 0 tests/test.dat
hurl --test tests/en/basic.hurl

./target/release/serialscale -b 0 tests/test.dat --unit Kg
hurl --test tests/en/basic.hurl

./target/release/serialscale -b 0 tests/test.dat -u Lb --port 8003
hurl --test tests/en/unit_lb.hurl

./target/release/serialscale -b 0 tests/test.dat --min-weight 3.67 -u Kg -p 8004
hurl --test tests/en/min_weight.hurl

./target/release/serialscale -b 0 tests/test.dat --max-weight 0 --port 8005
hurl --test tests/en/max_weight.hurl

./target/release/serialscale -b 0 tests/test.dat --min-tare 6  -p 8006
hurl --test tests/en/min_tare.hurl

./target/release/serialscale -b 0 tests/test.dat --max-tare 5 -u Kg -p 8007
hurl --test tests/en/max_tare.hurl

./target/release/serialscale -b 0 tests/test.dat -l pt -u Kg
hurl --test tests/pt/basic.hurl

./target/release/serialscale -b 0 tests/test.dat -u Lb -l pt --port 8003
hurl --test tests/pt/unit_lb.hurl

./target/release/serialscale -b 0 tests/test.dat --min-weight 3.67 -u Kg -l pt -p 8004
hurl --test tests/pt/min_weight.hurl

./target/release/serialscale -b 0 tests/test.dat --max-weight 0 -l pt --port 8005
hurl --test tests/pt/max_weight.hurl

./target/release/serialscale -b 0 tests/test.dat --min-tare 6 -l pt -p 8006
hurl --test tests/pt/min_tare.hurl

./target/release/serialscale --baud-rate 0 tests/test.dat --max-tare 5 -u Kg --lang pt -p 8007
hurl --test tests/pt/max_tare.hurl

Contributing

It's a very simple project. Any contribution is greatly appreciated.

Dependencies

~4–5MB
~102K SLoC