12 KiB
12 KiB
05-验收证据
版本:0.1 日期:2026-06-28
1. 证据状态
| 状态 | 含义 |
|---|---|
| 待验证 | 任务尚未执行或未产生产物。 |
| 通过 | 已执行且满足验收标准。 |
| 不通过 | 已执行但不满足验收标准。 |
| 跳过 | 因明确边界暂不执行,必须说明原因。 |
2. 基准证据项
| 证据 | 状态 | 目标产物 |
|---|---|---|
| EV-W2-SPEC-001:语法覆盖矩阵 | 通过 | working2/programs/manifest.md 和 spec-programs/manifest.json 已覆盖章节 4 到 25。 |
| EV-W2-PROG-010:Runtime 程序创建 | 通过 | kdl-wasm/web/tests/fixtures/abb120/spec-programs/runtime/W2_*.grl 共 11 个;manifest Runtime 层级共 12 项。 |
| EV-W2-PROG-020:Error 程序创建 | 通过 | static/error/W2_E*.grl 共 5 个,其中 4 个 Static、1 个 Runtime timeout error。 |
| EV-W2-PROG-030:Post 程序创建 | 通过 | post/W2_P*.grl 共 3 个。 |
| EV-W2-RUN-001:suite runner | 通过 | kdl-wasm/web/test-results/abb120-spec/W2-JOB-20260628082622-51484d62/job.json。 |
| EV-W2-RUN-030:虚拟控制器执行 | 通过 | 每个 runtime 程序输出 controller.json、trace.json、motion-queue.json。 |
| EV-W2-RUN-040:逐帧轨迹 | 通过 | Runtime 轨迹 trajectory.json 包含 frames[],每帧包含 joints[6]、TCP position[3] 和 TCP quaternion[4]。 |
| EV-W2-RUN-050:IO/wait/pulse | 通过 | W2_60_IOWaitPulse 和 W2_E50_RuntimeTimeout 输出 IO/wait/pulse/timeout trace。 |
| EV-W2-POST-010:三品牌输出 | 通过 | post-report.json 记录 ABB/FANUC/KUKA 文件名和 report。 |
| EV-W2-POST-020:roundtrip | 通过 | roundtrip.json 记录 ABB import 回读状态和 diagnostics。 |
| EV-W2-UI-020:HTML 截图 | 通过 | kdl-wasm/web/test-results/virtual-controller/virtual-controller-desktop.png、virtual-controller-mobile.png、evidence.json。 |
| EV-W2-CI-900:全量命令 | 通过 | npm run typecheck、npm test、npm run verify:virtual-controller 全部通过;WASM native build 未执行。 |
| EV-W2-DEPLOY-001:演示包 manifest | 通过 | demo-manifest.json 包含 release_id、job_id、19 个程序、报告、截图、文档入口。 |
| EV-W2-DEPLOY-020:演示包 zip | 通过 | kdl-wasm/web/test-results/deploy/kdl-olp-demo-20260628-164048-W2-JOB-20260628082622-51484d62.zip。 |
| EV-W2-DEPLOY-040:HTTPS 发布 | 通过 | https://82.156.24.101:8095/ 可访问首页、虚拟控制器、report、截图和逐帧轨迹 JSON。 |
| EV-W2-DEPLOY-050:远程 smoke test | 通过 | kdl-wasm/web/test-results/deploy/kdl-olp-demo-20260628-164048-W2-JOB-20260628082622-51484d62.deploy.json,program_count=19 且 summary.fail=0。 |
3. 建议命令
3.1 文档和覆盖矩阵检查
rg -n "W2_|通用机器人编程语法规范|Runtime|Static|Post|ABB120|虚拟控制器" working2
预期:能找到 README、任务矩阵、验收证据、决策记录和 manifest 中的覆盖项。
3.2 GRL 和 ABB120 测试
cd E:\Work\kdl_work
npm test -- grl abb120
预期:GRL parser/semantic、ABB120 fixture、表达式和程序编译测试通过。
3.3 虚拟控制器运行测试
npm test -- virtual controller runtime
预期:状态机、IR runtime、motion queue、IO runtime、workbench/debug facade 测试通过。
3.4 后处理和导入回读
npm test -- post import roundtrip
预期:ABB/FANUC/KUKA post、brand import、roundtrip diff 测试通过。
3.5 HTML 虚拟控制器截图
npm run verify:virtual-controller
预期:桌面和移动截图生成,状态交互、Wait 置位和无横向溢出检查通过。
3.6 可选 WASM native build
cmake --build kdl-wasm/build-wasm -j16
预期:当前 Emscripten/Ninja 环境可用时构建通过;如环境缺失,记录为环境阻塞而不是功能通过。
3.7 服务器演示包生成
建议后续实现脚本:
cd E:\Work\kdl_work
node kdl-wasm/web/scripts/build-demo-package.mjs
node kdl-wasm/web/scripts/verify-demo-package.mjs kdl-wasm/web/test-results/deploy/kdl-olp-demo-<release_id>.zip
预期:生成 zip;解压校验包含 index.html、demo-manifest.json、19 个 .grl、最新 W2-JOB-*、逐帧 trajectory.frames、2 张截图和 2 份 Word 文档。
3.8 HTTPS 远程 smoke test
$base = "https://82.156.24.101:8095"
curl.exe -k "$base/"
curl.exe -k "$base/demo-manifest.json"
curl.exe -k "$base/spec-programs/manifest.json"
curl.exe -k "$base/app/virtual-controller.html"
curl.exe -k "$base/test-results/abb120-spec/<job_id>/report.json"
curl.exe -k "$base/test-results/virtual-controller/virtual-controller-desktop.png" --output NUL
curl.exe -k "$base/test-results/virtual-controller/virtual-controller-mobile.png" --output NUL
预期:
- 关键 URL 返回 200。
demo-manifest.json中program_count为 19。report.json中summary.fail为 0。- 浏览器可打开虚拟控制器页面和报告页面。
4. 实际产物目录
kdl-wasm/web/test-results/abb120-spec/
W2-JOB-20260628022836-51484d62/
job.json
manifest.json
report.json
report.html
programs/
<program_id>/
compile.json
controller.json
motion-queue.json
trace.json
io.json
trajectory.json
post-report.json
roundtrip.json
每个 job.json 必须包含:
job_idsuite_idrobot_idspec_versionprogramscommandsstatusdiagnosticsartifact_paths
5. 当前记录
| 时间 | 命令 | 结果 |
|---|---|---|
| 2026-06-28 09:38 Asia/Shanghai | npm run suite:abb120-spec |
通过;生成 W2-JOB-20260628013857-19b5a2c7,18 个程序,missingSections 为空。 |
| 2026-06-28 09:40 Asia/Shanghai | npm run typecheck |
通过。 |
| 2026-06-28 09:41 Asia/Shanghai | npm test |
通过;41 个 test files,155 个 tests。 |
| 2026-06-28 09:42 Asia/Shanghai | npm run verify:virtual-controller |
通过;desktop screenshot 49892 bytes,mobile screenshot 47887 bytes,wait=satisfied,所有主要面板可见。 |
| 2026-06-28 10:28 Asia/Shanghai | npm test -- abb120SpecSuite |
通过;manifest 引用、层级、expected status、expected diagnostics 和 W2_99 完整示例证据均通过。 |
| 2026-06-28 10:28 Asia/Shanghai | npm run typecheck |
通过。 |
| 2026-06-28 10:28 Asia/Shanghai | npm run suite:abb120-spec |
通过;生成 W2-JOB-20260628022836-51484d62,19 个程序,missingSections 为空。 |
| 2026-06-28 10:33 Asia/Shanghai | npm test |
通过;41 个 test files,155 个 tests。 |
| 2026-06-28 10:33 Asia/Shanghai | npm run verify:virtual-controller |
通过;desktop screenshot 49892 bytes,mobile screenshot 47887 bytes,wait=satisfied,所有主要面板可见。 |
| 2026-06-28 12:06 Asia/Shanghai | npm run demo:build |
通过;生成 release 20260628-120601-W2-JOB-20260628024709-51484d62,zip 3769732 bytes,sha256=e3d936ae5e2c813f80346363b66b82fc19c87fe61ca421ac1b2de2eb4bc1c699。 |
| 2026-06-28 12:06 Asia/Shanghai | npm run demo:verify -- kdl-wasm/web/test-results/deploy/kdl-olp-demo-20260628-120601-W2-JOB-20260628024709-51484d62.zip |
通过;解压后 program_count=19、.grl=19、summary.fail=0、截图和 2 份 Word 文档均存在。 |
| 2026-06-28 12:07 Asia/Shanghai | 上传并切换服务器 release | 通过;current 指向 /opt/kdl-olp-demo/8095/releases/20260628-120601-W2-JOB-20260628024709-51484d62,previous 指向 /opt/kdl-olp-demo/8095/releases/20260628-120357-W2-JOB-20260628024709-51484d62,服务 kdl-site-8095 为 active。 |
| 2026-06-28 12:07 Asia/Shanghai | HTTPS remote smoke test | 通过;/、/demo-manifest.json、/spec-programs/manifest.json、/app/virtual-controller.html、report.json、report.html、desktop/mobile png 全部返回 200;program_count=19、summary.fail=0。 |
| 2026-06-28 12:15 Asia/Shanghai | npm run typecheck |
通过。 |
| 2026-06-28 12:15 Asia/Shanghai | npm test |
通过;41 个 test files,155 个 tests。 |
| 2026-06-28 16:25 Asia/Shanghai | npm run typecheck |
通过。 |
| 2026-06-28 16:25 Asia/Shanghai | npm test -- kdl-wasm/web/tests/integration/abb120SpecSuite.test.ts kdl-wasm/web/tests/integration/abb120SuiteArtifacts.test.ts |
通过;5 个 integration tests 通过,包含逐帧 trajectory 断言。 |
| 2026-06-28 16:26 Asia/Shanghai | npm run suite:abb120-spec |
通过;生成 W2-JOB-20260628082622-51484d62,19 个程序,missingSections 为空。 |
| 2026-06-28 16:28 Asia/Shanghai | npm run verify:virtual-controller |
通过;desktop screenshot 45302 bytes,mobile screenshot 40407 bytes,Run 后 state=running,DI wait=satisfied。 |
| 2026-06-28 16:35 Asia/Shanghai | npm run demo:verify -- kdl-wasm/web/test-results/deploy/kdl-olp-demo-20260628-163458-W2-JOB-20260628082622-51484d62.zip |
通过;program_count=19、.grl=19、summary.fail=0、runtime_trajectory_frames=9/12。 |
| 2026-06-28 16:38 Asia/Shanghai | powershell -NoProfile -ExecutionPolicy Bypass -File kdl-wasm/web/scripts/deploy-demo-package.ps1 -ZipPath ... -Target abigailaw-8091 |
通过;关键 URL 全部 200,program_count=19、summary.fail=0,服务 kdl-site-8095 自动重启后读取新 release。 |
| 2026-06-28 16:39 Asia/Shanghai | Python HTTPS 远程逐帧轨迹抽查 | 通过;W2_30_MotionAllTypes 有 12 帧,W2_60_IOWaitPulse 有 4 帧,W2_99_FullSpecExample 有 32 帧,均含 joints 和 TCP。 |
最新 job
| 项 | 值 |
|---|---|
| job_id | W2-JOB-20260628082622-51484d62 |
| suite_id | working2-abb120-spec |
| robot_id | abb_irb120_3_58 |
| job.json | kdl-wasm/web/test-results/abb120-spec/W2-JOB-20260628082622-51484d62/job.json |
| report.html | kdl-wasm/web/test-results/abb120-spec/W2-JOB-20260628082622-51484d62/report.html |
| HTML screenshots | kdl-wasm/web/test-results/virtual-controller/ |
6. 服务器发布证据记录模板
| 项 | 值 |
|---|---|
| release_id | 20260628-164048-W2-JOB-20260628082622-51484d62 |
| zip 路径 | kdl-wasm/web/test-results/deploy/kdl-olp-demo-20260628-164048-W2-JOB-20260628082622-51484d62.zip |
| zip hash | 见同目录 kdl-olp-demo-20260628-164048-W2-JOB-20260628082622-51484d62.summary.json。 |
| job_id | W2-JOB-20260628082622-51484d62 |
| 发布地址 | https://82.156.24.101:8095/ |
| 服务器 release 目录 | /opt/kdl-olp-demo/8095/releases/20260628-164048-W2-JOB-20260628082622-51484d62 |
| current 指向 | /opt/kdl-olp-demo/8095/releases/20260628-164048-W2-JOB-20260628082622-51484d62 |
| smoke test 时间 | 2026-06-28 16:40 Asia/Shanghai |
| smoke test 结果 | 通过;关键 URL 全部 200,program_count=19,summary.fail=0。 |
| 回滚目录 | /opt/kdl-olp-demo/8095/releases/20260628-163458-W2-JOB-20260628082622-51484d62 |
7. 远程页面人工验收记录模板
| 演示项 | 程序或页面 | 结果 | 备注 |
|---|---|---|---|
| 首页打开 | / |
通过 | HTTP 200,返回 11199 bytes。 |
| manifest 打开 | /demo-manifest.json |
通过 | HTTP 200,program_count=19。 |
| 虚拟控制器打开 | /app/virtual-controller.html |
通过 | HTTP 200,页面包含 Program 下拉、Frame slider 和 Trajectory Frames 表格。 |
| 报告打开 | /test-results/abb120-spec/W2-JOB-20260628082622-51484d62/report.html |
通过 | HTTP 200,返回 2266 bytes。 |
| 最小运动演示 | W2_00_MinimalModule |
通过 | 程序源和 compile artifact 均在 manifest 中可跳转。 |
| 三类运动演示 | W2_30_MotionAllTypes |
通过 | 远程 trajectory.json 有 12 帧,每帧包含 TCP 和 J1-J6。 |
| IO/wait/pulse 演示 | W2_60_IOWaitPulse |
通过 | 远程 trajectory.json 有 4 帧;页面 DI1 可将 wait 切到 satisfied。 |
| 完整示例演示 | W2_99_FullSpecExample |
通过 | 远程 trajectory.json 有 32 帧,每帧包含 TCP 和 J1-J6。 |
| 静态诊断展示 | W2_E10 到 W2_E40 |
通过 | report.json 中保留 expected diagnostics,summary.fail=0。 |
| 后处理展示 | W2_P10 到 W2_P30 |
通过 | post/roundtrip artifacts 均在 package 内。 |
| 桌面截图打开 | virtual-controller-desktop.png |
通过 | HTTP 200,45302 bytes。 |
| 移动截图打开 | virtual-controller-mobile.png |
通过 | HTTP 200,40407 bytes。 |