CLI client for the MIST mission control system
Project description
MIST Client
CLI client for the MIST mission control system.
Features
- Download telemetry packets from Yamcs by packet name and time range
- Support for defragmented telemetry blocks (complete and incomplete)
- Strips PUS TM headers (14 bytes)
- Both CLI and library interfaces
- Hole filling for incomplete defragmented blocks
Installation
From PyPI (Recommended)
# Create a virtual environment first (recommended)
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Then install using pip
pip install mist-client
From Source
It's recommended to use a virtual environment to avoid conflicts with system packages:
# Navigate to the client directory
cd yamcs/client
# Create a virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install the package
pip install -e ".[dev]"
Quick Start
Command Line Usage
# List available telemetry packet formats
mist-client tm list
# Download housekeeping telemetry from the last hour
mist-client tm get -p "/PUS/HOUSEKEEPING" -f /tmp/telemetry
# Download with specific time range
mist-client tm get -p "/PUS/TC_VERIFICATION" \
-a "2026-03-26T00:00:00" \
-b "2026-03-27T00:00:00" \
-f ./output
# Download defragmented telemetry (all blocks including incomplete)
mist-client tm get -p "/PUS/Large_Data" --defrag all -f ./fragments
# Show help
mist-client --help
mist-client tm get --help
Library Usage
from mist_client import TelemetryDownloader
from datetime import datetime, timedelta, timezone
# Create downloader
td = TelemetryDownloader(url="localhost:8090", instance="mist")
# Download telemetry
now = datetime.now(tz=timezone.utc)
start = now - timedelta(hours=1)
telemetries = td.get_telemetry(
packet_name="/PUS/HOUSEKEEPING",
start=start,
stop=now
)
# Process in memory
for tm in telemetries:
print(f"APID={tm.apid}, packet={tm.packet_name}")
print(f"Data length: {len(tm.data)} bytes")
print(f"Complete: {tm.is_complete()}")
Library API Reference
TelemetryDownloader
Main class for downloading telemetry.
TelemetryDownloader(url: str = "localhost:8090", instance: Optional[str] = None)
Methods:
get_telemetry(packet_name, start, stop, defrag=None) -> List[Telemetry]
Retrieve telemetry packets from Yamcs.
Parameters:
packet_name(str): Yamcs packet namestart(datetime, optional): Start time (inclusive)stop(datetime, optional): Stop time (exclusive)defrag(str, optional):"complete","all", orNone
Returns: List of Telemetry objects
Telemetry
Dataclass representing a telemetry packet or defragmented block.
Attributes:
apid(int): Application Process IDpacket_name(str): Yamcs packet name (e.g., "/PUS/HOUSEKEEPING")time(datetime): Generation timestampdata(bytes): Source data (headers stripped)holes(List[Tuple[int, int]]): Missing byte ranges (empty if complete)
Methods:
is_complete() -> bool: Check if telemetry has no missing fragments
Running Tests
pytest
Troubleshooting
"Could not connect to Yamcs"
- Verify Yamcs is running: Check
http://localhost:8090/in a browser - Check the URL: Use
--urlto specify the correct server - Check the instance: Set
YAMCS_INSTANCEif needed.
"No telemetry found"
- Verify the packet name exists in Yamcs MDB
- Check the time range includes actual telemetry data
- Use the Yamcs web interface to verify data availability
Import errors
- Make sure you installed the package:
pip install -e . - Check Python version: Requires Python 3.8+
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
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 mist_client-0.2.0-py3-none-any.whl.
File metadata
- Download URL: mist_client-0.2.0-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b1a58bed9e100e176ec70e3b88d596b806cb3ec596607ae832c91ae8de9980a
|
|
| MD5 |
a17b093a501e78702ed9898ce9452bdc
|
|
| BLAKE2b-256 |
51c6ef260b58259d4ce26765f40d45c3c60a8954f31df424a8a09013693f51be
|