FIREQ Client Architecture & Reference#
Welcome to the FIREQ-Client API reference and architecture guide. The client acts as the front-end workstation interface that connects to the FIREQ-Server, processes experiment definitions, manages TCP streams, and visualizes acquisition results.
Architectural Overview#
The client framework is organized into three main operational layers:
Connection Layer: Establishes and manages TCP socket sessions with the server.
Protocol & Networking Layer: Implements length-prefixed binary framing and manages background I/O threads.
Experiment & Processing Layer: Resolves YAML templates, reconstructs raw binary DMA acquisition payloads into numerical arrays, and stores experiment data.
Interactive & Runtime Lifecycle#
A standard client runtime lifecycle proceeds as follows:
Instantiation & Connection: The
Clientinstance connects to the specified<SERVER_IP>:<SERVER_PORT>endpoint.Handshake & Auth: Performs authentication via shared token validation.
YAML Preprocessing: Loads
.yamlexperiment definitions and resolves internal variable placeholders.Command Execution: Dispatches execution requests.
Data Streaming & Export: Listens for inbound binary DMA frames, converts complex IQ payloads into structured data, and saves them locally as JSON/Pickle files. The client
exportcommand creates the single-data.pklformat consumed by the separateFIREQ_PLOTTERpackage.
API Submodules#
For detailed class and function signatures, select one of the submodules below:
Core Client & CLI
Interactive client for the FIREQ server. |
|
Command completion for the client REPL. |
Protocol & Socket Workers
Simple message type, will be sent over the socket as a json. |
|
Sends framed messages via a socket using a background thread and a queue. |
|
Reads framed messages from a socket in a background thread. |
Configuration & Preprocessing
Preprocessing of experiment YAML configuration files. |
Data & Export Utilities
Data loading helpers for FIREQ experiment data. |
|
Export of experiment data. |
Plotting
Complete commands and command-specific arguments. |
|
Interactive 2D plot of the experiment data. |
|
Interactive heatmap. |
|
Plot the IQ plane of two experiments and the rotated CDF analysis. |
|
Compare two spectroscopy experiments and highlight the frequency of maximal distance. |