Subscription Messages (PUB-SUB Mode)¶
Task Status¶
Function: Real-time task status information is pushed by the measurement and control system when the stage of task calculation changes.
Operation: Fixed as bytes: task_status.
Pushed Message Format:
MsgType (
String): [Required] Message type, fixed asTaskStatus.SN (
Uint32_t): [Required] Heartbeat message sequence number.TaskId (
String): [Required] Task ID.TaskStatus (
Uint32_t): [Required] Task status, refer to the task status definition.
Example:
{
"MsgType":"TaskStatus",
"SN":0,
"TaskId":"11D919FA044846F3B4DF453A827AE901",
"TaskStatus":3
}
Chip Configuration Info Update Flag¶
Function: After the chip parameters change, the measurement and control all-in-one machine pushes a message informing Sinan that it can send a get request via Router-Dealer mode to query the latest chip configuration information.
Operation: Fixed as bytes: chip_update.
Pushed Message Format:
UpdateFlag (
Bool): [Required] Update flag.LastUpdateTime (
Uint64_t): [Required] Last update time.
Example:
{
"UpdateFlag":true,
"LastUpdateTime": 1705307288685
}
Chip Resource Status¶
Function: When the measurement and control all-in-one machine calculates a task, in multi-thread mode, as long as chip resources are altered (locked, released), the measurement and control service will push detailed thread data to Sinan (the qubit usage status of each measurement and control service thread); QPilot only needs to focus on the use_bits field for each thread (t0, t1, t2…).
Operation: Fixed as bytes: probe.
Pushed Message Format:
core_thread.t0 (
Object): [Required] Thread name of the measurement and control service.core_thread.t0.use_bits (
String Array): [Required] All qubits of the current thread.
Example:
{
"inst_status": 1,
"linked": 1,
"timestamp": 1695182448.7963016,
"scheduler": {
"status": "InitialState",
"queue_len": 3
},
"core_status": {
"empty_thread": 3,
"pause_read": 0,
"thread_num": 5
},
"core_thread": {
"t0": {
"status": "waiting",
"thread_id": "t0",
"task_id": "650a6e6f197b42e9aeaad6d6",
"start_time": 1695182447.5371444,
"user": "admin3",
"env_bits": [
"<c45-46||0>",
"<q62||0>",
"<c40-46||0>",
"<q59||1>"],
"use_bits": [
"q56",
"q18",
"q68",
"q69",
"q6",
"q2",
"q67"]
},
"t1": {
"status": "ready",
"task_id": null,
"start_time": null,
"user": null,
"env_bits": [],
"use_bits": []
},
"t2": {
"status": "ready",
"task_id": null,
"start_time": null,
"user": null,
"env_bits": [],
"use_bits": []
},
"t3": {
"status": "waiting",
"thread_id": "t3",
"task_id": "650a6e6e197b42e9aeaad6d0",
"start_time": 1695182446.8370538,
"user": "admin3",
"env_bits": [
"<q56||1>",
"<c45-46||2>",
"<q62||2>",
"<c40-46||2>",
"<c56-57||2>",
"<c43-44||2>",
"<c44-45||2>"
],
"use_bits": [
"q59",
"q30",
"q50",
"q33",
"q47",
"q19",
"q38"
]
},
"t4": {
"status": "ready",
"task_id": null,
"start_time": null,
"user": null,
"env_bits": [],
"use_bits": []
}
}
}
Auto-Calibration Start Info¶
Function: When the measurement and control all-in-one machine conducts automatic calibration, it will push calibration qubit info to Sinan; the calibrating qubits will be unavailable during this period.
Operation: Fixed as bytes: calibration_start.
Pushed Message Format:
qubits (
String Array): [Required] Calibrated single qubit information.couplers (
String Array): [Required] Couplers.pairs (
String Array): [Required] Calibrated qubit pair information.discriminators (
String Array): [Required] Discriminators.point_label (
Int): [Required] Used to indicate which label the current calibration acts upon.
Example:
{
"config_flag": false,
"qubits":["q0", "q1", "q2", "q3"],
"couplers":["c0-1", "c11-12", "c2-3"],
"pairs": ["q0q1", "q2q3"],
"discriminators":["q0_01.bin", "q1_01.bin", "q2_01.bin", "q3_01.bin"],
"point_label": 2
}
Auto-Calibration End Info¶
Function: After completing the calibration, a completion message will be pushed to Sinan, and the qubits will return to available status.
Operation: Fixed as bytes: calibration_done.
Pushed Message Format:
qubits (
String Array): [Required] Calibrated single qubit information.couplers (
String Array): [Required] Couplers. (*@ @*)pairs (
String Array): [Required] Calibrated qubit pair information.discriminators (
String Array): [Required] Discriminators.
Example:
{
"qubits":["q0", "q1", "q2", "q3"],
"couplers":["c0-1", "c11-12", "c2-3"],
"pairs": ["q0q1", "q2q3"],
"discriminators":["q0", "q1", "q2", "q3"],
"config_flag":true,
"point_label": 2
}
Chip Maintenance Info¶
Function: Receive chip maintenance start and end info to trigger an automatic pause in Sinan. If the maintenance time exceeds 2 hours, Sinan pushes an offline maintenance notification to the cloud platform; if the maintenance time does not exceed 2 hours, only Sinan pauses and the cloud platform remains online normally.
Operation: Fixed as bytes: chip_protect.
Pushed Message Format:
ProtectFlag (
Bool): [Required] Maintenance flag. true means maintenance begins, false means maintenance ends.DurativeTime (
Uint64_t): [Required] Maintenance duration (unit: minutes).LastTime (
Uint64_t): [Required] Timestamp.
Example:
{
"ProtectFlag":true,
"DurativeTime":10,
"LastTime":1705307288685
}