From 2252771ac3c5b34631588773ef3f58bb63e09469 Mon Sep 17 00:00:00 2001 From: Hubald Verzijl Date: Thu, 4 Dec 2025 17:15:14 +0100 Subject: [PATCH] Added code to create an executable/app, added some info in the readme. --- .gitignore | 3 ++- .vscode/tasks.json | 20 ++++++++++++++++++++ Cargo.toml | 9 +++++++++ bundle/CreateCNS.src | 13 +++++++++++++ bundle/readme.md | 11 +++++++++++ readme.md | 18 ++++++++++++++++++ 6 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 bundle/CreateCNS.src create mode 100644 bundle/readme.md create mode 100644 readme.md diff --git a/.gitignore b/.gitignore index 1709e7d..468af38 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /target .DS_Store -log_* \ No newline at end of file +log_* +*.icns \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 59dc1cd..eafa66d 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -63,6 +63,26 @@ // "isDefault": true } }, + { + "label": "cargo bundle - create app release", + "type": "shell", + "command": "~/.cargo/bin/cargo", // note: full path to the cargo + "args": [ + "bundle", + "--bin", + "main_gui", + "--release", + // "--target", + // "aarch64-apple-darwin", + // "x86_64-pc-windows-gnu" + // "--", + // "arg1" + ], + "group": { + "kind": "build", + // "isDefault": true + } + }, { "label": "Terminate All Tasks", "command": "echo ${input:terminate}", diff --git a/Cargo.toml b/Cargo.toml index 9cd870a..612805a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,3 +42,12 @@ features = [ [dependencies.tokio-serial] version = "5.4.4" + +[package.metadata.bundle.bin.main_gui] +name = "Bio-Z App" +identifier = "bioz-host-rs" +icon = ["bundle/bio-z.icns"] +version = "0.1.0" +copyright = "Hubald Verzijl" +category = "Developer Tool" +long_description = "App belonging to the Bio-Z setup." \ No newline at end of file diff --git a/bundle/CreateCNS.src b/bundle/CreateCNS.src new file mode 100644 index 0000000..a34257c --- /dev/null +++ b/bundle/CreateCNS.src @@ -0,0 +1,13 @@ +mkdir MyIcon.iconset +sips -z 16 16 Icon1024.png --out MyIcon.iconset/icon_16x16.png +sips -z 32 32 Icon1024.png --out MyIcon.iconset/icon_16x16@2x.png +sips -z 32 32 Icon1024.png --out MyIcon.iconset/icon_32x32.png +sips -z 64 64 Icon1024.png --out MyIcon.iconset/icon_32x32@2x.png +sips -z 128 128 Icon1024.png --out MyIcon.iconset/icon_128x128.png +sips -z 256 256 Icon1024.png --out MyIcon.iconset/icon_128x128@2x.png +sips -z 256 256 Icon1024.png --out MyIcon.iconset/icon_256x256.png +sips -z 512 512 Icon1024.png --out MyIcon.iconset/icon_256x256@2x.png +sips -z 512 512 Icon1024.png --out MyIcon.iconset/icon_512x512.png +cp Icon1024.png MyIcon.iconset/icon_512x512@2x.png +iconutil -c icns MyIcon.iconset +rm -R MyIcon.iconset diff --git a/bundle/readme.md b/bundle/readme.md new file mode 100644 index 0000000..5c8f407 --- /dev/null +++ b/bundle/readme.md @@ -0,0 +1,11 @@ +### Prepare +- Picture for icon from: https://pubs.acs.org/doi/10.1021/acsmeasuresciau.2c00033 +- For packing as OSX-app or Windows, when on OSX, install mingw-w64 first for cross-linking: +`brew install mingw-w64` + +### Steps +- Create 1024x1024 picture +- Transform to icon + - Using *Image2Icon app* + - Using terminal: `source CreateCNS.src` +- Adjust path in `tasks.json` use a custom cargo-bundle command \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..2e309c8 --- /dev/null +++ b/readme.md @@ -0,0 +1,18 @@ +# Bio-Impedance Amplifier | GUI +This repository contains Rust-based software for communicating with a custom-built bio-impedance amplifier. It provides several key features: + +- Single-frequency and frequency-sweep measurements +- Real-time visualization of magnitude and phase +- Support for both 2-lead and 4-lead measurements +- Data logging to `.csv` files +- Day and night display modes +- Control via on-screen buttons or keyboard shortcuts + +## How to Use This Software +1. Install the Rust toolchain and run the software using: + ```bash + cargo run --bin main_gui --release + ``` +2. Alternatively, a precompiled executable can be used instead of building from source. +3. The software uses the `postcard-rpc` crate to communicate directly with the USB hardware device’s endpoints. After connecting the hardware via USB, the device should automatically connect, and the indicator dot in the top-right corner will turn green. +4. Check the **Shortcuts** tab for useful information on available keyboard commands.