Feature coverage
All four SDKs implement the same set of commands.
Everything below is documented in the reference.
What the SDKs cover​
| Feature | Python | NodeJS | Rust | C |
|---|---|---|---|---|
| Connect, handshake, version check | ✅ | ✅ | ✅ | ✅ |
| List devices (hardware and demo) | ✅ | ✅ | ✅ | ✅ |
| Device capabilities (rates, thresholds, triggers) | ✅ | ✅ | ✅ | ✅ |
| Open / attach / duplicate / list workspaces | ✅ | ✅ | ✅ | ✅ |
Open a .scana file as a workspace | ✅ | ✅ | ✅ | ✅ |
| Channels, and lookup by name | ✅ | ✅ | ✅ | ✅ |
| Device info | ✅ | ✅ | ✅ | ✅ |
| Capture start / stop / wait / state | ✅ | ✅ | ✅ | ✅ |
| Triggers (edge, logic, pulse, steps, external, sequence) | ✅ | ✅ | ✅ | ✅ |
| Transitions, edge seeking, level at a sample | ✅ | ✅ | ✅ | ✅ |
| Baud-rate detection | ✅ | ✅ | ✅ | ✅ |
| Decoders: discover, add, configure, control | ✅ | ✅ | ✅ | ✅ |
| Decoded packets, groups and items | ✅ | ✅ | ✅ | ✅ |
| Hex view and hex search | ✅ | ✅ | ✅ | ✅ |
| Markers and measurements | ✅ | ✅ | ✅ | ✅ |
| Pattern generator (SP1000G only) | ✅ | ✅ | ✅ | ✅ |
| Script library (install, import, create, rename, delete) | ✅ | ✅ | ✅ | ✅ |
Save a .scana file | ✅ | ✅ | ✅ | ✅ |
| CSV export (samples, raw, packets, hex) | ✅ | ✅ | ✅ | ✅ |
| Event stream and server log | ✅ | ✅ | ✅ | ✅ |
Note on pattern generation
Pattern generation exists only on the SP1000G series (SP1018G, SP1036G, SP1054G). On an SE254, SP209 or SP259 the calls are there but the hardware has no outputs to drive. See Pattern generator.
How each SDK reads​
The same coverage does not mean the same code.
| Shape | |
|---|---|
| Python | Synchronous and blocking. Dataclasses in, dataclasses out. |
| NodeJS | async/await throughout, with async iterators over bulk data. |
| Rust | async with ?, typed errors, and builders for the request payloads. |
| C | Handles and status codes. Configuration comes back as JSON to free with ss_string_free; bulk records come back as a batch to free with _free. |
Out of scope​
The ScanaStudio application does a few things that no client library exposes:
- Waveform rendering: the pixel columns the ScanaStudio display draws from.
- Signal overlay: the drawing tools that let the application correct a capture by hand.
- Server settings and diagnostics: autosave policy, proxy configuration, and crash reporting.
- Firmware updates. Use ScanaStudio for those. The hardware and firmware
versions are available through
device_info(). - A handful of one-off editor and script-metadata calls.