#!/usr/bin/env python3 """人工动作的**唯一措辞**来源 —— 让同一件事在体检报告里只出现一次。 为什么单独一个文件 ------------------ 体检报告最后会汇总"要人工做的事",而去重是**按整串文字**做的 (见 ``real_preflight.Report.manual_actions``)。同一件事如果两处各写一句 意思相同、字面不同的话,去重就形同虚设 —— 现场看到的是: 1. 机器人不在网里:确认网线接控制柜 User Port、PC 与臂同网段, 先跑 bash scripts/check_robot_network.sh(当前目标 192.168.2.101) ... 3. 确认网线接的是控制柜用户口、PC 与机器人同网段 (先跑 bash scripts/check_robot_network.sh)。 两条说的是同一件事,人却要读两遍、还会怀疑"是不是两个不同的问题"。 真正的根因(`check_network` 判据 + `rdk_status` 的状态分类)分在两个文件里、 还跑在两个不同的 Python 上(3.11 / 3.10,见 rdk_status 的模块说明), 互相 import 不了,所以把措辞抽到这里:只依赖标准库,谁都能 import。 改这里的文字等于改现场看到的操作步骤,动之前先想清楚。 """ from __future__ import annotations # 机器人不在网里(ping 不通)。措辞里**不带具体 IP** —— IP 已经在上面的 # 判据明细里打过了;带上 IP 就会让 check_network 和 rdk_status 的句子不一样, # 去重立刻失效。 NET_UNREACHABLE_ACTION = ( "确认网线接的是控制柜用户口、PC 与机器人同网段" "(先跑 bash scripts/check_robot_network.sh)。" ) # 通了网也连不上 RDK 时的三种常见原因(与厂商报错 a) b) d) 对齐)。 RDK_REMOTE_MODE_ACTION = "确认示教器上已开启 Remote/Ethernet(RDK)。" RDK_STACK_HOLDING_ACTION = ( "如果 ros2_control 已经在跑,RDK 可能被它占着 —— 先停掉栈再试。" )