Sensor Emulator
Standalone Synapse-compatible emulators for:
- Radar TCP control/data protocol
- MAVLink telemetry stream
- LiDAR collector subprocess contract
Why this exists
synapse expects real hardware and device access. This repo emulates the same interfaces so development and CI can run without hardware.
Install
cd sensor-emulator
python3 -m venv .venv
source .venv/bin/activate
pip install -e .[test]
Run emulators
Radar only:
sensor-emulator radar --host 127.0.0.1 --ctrl-port 8100 --data-port 8101
MAVLink only:
sensor-emulator mavlink --host 127.0.0.1 --port 14550 --stream-hz 10
Radar + MAVLink:
sensor-emulator all --host 127.0.0.1 --ctrl-port 8100 --data-port 8101 --mavlink-port 14550
LiDAR collector mode (drop-in for LidarRunner subprocess):
export POINT_CLOUD_CSV_PATH=/tmp/lidar_point_cloud.csv
export IMU_DATA_CSV_PATH=/tmp/lidar_imu_data.csv
sensor-lidar-collector dummy-config-path
Synapse wiring
For Synapse LiDAR:
export LIDAR_EXEC_PATH=$(which python3)
export LIDAR_CONFIG_PATH=/absolute/path/to/sensor-emulator/src/sensor_emulator/lidar_collector.py
For Synapse radar, set RADAR_CONFIG_PATH to a config like:
{
"ip": "127.0.0.1",
"ctrlPort": 8100,
"dataPort": 8101,
"nSamples": 511,
"headerFields": 16,
"sampleBytes": 4,
"timeout": 1.0
}
For Synapse MAVLink:
Use getMavlinkController(port=\"udpin:127.0.0.1:14550\", ...) in local tests.
Test suite
Run all tests:
pytest -q
Coverage intent:
- Radar command compatibility (
STA?,IRF1,FMT?,#IRF,RUN,STOP) - Radar frame binary layout + CSV generation through Synapse
RadarController - MAVLink heartbeat and required message set + Synapse
MavlinkControllerCSV output - LiDAR subprocess env contract + Synapse
LidarRunnerCSV output
Metadata
Release files for aerostacks-sensor-emulator 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| aerostacks_sensor_emulator-0.1.0.tar.gz | 7.6 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aerostacks_sensor_emulator-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.6 kB
Release files / aerostacks_sensor_emulator-0.1.0.tar.gz
| Download URL | aerostacks_sensor_emulator-0.1.0.tar.gz |
|---|---|
| Size | 7.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d76ba34bf00cf55dfbe7290236988a6c68d9defb4887f35ab242037a4fddf89f
|
|
BLAKE2b-256 checksum How to use checksums |
46141c8d44a00a262dd799684932e56b6b982972e28e97540c473610965ab080
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 14, 2026.
Transparency logRelease files / aerostacks_sensor_emulator-0.1.0-py3-none-any.whl
| Download URL | aerostacks_sensor_emulator-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
48a35481cfaee2d6326f16cd104bde3c27de15d3447e6c5f666ef99dfdaea65c
|
|
BLAKE2b-256 checksum How to use checksums |
b1c26a073f442cd384770316a0b79b773e0ecc935b1f5179e1e6ac25059134cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 14, 2026.
Transparency logSecurity for aerostacks-sensor-emulator 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for aerostacks_sensor_emulator-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 14, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.