文件格式
概述
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 导出功能。