Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
110 changes: 75 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,39 +10,59 @@

# Arm SDS for VS Code

The Arm SDS extension for VS Code simplifies data capturing and regression testing with the [SDS-Framework](https://www.keil.arm.com/packs/sds-arm).
The extension is an user interface for the [SDSIO-Server](https://arm-software.github.io/SDS-Framework/main/utilities.html#sdsio-server) that is configured using an `*.sdsio.yml` control file.
The Arm SDS extension for VS Code simplifies data capture, inspection, and regression testing with the [SDS-Framework](https://www.keil.arm.com/packs/sds-arm).
The extension provides a VS Code user interface for [SDSIO Server](https://arm-software.github.io/SDS-Framework/main/utilities.html#sdsio-server) and uses an `*.sdsio.yml` control file to define the active SDS workspace.

## SDS View
## SDS Explorer

The **SDS View** shows SDS data files in the directories that are configured in the `*.sdsio.yml` control file.
At start it allows to create or open a `*.sdsio.yml` control file.
The **SDS Explorer** shows the active SDS configuration, SDSIO controls, stream labels, SDS groups, metadata files, and recorded SDS data files in one view.
If no configuration is selected, the view offers actions to create or open an `*.sdsio.yml` file.

![SDS View context menu](media/screenshots/sds-context-menu.png "SDS View context menu")
![SDS Explorer context menu](media/screenshots/sds-context-menu.png "SDS Explorer context menu")
### Toolbar actions:

Action Buttons:
![Toolbar](media/screenshots/toolbar.png)

- **Connect / Disconnect** starts or stops the SDSIO monitor connection.
- **Record** captures new SDS data files from the target.
- **Playback** starts the regression test using the `play:` steps defined in the `*.sdsio.yml` control file.
- **Play** starts playback using the `play:` steps defined in the active `*.sdsio.yml` control file.
- **Stop** stops the current recording or playback session.
- **Open Configuration**, **Create Configuration**, and **Close Configuration** manage the active SDS configuration.

When a SDS data file is opened a corresponding [metadata file](https://arm-software.github.io/SDS-Framework/main/theory.html#yaml-metadata-format) provides information for formatting.
The data viewer provide a cursor that synchronies multiple data streams.
### Context menu actions for SDS files include:

Example Video Stream:
<img src="media/screenshots/sds-file-context-menu.png" align="left" style="padding-right:20px"/>

![sds data view](./media/screenshots/data-video-telemtry.png)
- **Check Data File** to run SDS Check on a selected `.sds` file.
- **Create / Edit Metadata (YAML)** to create or open the corresponding `*.sds.yml` metadata file.
- **Open Media Viewer** for image, video, or audio streams.
- **Export SDS to CSV** for decoded sensor data.
- **Open SDS Viewer** for sensor data and line charts.

Example Audio Stream:
<br clear="all"/>
When an SDS data file is opened, the corresponding [metadata file](https://arm-software.github.io/SDS-Framework/main/theory.html#yaml-metadata-format) provides stream names, data types, scaling, units, and media information.
The data, audio, image, and video viewers synchronize their cursors so related streams can be inspected together.

![sds data audio](./media/screenshots/data-audio.png)
### Example Video Stream:

![SDS video telemetry view](./media/screenshots/data-video-telemtry.png)

### Example Audio Stream:

![SDS audio data view](./media/screenshots/data-audio.png)

## Usage

### 1. Create a Control File
### 1. Create or Open an SDS Configuration

![SDS Explorer with no active configuration](./media/screenshots/file-explorer-empty.png)

![file explorer if showing create and select buttons if no sdsio project is opened](./media/screenshots/file-explorer-empty.png)
Open the SDS sidebar from the Activity Bar.
Click **New SDS Configuration** and enter a name for your project, for example `target-a`.
This creates a `target-a.sdsio.yml` file in your workspace root and selects it as the active SDS configuration.

Open the SDS Tools sidebar (Activity Bar icon). Click **New SDS Configuration** and enter a name for your project (e.g., `target-a`). This creates a `target-a.sdsio.yml` file in your workspace root with a template.
You can also use **Open SDS Configuration** to open an existing `*.sdsio.yml` file.
If the file is outside the current workspace, the extension opens that folder and remembers the selected configuration.

The file looks like:

Expand All @@ -52,18 +72,24 @@ sdsio:
usb:
workdir: .
metadir: .
# flag-info:
# - 0: Flag 0
# - 1: Flag 1
flag-info:
- 0: Flag 0
- 1: Flag 1
- 2: Flag 2
- 3: Flag 3
- 4: Flag 4
- 5: Flag 5
- 6: Flag 6
- 7: Flag 7
```

### 2. Configure Paths & Flags
### 2. Configure Paths and Flags

Edit your `.sdsio.yml` to set:

- `workdir` directory where SDS recording files are saved (`.sds` files)
- `metadir` directory containing metadata files (`.sds.yml` files)
- `flag-info` custom labels for flags 0–7 (optional)
- `workdir` - directory where SDS recording files are saved (`.sds` files)
- `metadir` - directory containing metadata files (`.sds.yml` files)
- `flag-info` - custom labels for flags 0-7

Example:

Expand All @@ -76,27 +102,41 @@ flag-info:
- 2: Error
```

### 3. Open a Recorder Session
The extension provides validation and editor completion for SDS configuration and metadata files, including `*.sdsio.yml`, `*.sds.yml`, and `*.sds.yaml`.

![sdsio flags view without active connection](./media/screenshots/sdsio-flags-connect.png)
### 3. Connect and Control SDSIO

Click the **Connect** button in the SDSIO Interface view (sidebar). If `tools/sdsio-server` is available, the extension launches it with your active `.sdsio.yml` as the control file. Once connected:
![SDS flags view without an active connection](./media/screenshots/sdsio-flags-connect.png)

- **Record** — Start recording SDS data from the device
- **Play** — Play back previously recorded data
- **Flags** — Toggle flags 0–7 to control behavior on the device
Click **Connect SDSIO Monitor** in the SDS Explorer toolbar.
If `tools/sdsio-server` is available, the extension launches it with your active `.sdsio.yml` as the control file.
Once connected:

Renamed flag labels appear immediately and persist in your `.sdsio.yml`.
- **Record** - Start recording SDS data from the device
- **Play** - Play back previously recorded data
- **Stop** - Stop the active recording or playback session
- **Flags** - Toggle flags 0-7 to control behavior on the device

![alt text](media/screenshots/sdsio-flags-rename.png)
Renamed flag labels appear in the SDS Explorer and persist in your `.sdsio.yml`.

### 4. View & Export Your Data
![Renaming an SDS flag label](media/screenshots/sdsio-flags-rename.png)

### 4. View and Export Your Data

The SDS Explorer groups SDS files by stream name and shows associated metadata where available.
Select a `.sds` file to open it, or use the context menu for more actions.

- Sensor data opens in the SDS Viewer with interactive line charts, zooming, panning, block labels, and CSV export.
- Audio streams open in the Audio Viewer with the same chart cursor and playback controls.
- Image and video streams open in media viewers with frame navigation and file statistics.
- Cursor synchronization keeps data, audio, image, and video views aligned by timestamp.
- **Check Data File** runs SDS Check for a selected `.sds` file.

The SDS File explorer shows the SDS data files.
## Links

- [SDS-Framework](https://arm-software.github.io/SDS-Framework/main/index.html)

- [SDS-YAML Metadata Formoat](https://arm-software.github.io/SDS-Framework/main/theory.html#yaml-metadata-format)
- [SDSIO Control File](https://arm-software.github.io/SDS-Framework/main/utilities.html#sdsio-control-file-sdsioyml)
## License

Apache-2.0
Binary file modified media/screenshots/data-audio.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified media/screenshots/data-video-telemtry.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified media/screenshots/file-explorer-empty.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified media/screenshots/sds-context-menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/screenshots/sds-file-context-menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified media/screenshots/sdsio-flags-connect.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified media/screenshots/sdsio-flags-rename.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added media/screenshots/toolbar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading