APx500 Control Server - Remote control for Audio Precision test equipment
Project description
APx Control Server
A Flask-based web server for controlling Audio Precision APx500 test equipment remotely.
Architecture
This server acts as a shim between a Linux client and the Windows-based APx500 application. It exposes a REST API that wraps the APx500 .NET API.
┌─────────────┐ HTTP ┌─────────────┐ .NET API ┌──────────────┐
│ Client │ ─────────────► │ apxctrl │ ───────────────► │ APx500 │
│ │ ◄───────────── │ │ ◄─────────────── │ Application │
└─────────────┘ └─────────────┘ └──────────────┘
Design Principles
- 1:1 client model: One client, one server, sequential requests
- State tracking: Server tracks APx state, loaded project (name + SHA256)
Installation
On Windows, install Python and uv:
# Install uv (Python package manager)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
$env:Path = "C:\Users\$env:USERNAME\.local\bin;$env:Path"
# Install Python 3.11
uv python install 3.11.4
Install dependencies:
uv pip install -e .
Running tests
uv run py.test -v
Running the Server
Allow access through firewall
netsh firewall add portopening TCP 5000 "apxctrl"
netsh advfirewall firewall add rule name="apxctrl TCP Port 5000" dir=in action=allow protocol=TCP localport=5000
netsh advfirewall firewall add rule name="apxctrl TCP Port 5000" dir=out action=allow protocol=TCP localport=5000
Basic usage of server:
uv run apxctrl --kill-existing
Note that you can't run this from a no-GUI terminal (like an SSH session), it will not work.
With options:
Command Line Options
| Option | Description | Default |
|---|---|---|
--kill-existing |
Kill running APx500 processes on startup | False |
--host HOST |
Host to bind to | 0.0.0.0 |
--port PORT |
Port to bind to | 5000 |
--debug |
Enable Flask debug mode | False |
Basic usage of client (demonstrates API usage):
uv run apxctrl-client --help
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file apxctrl-0.5.0.tar.gz.
File metadata
- Download URL: apxctrl-0.5.0.tar.gz
- Upload date:
- Size: 7.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
987158aeeda01cae9d3f2f7fa119df6ee12956e75fbbf1bcc3dd09015a5b0385
|
|
| MD5 |
a44cf2aa336ecafbcf1012fce3f9850e
|
|
| BLAKE2b-256 |
baa577f21f3fb5fa3b3b2d84e2b35d4b35d826f7046965ba756527691767e95c
|
File details
Details for the file apxctrl-0.5.0-py3-none-any.whl.
File metadata
- Download URL: apxctrl-0.5.0-py3-none-any.whl
- Upload date:
- Size: 16.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16fb195f45886ce62cf971cd54cc5440f227068bf9760430f3447e04fedaea73
|
|
| MD5 |
4f03f086eafebe7e6c123613c6a254e2
|
|
| BLAKE2b-256 |
5be1de7c70bec1edb28365da7e84570449f33bba35b9660ca4db284ee2ad3643
|