Subscription Messages (PUB-SUB Mode)¶
Task Status¶
Function: Real-time task status information is pushed by the 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] Message sequence ID.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 control service will push detailed thread data to Sinan (the qubit usage status of each 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
}