System Architecture¶
PilotPy/python_simulator/
├── config.py # Configuration and enum definitions
├── result_generator.py # Random result generator
├── task_manager.py # Task lifecycle management
├── zmq_router_server.py # Core ZMQ Router server
├── zmq_pub_server.py # ZMQ Publish server (status updates)
├── main.py # Program entry point
├── protocol_adapters/ # Protocol adapters
│ ├── superconducting.py # Superconducting protocol adapter
│ ├── ion_trap.py # Ion trap protocol adapter
│ ├── neutral_atom.py # Neutral atom protocol adapter
│ └── photonic.py # Photonic protocol adapter
└── README.md # This file (Documentation)
Communication Modes¶
The server uses two complementary ZMQ communication modes:
Router-Dealer Mode (Request-Reply)¶
Ports: 7000-7003
Purpose: Processes client requests and sends responses.
Connection: The client connects as DEALER, and the server acts as ROUTER.
Characteristics: Two-way communication.
Publish-Subscribe Mode (Pub-Sub)¶
Ports: 8000-8003
Purpose: Pushes status updates and notifications to subscribers.
Connection: The server acts as PUBLISHER, and the client connects as SUBSCRIBER.
Characteristics: One-way push communication, real-time status updates.
Message Structure: Three-layer message structure (Topic + Operation + Data).