订阅消息(PUB-SUB模式)¶
任务状态¶
功能: 在任务计算的阶段变更时,由测控推送任务实时状态信息。
Operation:固定为bytes:task_status。
推送消息格式:
- MsgType (String): [不可空] 消息类型,固定为 TaskStatus。
- SN (Uint32_t): [不可空] 消息序列ID。
- TaskId (String): [不可空] 任务ID。
- TaskStatus (Uint32_t): [不可空] 任务状态,参考任务状态定义。
示例:
{
"MsgType":"TaskStatus",
"SN":0,
"TaskId":"11D919FA044846F3B4DF453A827AE901",
"TaskStatus":3
}
芯片配置信息更新标志¶
功能: 在芯片参数变更后,测控一体机推送消息,告知司南可以通过 Router-Dealer 模式发送获取请求查询最新芯片配置信息。
Operation:固定为bytes:chip_update。
推送消息格式:
- UpdateFlag (Bool): [不可空] 更新标识。
- LastUpdateTime (Uint64_t): [不可空] 最后更新时间。
示例:
{
"UpdateFlag":true,
"LastUpdateTime": 1705307288685
}
芯片资源状态¶
功能: 在测控一体机计算任务时,在多线程模式下,只要芯片资源发生了改变(锁住、释放),测控服务就会推送线程详细数据至司南(各个测控服务线程的 qubit 使用情况);QPilot 可以只关注每个线程(t0, t1, t2…)的 use_bits 字段。
Operation:固定为bytes:probe。
推送消息格式:
- core_thread.t0 (Object): [不可空] 测控服务的线程名。
- core_thread.t0.use_bits (String数组): [不可空] 当前线程所有比特。
示例:
{
"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",
"use_bits": ["q56", "q18", "q68", "q69", "q6", "q2", "q67"]
},
"t1": { "status": "ready", "use_bits": [] },
"t2": { "status": "ready", "use_bits": [] },
"t3": {
"status": "waiting",
"thread_id": "t3",
"task_id": "650a6e6e197b42e9aeaad6d0",
"start_time": 1695182446.8370538,
"user": "admin3",
"use_bits": ["q59", "q30", "q50", "q33", "q47", "q19", "q38"]
},
"t4": { "status": "ready", "use_bits": [] }
}
}
自动校准开始信息¶
功能: 在测控一体机进行自动校准时,会推送校准比特信息至司南,此时间段内校准中比特不可用。
Operation:固定为bytes:calibration_start。
推送消息格式:
- qubits (String数组): [不可空] 校准后的单比特信息。
- couplers (String数组): [不可空] 耦合器。
- pairs (String数组): [不可空] 校准后的比特对信息。
- discriminators (String数组): [不可空] 鉴别器。
- point_label (Int): [不可空] 用于表示当前校准作用于哪个标签。
示例:
{
"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
}
自动校准结束信息¶
功能: 完成校准后会推送完成消息至司南,比特恢复可用。
Operation:固定为bytes:calibration_done。
推送消息格式:
- qubits (String数组): [不可空] 校准后的单比特信息。
- couplers (String数组): [不可空] 耦合器。
- pairs (String数组): [不可空] 校准后的比特对信息。
- discriminators (String数组): [不可空] 鉴别器。
示例:
{
"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
}
芯片维护信息¶
功能: 接收芯片维护开始和结束信息,实现司南自动暂停。如果维护时间超过2个小时,则司南向云平台推送维护下线通知;如果维护时间不超过2小时,则只有司南暂停,云平台正常上线。
Operation:固定为bytes:chip_protect。
推送消息格式:
- ProtectFlag (Bool): [不可空] 维护标志。true 为维护开始,false 维护结束。
- DurativeTime (Uint64_t): [不可空] 维护持续时间(单位:分钟)。
- LastTime (Uint64_t): [不可空] 时间戳。
示例:
{
"ProtectFlag":true,
"DurativeTime":10,
"LastTime":1705307288685
}