国网实训平台(2023.05 – 2023.09)
项目简介
面向电力作业培训的数字孪生实训系统,由配置端、练习端和考试端组成。通过三维场景、虚拟设备、作业流程和交互工具模拟真实电力作业,支持课程配置、流程练习和实操考试。
本人主要负责运行时:将配置端生成的场景、流程步骤和蓝图加载到三维场景,并按业务模式驱动实训、练习和考试。
技术栈
Vue 3 / TypeScript / ThingJS / Pinia / Vite / Ant Design Vue / UnoCSS / ECharts / Howler / Colyseus / Blueprint / GLTF
个人职责
负责运行时整体开发;配置端流程、场景和运行时蓝图的解析与加载;三维场景初始化、切换、销毁和资源清理;步骤执行器(挂载、执行、完成、销毁);学习 / 练习 / 考试三种模式;考试校验、提交、扣分、成绩和过程记录;设备、工具、人员、机器人及作业对象交互;工具箱、两票、语音、点位、引导机器人;蓝图节点注册与执行;步骤进度、场景、弹窗和三维状态同步;实训记录本地保存和服务端同步。
技术亮点
- 配置驱动运行时:用
processId取流程、场景和蓝图,同一套运行时支持不同课程、作业和考试。 - 场景动态切换:先销毁步骤实例、停记录、关 UI、清点位和事件,再销毁场景并加载新场景、新步骤和蓝图。
- 步骤执行器:按步骤名映射步骤类;生命周期
mounted/beforeComplete/uiComplete/submit/destroyed。 - 三种模式:学习可回退和引导;练习校验并提示;考试按序、记错扣分。步骤基类提供
isStudyMode/isPracticeMode/isExamMode。 - 蓝图运行时:蓝图驱动模型、弹窗、状态、语音、点位、工器具、人员检查、故障点、跳转和条件;与步骤代码解耦。
- 考试记录与步骤校验:结构化记录日志、扣分和成绩;每步独立
submit判工器具、顺序、防护、围栏警示、两票和设备状态。 - 生命周期与有效时长:步骤或场景销毁时统一清事件和状态;按活跃 / 空闲统计有效操作时长。
项目成果
- 配置端流程在运行时动态加载执行
- 学习、练习、考试三种模式差异化交互
- 三维场景、作业步骤、蓝图和业务组件联动
- 支持设备操作、工器具、人员检查和票据填写
- 考试步骤校验、错误扣分、成绩计算和操作记录
- 实训记录本地保存并同步服务端
- 场景、步骤、工具、事件统一生命周期
- 配置驱动和模块化运行时,支持不同课程和作业流程复用
可能会问的问题
换一门课为什么不用改运行时代码?
用 processId 取配置端的流程、场景和运行时蓝图:解析步骤树、加载工具 / 作业场景、注册蓝图节点再执行。同一套运行时跑不同课程、作业和考试。
切步骤后旧场景的点位、弹窗、监听还在吗?
先销毁步骤实例、停记录、关 UI、清点位和模型样式、人员状态和工具事件,再销毁三维场景,最后加载新场景、新步骤和蓝图。
学习、练习、考试三种模式差在哪?
学习可回退、自由查看和引导;练习校验关键操作并提示;考试限制跳转、按序完成、记错扣分。步骤基类提供 isStudyMode / isPracticeMode / isExamMode。
考试分数是页面里写死一套规则吗?
每步独立 submit:工器具是否领全、顺序、防护、围栏警示、两票、设备状态。记录管理器记日志、扣分和成绩,完成后本地保存并同步服务端。
配置端蓝图能驱动哪些事?
模型操作、弹窗、设备状态、语音、点位拾取、工器具、人员检查、故障点、步骤跳转、条件判断和事件。通用流程走蓝图,具体三维业务仍在步骤代码里。
有效操作时长怎么算,会把挂机算进去吗?
听用户活跃 / 空闲:持续操作开始计时,空闲暂停,有效时长写入课程实训记录。