94 lines
2.8 KiB
Markdown
94 lines
2.8 KiB
Markdown
# MARTe IO Components
|
|
|
|
A collection of I/O components for the [MARTe2](https://vcis.f4e.europa.eu/marte2-docs/) real-time framework,
|
|
together with a Go-based web visualisation client.
|
|
|
|
## Components
|
|
|
|
| Component | Type | Description |
|
|
|-----------|------|-------------|
|
|
| [UDPStreamer](Docs/UDPStreamer.md) | DataSource | Streams MARTe2 signals to a single UDP client in real time |
|
|
| [SineArrayGAM](Docs/SineArrayGAM.md) | GAM | Generates continuous sinusoidal burst arrays (testing / demo) |
|
|
|
|
## Client Tools
|
|
|
|
| Tool | Description |
|
|
|------|-------------|
|
|
| [WebUI](Docs/WebUI.md) | Browser-based real-time plotter — connects to UDPStreamer via UDP, exposes data over WebSocket |
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# 1. Configure environment (edit paths to point at your MARTe2 builds)
|
|
source marte_env.sh
|
|
|
|
# 2. Build everything and run the demo application with the browser UI
|
|
cd Test/MARTeApp
|
|
./run.sh --webui
|
|
|
|
# 3. Open http://localhost:8080 in a browser
|
|
# Drag signals from the sidebar onto a plot panel to visualise them.
|
|
```
|
|
|
|
See the [Tutorial](Docs/Tutorial.md) for a step-by-step walkthrough.
|
|
|
|
## Building
|
|
|
|
### UDPStreamer library
|
|
|
|
```bash
|
|
source marte_env.sh
|
|
make -f Makefile.gcc TARGET=x86-linux
|
|
```
|
|
|
|
### Unit tests
|
|
|
|
```bash
|
|
source marte_env.sh
|
|
make -f Makefile.gcc TARGET=x86-linux test
|
|
./Build/x86-linux/Tests/GTest/MainGTest.ex --gtest_filter="UDPStreamer*"
|
|
```
|
|
|
|
### WebUI client
|
|
|
|
```bash
|
|
cd Client/WebUI
|
|
go build -o udpstreamer-webui ./...
|
|
```
|
|
|
|
## Repository Layout
|
|
|
|
```
|
|
.
|
|
├── Source/Components/DataSources/UDPStreamer/ # UDPStreamer DataSource + SineArrayGAM
|
|
├── Test/
|
|
│ ├── Components/DataSources/UDPStreamer/ # GTest unit tests
|
|
│ ├── GTest/ # GTest main entry point
|
|
│ └── MARTeApp/ # Demo MARTe2 application (cfg + run.sh)
|
|
├── Client/WebUI/ # Go WebSocket relay + browser UI
|
|
├── Docs/ # Reference documentation and tutorial
|
|
├── marte_env.sh # Environment setup (MARTe2_DIR, LD_LIBRARY_PATH)
|
|
└── Makefile.gcc / Makefile.inc # Top-level build system
|
|
```
|
|
|
|
## Prerequisites
|
|
|
|
| Dependency | Notes |
|
|
|------------|-------|
|
|
| MARTe2 | Must be built; path configured via `MARTe2_DIR` in `marte_env.sh` |
|
|
| MARTe2-components | IOGAM, LinuxTimer, WaveformGAM must be built |
|
|
| GCC ≥ 7 | C++98 mode (`-std=c++98`) |
|
|
| Go ≥ 1.21 | For the WebUI client only |
|
|
|
|
## Documentation
|
|
|
|
- [UDPStreamer DataSource reference](Docs/UDPStreamer.md)
|
|
- [SineArrayGAM reference](Docs/SineArrayGAM.md)
|
|
- [WebUI client reference](Docs/WebUI.md)
|
|
- [Wire protocol specification](Docs/Protocol.md)
|
|
- [Tutorial: streaming your first signals](Docs/Tutorial.md)
|
|
|
|
## License
|
|
|
|
EUPL v1.1
|