简介
ATFX API 由两个 DLL 文件组成,可以与自定义软件集成以直接读取和提取 ATFX 文件中的数据。这篇文章将展示打开和读取 ATFX 文件的简单 C# 代码示例。
有关如何在类中实现以下代码段和属性的更多详细信息,请参阅 ATFX API 手册和提供的 C# 演示代码。该软件包可以从我们的 Programming Corner下载。
导入 C# DLL 文件
要导入 C# DLL 文件,必须在项目中引用 2 个 DLL 文件,并且以下命名空间用于引用 ATFX API 中的各种类和属性。
using EDM.RecordingInterface;
using EDM.Recording;
using ASAM.ODS.NVH;
using Common;
using Common.Spider;
using EDM.Utils;
using ASAM.ODS.ATFXML;
打开 ATFX 文件
要打开 ATFX 文件,请使用 RecordingManager 类调用 OpenRecording,它接受文件名并输出包含录制属性和信号列表的 IRecording 对象。
using EDM.RecordingInterface;
using EDM.Recording;
var recordingPath = "C:\Sig001.atfx";
// Open the ATFX file and get a IRecording object
RecordingManager.Manager.OpenRecording(recordingPath, out IRecording rec);
提取Recording 属性
使用从 ATFX 文件提取中创建的 IRecording,可以通过调用 IRecording.RecordingProperty 来访问Recording 属性。
RecordingManager.Manager.OpenRecording(recordingPath, out IRecording rec);
RecordingProperty recordingProperties = rec.RecordingProperty;
// A couple of properties in IRecording.RecordingProperty
DateTime createTime = recordingProperties.CreateTime;
string instrument = recordingProperties.Instruments;
MeasurementConfigType measurementType = recordingProperties.MeasurementType;
string name = recordingProperties.RecordingName;
以下屏幕截图显示了显示的Recording 属性的示例:
IRecording 还可用于访问信号列表,这是一种 ISignal 类型,包含其自己的属性和数据值,通过返回 List<ISignal> 的 IRecording.Signals。
RecordingManager.Manager.OpenRecording(recordingPath, out IRecording rec);
// Get the list of signals from the recording
List<ISignal> signals = rec.Signals;
// To get the Channel 4 signal, select the signal whose name is ‘Block(CH4)’
ISignal signalCh4 = signals.Where(sig => sig.Name == 'Block(CH4)').First();
// Get the frame, which is formatted like [[x1, x2, x3…], [y1, y2, y3…],…]
double[][] frame = signalCh4.GetFrame(0);
double[] xValues = frame[0];
double[] yValues = frame[1];
// If applicable
double[] zValues = frame[2];
// Size of the frame
int size = signalCh4.FrameSize;
以下屏幕截图显示了显示的信号属性和帧数据的示例: