工作区与工程管理

本文档介绍 EmeyeStudio 的工作区与工程管理功能,包括创建、打开、保存和管理工作区与工程。

概述

EmeyeStudio 采用工作区-工程两级架构,借鉴 Visual Studio 的 .sln 与 .vcxproj 组织模式:

概念 说明 对应文件
工作区 顶层容器,管理多个工程的关联及全局配置 .workspace
工程 独立功能单元,维护自身文件与配置 .project
资源 ELF文件、设备、硬件配置的管理容器 工作区子节点

层级结构

Workspace(工作区)
├── Resources(资源)/              ← 工作区级别共享资源
│   ├── Connections(连接设置)/    ← 连接配置
│   │   └── XCP Slave              ← 已配置的连接
│   ├── Hardware Library(硬件配置库)/  ← 硬件配置模板
│   │   ├── 电机模板.hwcfg
│   │   └── 电机配置V1.hwcfg
│   └── ELF Resources(ELF资源)/   ← ELF文件管理
│       └── motor.elf
│           └── global variables    ← 全局变量列表
│
├── Project1(工程1)/             ← 工程目录
│   ├── HardwareRef(硬件配置引用)/  ← 引用工作区硬件配置
│   ├── VariablesRef(变量引用)/   ← 按硬件配置分组的变量
│   ├── WatchConfig/               ← Watch场景配置
│   ├── ScopeConfig/               ← Scope场景配置
│   ├── RecorderConfig/            ← Recorder场景配置
│   ├── Triggers(触发器)/         ← 触发规则
│   └── Data(数据)/               ← 数据文件
│       └── {UUID}_电机启动.xcpdata
│
└── Project2(工程2)/
    └── ...

工作区操作

新建工作区

  1. 选择「文件」→「新建工作区」
  2. 输入工作区名称和保存路径
  3. 系统创建 .workspace 文件

约束:同一时间只能打开一个工作区

打开工作区

方式一:选择「文件」→「打开工作区」,选择 .workspace 文件

方式二:选择工作区根目录(系统自动识别配置文件)

切换规则
- 如果当前工作区有未保存修改,会提示保存
- 切换前会关闭当前工作区

保存工作区

  • 选择「文件」→「保存工作区」
  • 程序关闭前自动保存

保存内容
- 工程列表及路径
- ELF文件列表
- 设备列表
- 视图状态(展开/折叠)

工作区自动恢复

程序启动时自动加载上次打开的工作区及其状态。

工程操作

创建工程

  1. 选择「文件」→「创建工程」
  2. 输入工程名称(禁止中文、空格、特殊字符)
  3. 选择工程存储路径
  4. 系统创建工程目录和配置文件

工程目录结构

工程目录/
├── {工程名}.project    # 工程配置文件
└── Data/               # 数据目录

打开工程

  1. 选择「文件」→「打开工程」
  2. 选择 .project 文件或工程目录
  3. 工程将添加到当前工作区

关闭工程

  • 右键工程节点 →「删除工程」
  • 仅从工作区视图移除,不删除物理文件

工程右键菜单

工程节点右键
├── 开始DAQ采集      # 启动该工程 DAQ
├── 停止DAQ采集      # 停止该工程 DAQ
├── 重启DAQ采集      # 重启该工程 DAQ
├── 重命名工程
├── 查看属性
├── 导出
│   ├── 导出工程配置
│   └── 导出变量列表
└── 删除工程          # 从工作区移除(不删除物理文件)

硬件配置管理

关联硬件配置

  1. 右键工程下的「硬件配置」节点
  2. 选择「关联硬件配置」
  3. 从工作区硬件配置库中选择配置

硬件配置节点右键菜单

未关联时

└── 关联硬件配置    # 打开对话框选择硬件配置

已关联时

├── 当前: 电机配置V1.hwcfg    # 仅显示
├── 更换硬件配置              # 更换为其他配置
├── 取消关联                  # 解除关联
└── 从硬件配置导入变量        # 导入动态参数作为工程变量

从硬件配置导入变量

将硬件配置中的动态参数导入为工程变量:

  • 仅导入动态参数(已绑定ELF变量的参数)
  • 变量放入以硬件配置名称命名的分组
  • 显示格式:物理定义名称 [ELF变量名]

变量管理

变量分组

变量按硬件配置分组显示:

VariablesRef(变量引用)
├── 电机配置V1/         ← 从"电机配置V1"导入的变量
│   ├── U相电流 [g_motorCurrent_U]
│   └── 转速 [g_motorSpeed]
├── 电机配置V2/         ← 从"电机配置V2"导入的变量
│   └── ...
└── 未分组/             ← 未关联硬件配置的变量

添加变量到工程

  1. 在ELF文件节点下找到目标变量
  2. 右键 →「添加到工程」
  3. 变量放入工程的「未分组」节点

删除变量分组

  • 右键分组节点 →「删除分组」
  • 该分组下所有变量移动到「未分组」

数据管理

数据目录

数据文件统一存放在工程目录的 Data/ 子目录下:

工程目录/
└── Data/
    ├── {UUID}_电机启动.xcpdata
    └── {UUID}_转速阶跃响应.xcpdata

文件名格式{UUID}_{数据名称}.xcpdata

数据节点操作

数据根节点

└── 导入数据          # 导入外部数据文件

数据文件节点

├── 加载              # 加载到Wave视图
├── 重命名
├── 导出
└── 删除

标注片段节点

├── 加载片段          # 在Detail Wave显示
├── 重命名
└── 删除

重要概念

关于"当前工程"概念

  • 工具栏工程选择下拉框仅用于DAQ控制
  • 资源管理器中的操作基于操作对象工程
  • 不维护全局的"当前工程"状态

工作状态是工作区级别

工作状态包括:
- 当前显示的数据文件
- 波形视图的显示范围
- 窗口布局和分割器状态

工作状态会自动保存,程序重启后恢复。

ELF是工作区共享资源

  • 多个工程可以引用同一个ELF文件
  • ELF文件加载是工作区级别功能

常见问题

Q: 工程名称有什么限制?

工程名称禁止中文、空格和特殊字符,建议使用英文和数字。

Q: 删除工程会删除物理文件吗?

不会。删除工程仅从工作区视图移除,物理文件保留在原位置。

Q: 如何切换工作区?

选择「文件」→「打开工作区」,系统会提示保存当前工作区后切换。

Q: 变量分组可以删除吗?

可以。删除分组后,分组内的变量会移动到「未分组」节点。

相关文档


本文档最后更新时间:2026-04-03