0.安装rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

在中国大陆用替代方法

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rust.sh
sed -i 's|static.rust-lang.org|mirrors.ustc.edu.cn/rust-static|g' rust.sh
export RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup
chmod a+x rust.sh
./rust.sh

安装完成后

echo "RUSTUP_DIST_SERVER=https://mirrors.tuna.tsinghua.edu.cn/rustup"  >> ~/.cargo/env
  1. 添加wasm编译器
rustup target add wasm32-unknown-unknown

  1. 安装Trunk

Trunk是Sycamore的构建工具,类似于Javascript前端开发中的webpack

cargo install --locked trunk

Sycamore开发团队也在尝试开发专用的构建工具,但目前还是推荐使用 Trunk

  1. 建立一个新的sycamore项目
cargo new hello-sycamore
cd hello-sycamore
cargo add [email protected]

  1. 编辑项目中的 src/main.rs, 用下面的内容完全替代它
use sycamore::prelude::*;

fn main() {
    sycamore::render(|| "Hello, world!".into());
}
  1. 在项目的根目录下创建 index.html, 内容为
<!DOCTYPE html>
<html>
    <head></head>
    <body></body>
</html>
  1. 运行
trunk serve

将会构建你的应用,并在监听在 本机的8080端口,你用浏览器打开 http://localhost:8080 即可看到

AB 00 01 E2 40 91 16 00 00 00 00 00 75
AB 00 01 E2 40 91 16 00 00 00 00 20 95 01 00 00 06 21 00 95 70 42 0C 01 4F 53 32 4C 48 35 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AC 0D

3C 41 4C 3E 09

53 41 56 45 43 55 52 50 52 4F 54 4F 43 4F 4C

AB 00 01 E2 40 91 16 00 00 00 00 00 75
AB 00 01 E2 40 91 16 00 00 00 00 20 95 01 00 00 06 21 00 95 70 42 0C 02 4F 53 32 4C 48 35 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1A 65

3C 50 42 3E 09
53 41 56 45 43 55 52 50 52 4F 54 4F 43 4F 4C

发送 FD 给秤 就可以

秤回应

AB 05 01 04 0C 80 0E 04 01 04 00 00 58 (成功)

AB 00 01 E2 40 80 0D 00 80 00 00 00 DB (清零失败)

强制清零(重新开机归原点)
AB 00 01 E2 40 80-- 01 00 00 00 00 00 4F (命令)
AB 00 01 E2 40 80-- 0E 00 00 00 00 00 5C (回应)

AB 00 01 E2 40 80 --07 00 00 00 00 00 55
AB 00 01 E2 40 80 --0E 00 00 00 00 00 5C

AB 00 01 E2 40 80 --01 0A 00 00 00 00 59
AB 00 01 E2 40 80-- 0E 0A 00 00 00 00 66

AB 00 01 E2 40 --91 16-- 00 00 00 00 00 75

秤返回

AB 00 01 E2 40 --91 16-- 00 00 00 00 20 95 01 00 00 06 21 00 95 70 42 0C 01 4F 53 32 4C 48 35 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AC 0D

AB 00 00 04 D2 80 02-- 00 00 00 00 00 03 (读取皮重)

回应

AB 00 00 04 D2 80 02--03 6D 00 00 08 7B A9 00 01 03 00 00 00 00 74 92 (0kg)
AB 00 00 04 D2 80 02--03 6D 00 00 08 7B 29 00 01 03 80 00 00 18 C7 12 (0g)
AB 00 00 04 D2 80 02--00 BF 00 00 08 CA 29 00 01 03 00 00 00 00 89 13

AB 00 00 04 D2 80 02--03 6D 00 00 10 83 29 02 01 03 80 00--00 1C 00 00--00 06--80 00 00 18 C9 63
(6g)

AB 00 00 04 D2 80 02--03 6D 00 00 10 83 29 02 01 03 80 00--00 2A 00 00--00 14--80 00 00 16 C6 FE (20g)

AB 00 00 04 D2 80 02--03 6D 00 00 10 83 29 02 01 03 80 00 --00 96 00 00 --00 96 --00 00 00 00 F1 C2 (150g)

AB 00 00 04 D2 80 02 --03 6D 00 00 10 83 29 02 01 03 80 00 --17 84 00 00 --17 6E-- 80 00 00 16 AC 46
(5998g)
AB 00 00 04 D2 80 02 --03 6D 00 00 10 83 29 02 01 03 80 00 --17 84 00 00 --17 6C-- 80 00 00 16 E8 C5
(5996g)

AB 00 00 04 D2 80 02 --03 6D 00 00 10 83 29 02 01 03 80 00 --13 9E 00 00 --13 88 -80 00 00 16 4D 3D (5000g)
AB 00 00 04 D2 80 02 --03 6D 00 00 10 83 29 02 01 03 80 00 --13 A0 00 00 --13 8A -80 00 00 16 8E CB (5002g=0x138A)

预制皮重 (某型号,皮重要求 小于 6kg)
AB 00 00 04 D2 80 --05-- 00 5F 00 00 00 65
AB 00 00 04 D2 80 --0E-- 00 5F 00 00 00 6E (95)

AB 00 00 04 D2 80 05 00 60 00 00 00 66
AB 00 00 04 D2 80 0E 00 60 00 00 00 6F (96)

AB 00 00 04 D2 80 05 00 61 00 00 00 67
AB 00 00 04 D2 80 0E 00 61 00 00 00 70 (97)

AB 00 00 04 D2 80 --05-- 27 10-- 00 00 00 3D
AB 00 00 04 D2 80 --0D-- 27 81-- 00 00 00 B6 (0x2710=10kg--预置失败)

AB 00 00 04 D2 80 --05-- 13 88-- 00 00 00 A1
AB 00 00 04 D2 80 --0E-- 13 88-- 00 00 00 AA (0x1388=5kg--预置成功)

AB 00 00 04 D2 80 05 --15 7C-- 00 00 00 97
AB 00 00 04 D2 80 0E --15 7C --00 00 00 A0 (0x157C=5500g, 成功)

AB 00 00 04 D2 80 05 17 0C 00 00 00 29
AB 00 00 04 D2 80 0E 17 0C 00 00 00 32 (0x170C=5998, 成功)