First iteration

This commit is contained in:
Martino Ferrari
2026-05-07 16:47:32 +02:00
commit e3d621c425
12 changed files with 5839 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
# RTM3004 Remote Scope
A Rust-based cross-platform UI for controlling and acquiring data from a Rohde & Schwarz RTM3004 oscilloscope.
## Features
- **Ethernet Connectivity**: Connect via Raw TCP (Port 5025).
- **Fast Segmentation**: High-speed internal acquisition with bulk binary download.
- **Real-time Visualization**: Downsampled plots using `egui_plot`.
- **Disk Streaming**: Save full-resolution data to Apache Parquet files for easy analysis in Python/Pandas.
- **Cross-platform**: Works on Windows and Linux.
## Tech Stack
- **UI**: [egui](https://github.com/emilk/egui) / [eframe](https://github.com/emilk/egui/tree/master/crates/eframe)
- **Plotting**: [egui_plot](https://github.com/emilk/egui_plot)
- **Data Storage**: [Parquet](https://crates.io/crates/parquet)
- **Communication**: SCPI over TCP
## Usage
1. Connect the RTM3004 to your network via Ethernet.
2. Ensure the scope has an IP address (check under Setup -> Network).
3. Run the application:
```bash
cargo run --release
```
4. Enter the IP address and click **Connect**.
5. Configure your segments and click **Start Acquisition**.
## Dependencies
Linux users may need the following libraries:
- `libxcb`
- `libxkbcommon`
- `libwayland` (if using Wayland)
- `libfontconfig`
Refer to the [egui documentation](https://github.com/emilk/egui/blob/master/README.md) for detailed platform-specific requirements.