⚙ 开发指南
> SDK
> API
> 数据结构
ServiceState(服务端状态)#
ServiceState 描述 P7 服务是否可用、高层 FSM 状态和底层控制器名称。它不包含“当前 Python 客户端
是否持有控制权”的字段。
字段#
| 字段 | 类型 | 含义 |
|---|---|---|
service_state |
bool |
最近一次服务探测或状态读取是否认为服务可用 |
fsm_state |
str |
高层运行或保护状态,例如 IDLE、PLANNING_CONTROL、SERVO_CONTROL、UNKNOWN_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 判断。