文件格式

概述

EmeyeStudio 使用多种文件格式来存储工作区、工程、配置和数据。本文档介绍这些文件格式的结构和使用方法。

工作区配置文件 (.workspace)

用途:存储工作区的全局配置信息

格式:JSON

示例

{
  "version": "1.0",
  "name": "工作区名称",
  "projects": [
    {
      "name": "工程A",
      "path": "工程A/工程A.project"
    }
  ],
  "elfFiles": [
    {
      "fileName": "test.elf",
      "originalPath": "原始路径",
      "checksum": "md5校验值",
      "variableCount": 100,
      "userAddedVariables": ["g_var1", "g_var2"]
    }
  ],
  "devices": [
    {
      "name": "串口设备A",
      "type": "serial",
      "port": "COM1",
      "baudRate": 115200
    }
  ],
  "currentProject": "工程A",
  "expandedNodes": ["工程A", "资源"]
}

字段说明

字段名 类型 说明
version string 配置文件格式版本
name string 工作区名称
projects array 工程列表
elfFiles array ELF 文件列表
devices array 设备列表
currentProject string 当前选中工程的名称
expandedNodes array 资源浏览器中展开的节点名称列表

工程配置文件 (.project)

用途:存储单个工程的配置信息

格式:JSON

示例

{
  "version": "2.0",
  "name": "工程名称",
  "hardwareConfig": {
    "configId": "{uuid}",
    "configName": "电机配置V1",
    "configPath": "../.resource/hardware/user_configs/motor_config_v1.hwcfg"
  },
  "VariablesRef": [
    {
      "name": "变量名",
      "type": "uint32",
      "address": "0x20000000",
      "elfFile": "test.elf"
    }
  ],
  "watchVariables": [],
  "elfFileReferences": [],
  "acquisitionConfig": {},
  "rawData": [],
  "analysisData": []
}

采集数据文件 (.xcpdata)

用途:存储 DAQ 采集的波形数据

格式:二进制(QDataStream 序列化)

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

存储结构

[文件头] (64 bytes)
├── version (quint32)           # 版本号
├── id (QString)                # 唯一标识符(UUID)
├── name (QString)              # 数据名称
├── type (quint32)              # 数据类型
├── creationTime (QDateTime)    # 创建时间
├── targetObject (QString)      # 目标对象
├── elfFilePath (QString)       # ELF 文件路径
└── baseTime (qint64)           # 基准绝对时间

[通道数据]
├── channelCount (quint32)      # 通道数量
└── 对每个通道:
    ├── name (QString)          # 通道名称
    ├── color (QColor)          # 显示颜色
    ├── isVisible (bool)        # 是否可见
    ├── pointCount (quint32)    # 数据点数量
    └── 对每个数据点:
        ├── time (double)       # 时间戳(绝对时间)
        └── value (double)      # 数值

[分析配置块] (JSON 格式)
├── 标注信息
├── 片段信息
└── 视图状态

时间处理
- 存储时使用绝对时间(自1970-01-01以来的毫秒时间戳)
- 显示时转换为相对时间(相对于数据最早时间点的偏移)

硬件配置文件 (.hwcfg)

用途:存储硬件设备的配置参数

格式:JSON

示例

{
  "id": "{uuid}",
  "name": "电机配置V1",
  "type": "motor",
  "description": "永磁同步电机配置",
  "createdAt": "2026-03-01T10:00:00",
  "updatedAt": "2026-03-01T10:00:00",
  "components": [
    {
      "id": "{uuid}",
      "name": "电机核心参数",
      "order": 1,
      "parameters": [
        {
          "id": "{uuid}",
          "name": "额定功率",
          "physicalName": "Motor.RatedPower",
          "type": "fixed",
          "dataType": "float",
          "value": 150.0,
          "unit": "kW",
          "description": "电机额定功率"
        },
        {
          "id": "{uuid}",
          "name": "实际转速",
          "physicalName": "Motor.ActualSpeed",
          "type": "dynamic",
          "dataType": "float",
          "elfVariable": "g_motor_speed",
          "unit": "rpm",
          "description": "电机实际转速"
        }
      ]
    }
  ],
  "keyVariableGroups": []
}

MDF4 文件 (.mf4)

用途:标准汽车数据交换格式

支持操作
- ✅ 保存为 MDF4 格式
- ✅ 加载 MDF4 文件
- ✅ 导入第三方工具生成的 MDF4 文件

特点
- 符合 ASAM MDF4 标准
- 可与 Vector CANape、ETAS INCA 等工具互操作
- 支持多个数据组和通道组
- 支持通道名称、单位、转换公式等元数据

目录结构

工作区目录结构

工作区目录/
├── .workspace                 # 工作区配置文件
├── .resource/                 # 工作区共享资源
│   ├── connections/           # 连接配置
│   ├── hardware/              # 硬件配置库
│   │   └── user_configs/      # 用户硬件配置
│   └── elf/                   # ELF 文件库
├── Project1/                  # 工程目录
│   ├── Project1.project       # 工程配置文件
│   └── Data/                  # 数据目录
│       └── {UUID}_数据名称.xcpdata
└── Project2/
    └── ...

文件关联

文件扩展名 关联软件 说明
.workspace EmeyeStudio 工作区配置文件
.project EmeyeStudio 工程配置文件
.xcpdata EmeyeStudio 采集数据文件
.hwcfg EmeyeStudio 硬件配置文件
.mf4 EmeyeStudio/第三方工具 MDF4 数据文件
.elf EmeyeStudio/IDE ELF 可执行文件

注意事项

提示:请勿手动编辑配置文件,可能导致文件损坏。请通过软件界面进行操作。

注意:数据文件(.xcpdata)采用二进制格式,不支持手动编辑。如需导出数据,请使用 CSV 导出功能。

相关文档