跳转至
⚙ 开发指南 > SDK > API > 数据结构

ServiceState(服务端状态)#

ServiceState 描述 P7 服务是否可用、高层 FSM 状态和底层控制器名称。它不包含“当前 Python 客户端 是否持有控制权”的字段。

字段#

字段 类型 含义
service_state bool 最近一次服务探测或状态读取是否认为服务可用
fsm_state str 高层运行或保护状态,例如 IDLEPLANNING_CONTROLSERVO_CONTROLUNKNOWN_ERROR
controller_state str 服务报告的活动机械臂 controller 名称;不是封闭枚举
valid bool getter 调用时,服务状态缓存更新时间是否在 0.5 s TTL 内

valid=True 不等于 service_state=True,也不表示其他遥测数据新鲜。fsm_state 用于确认高层模式; controller_state 不能代替它。

读取与判断#

state = client.get_service_state()
if state is None:
    print("服务状态尚无首帧")
elif not state.valid:
    print("服务状态缓存已经过期")
elif not state.service_state:
    print("服务当前不可用")
else:
    print(state.fsm_state, state.controller_state)

读取方法不要求控制权。DDS 后台轮询周期当前为 1 s,而缓存 TTL 为 0.5 s,因此健康连接下 valid 也可能在相邻轮询之间短暂为 False;连续诊断时应继续采样并结合 service_state 判断。

FSM 状态含义见机械臂状态,完整后端读取差异见 API 接口总览