diff --git a/README.md b/README.md index efc45ff..10efc1e 100644 --- a/README.md +++ b/README.md @@ -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: + -![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: +
+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: @@ -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: @@ -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 diff --git a/media/screenshots/data-audio.png b/media/screenshots/data-audio.png index 13ed06f..7b7dace 100644 Binary files a/media/screenshots/data-audio.png and b/media/screenshots/data-audio.png differ diff --git a/media/screenshots/data-video-telemtry.png b/media/screenshots/data-video-telemtry.png index 4360337..a985c7b 100644 Binary files a/media/screenshots/data-video-telemtry.png and b/media/screenshots/data-video-telemtry.png differ diff --git a/media/screenshots/file-explorer-empty.png b/media/screenshots/file-explorer-empty.png index 2898974..47633d0 100644 Binary files a/media/screenshots/file-explorer-empty.png and b/media/screenshots/file-explorer-empty.png differ diff --git a/media/screenshots/sds-context-menu.png b/media/screenshots/sds-context-menu.png index a4a83ec..e0dd44a 100644 Binary files a/media/screenshots/sds-context-menu.png and b/media/screenshots/sds-context-menu.png differ diff --git a/media/screenshots/sds-file-context-menu.png b/media/screenshots/sds-file-context-menu.png new file mode 100644 index 0000000..6a2a911 Binary files /dev/null and b/media/screenshots/sds-file-context-menu.png differ diff --git a/media/screenshots/sdsio-flags-connect.png b/media/screenshots/sdsio-flags-connect.png index 4ee61e6..614162d 100644 Binary files a/media/screenshots/sdsio-flags-connect.png and b/media/screenshots/sdsio-flags-connect.png differ diff --git a/media/screenshots/sdsio-flags-rename.png b/media/screenshots/sdsio-flags-rename.png index 6adef5b..fcd698a 100644 Binary files a/media/screenshots/sdsio-flags-rename.png and b/media/screenshots/sdsio-flags-rename.png differ diff --git a/media/screenshots/toolbar.png b/media/screenshots/toolbar.png new file mode 100644 index 0000000..e3a58b2 Binary files /dev/null and b/media/screenshots/toolbar.png differ