15-control-hero (2)

Control Accordion from your language of choice

One REST API. Officially supported wrappers for Python and .NET. Drop-in support for TestStand, LabVIEW, and any tool that speaks HTTP.

One API, many ways in

Every function in an Accordion system — measurement, stimuli, programmable power, bus communication, fixture control — is exposed through a single REST API on the Accordion node itself. Every higher-level wrapper (the Python package, the .NET package, Pilot, the Shell CLI, TestStand and LabVIEW integrations, your own integration) sits on top of the same API and exposes the same channel model.

This means the test code you write on a developer machine runs unchanged in CI, on a bench, and on the production line. You pick the language and the tooling that fit the job; the test logic stays portable.

The REST API

The REST API runs on the Accordion node and is the entry point for everything else. Four primitives cover the entire system:

  • Get — read a channel value
  • Set — write a channel value
  • Configure — configure a channel or module
  • Bus Transactions — execute I²C, SPI, UART, or JTAG transactions

Channels are auto-discovered at boot — the API returns the live channel list and their types at any time. There is no schema to maintain, no driver layer to install on the host.

Use the REST API directly when no language wrapper fits — for example from Go, Rust, or a custom embedded controller. For .NET and Python, prefer the official wrappers; they handle authentication, retry, and channel typing automatically.

Python

The official Python package, accordionq2, is published on PyPI and gives test engineers typed, scriptable access to every channel in an Accordion system. Same channel model as the REST API; same channel model as Pilot, Shell, and the .NET wrapper.

The Python integration is designed for engineers who need deterministic, scriptable control of test hardware. Full API reference is on Read the Docs. Typical use cases:

  • Automated production test
  • System bring-up and validation
  • Hardware abstraction inside Python test frameworks
  • Integration with CI, MES, or result databases

Python control is independent of graphical tools and is suitable for unattended or headless execution. No proprietary test language, no driver layer on the host — pip install, import, run.

.NET

The official .NET package, AccordionQ2.WebApiClient, is published on NuGet as a .NET Standard library. It exposes the same channel model as the Python wrapper and the REST API. Use it directly from C# or VB.NET, or from any host that supports .NET interop — including TestStand and LabVIEW.

The .NET wrapper is the most common path into Accordion for teams already invested in the National Instruments toolchain or in .NET-based CI pipelines.

TestStand

TestStand calls Accordion through the .NET wrapper using the standard .NET Adapter. Drop the AccordionQ2.WebApiClient assembly into your TestStand sequence’s references; from there, every channel and bus transaction is available as a regular .NET call.

There is no separate TestStand-specific driver to install or maintain. Updates to the .NET wrapper automatically propagate to your TestStand sequences.

1. Add a Reference to AccordionQ2.WebApiClient (from NuGet)
2. New Step → .NET Adapter
3. Assembly: AccordionQ2.WebApiClient
Class: AccordionQ2.AccordionClient
Method: Channel(name).Get / .Set / .Configure
4. Pass channel name as a string parameter; return value flows back
into TestStand variables as the appropriate .NET type.

LabVIEW

LabVIEW calls Accordion through the .NET wrapper using a Constructor Node and Invoke Nodes — the same pattern LabVIEW uses for any third-party .NET assembly.

You don’t need NI-DAQmx, you don’t need a CVI wrapper, and you don’t need a vendor-specific VI library. The .NET wrapper is the integration path.

1. Place a .NET Constructor Node on the block diagram.
2. Select AccordionQ2.WebApiClient.dll → class AccordionClient.
3. Wire the host address into the constructor.
4. Use Invoke Nodes to call Channel(name).Get / .Set / .Configure.

Custom integration

When neither the Python nor the .NET wrapper fits — for example, integrating Accordion with Go, Rust, an embedded controller, or a manufacturing execution system written in a different stack — call the REST API directly.

The API is stable, fully documented in the help center, and uses standard HTTP verbs and JSON payloads. There is no proprietary wire protocol and no required client library.

Use cases for direct REST

  • MES / ERP / yield-management system integration
  •  Production-line orchestration platforms
  • Embedded controllers driving fixtures alongside Accordion
  • Cross-platform polyglot test frameworks
  • Tools and dashboards in languages without an official wrapper

Channels — the common model

Every function in Accordion is exposed as a channel. The same abstraction covers measurement, stimuli, programmable power, bus communication, and fixture control. The channel is also what every wrapper — Python, .NET, REST, Pilot, Shell, TestStand, LabVIEW — speaks to.

Three properties matter for portability:

  • Auto-discovery at boot. The Accordion node enumerates installed modules and exposes their channels automatically. Your test code does not need to know which slots are populated.
  • Value is always a string at the wire level. Booleans serialize as “true” / “false”, floats as decimal strings, SI units where applicable. Each wrapper converts to the appropriate native type on top of that.
  • Channel types are typed. Analog, Digital, Pseudo-Digital, Temperature, PSU, UART, SPI, I²C, and others. The type tells your test code what calls are valid for that channel.

From script to production line

A test sequence written for Accordion runs identically across every stage of the product lifecycle — from a developer’s laptop during design verification to a production-line test station running at volume. There are no environment-specific branches in the test code, no host-side driver to install per machine, and no proprietary test runtime to learn.

The flow is short: engineers author the test in Python, C#, TestStand, LabVIEW, or any tool that speaks HTTP; the test opens a session to the Accordion node over TCP; channels are auto-discovered and the sequence executes; typed measurement data flows back with SI units already applied; results integrate into CI, an MES, a database, or a report.

The same test code that runs on a developer’s machine runs unchanged in continuous integration and on the production line.

E-Sharp_redigerad-23

Documentation

Full API reference, channel-type tables, calibration procedures, firmware notes, and code examples live in the E-Sharp Help Center.