using System; using System.Collections.Generic; using System.ComponentModel; using TDMS.Common; namespace TDMS { /// /// NI定义了一个技术数据管理(Technical Data Management,TDM)解决方案。
/// - TDMS文件就是该技术解决方案的承载数据文件。本接口是这个文件格式的具体描述。
/// - 文件格式由三个层次组成:文件、组、通道。
/// - 文件层可包含任意数量的组,而每个组又可包含任意数量的通道。
/// - 在层次结构的每个级别,可以存储无限数量的自定义标量属性。
/// - 每个级别都接受无限数量的自定义属性,以实现文档齐全且可供搜索的数据文件。
/// - 位于文件中的描述性信息是此模型的一个主要优点,它提供了一种简单的方法来记录数据,而无需设计您自己的标头结构。

/// /// https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q000000x4PcCAI&l=zh-CN
/// https://www.ni.com/en/support/documentation/supplemental/06/the-ni-tdms-file-format.html
/// https://www.ni.com/docs/en-US/bundle/labwindows-cvi/page/cvi/libref/cvitdmslibrary.htm ///
public interface ITDMSFile : ITDMSLevel { public bool IsOpen { get; } /// /// 获取 TDMS 文件的信息。 /// TDMSFileInfo FileInfo { get; } /// /// 保存 TDMS 文件。 /// bool Save(); /// /// 打开指定路径的 TDMS 文件。 /// /// 文件路径。 bool Open(string filePath); /// /// 通过指定的 TDMS 文件信息打开文件。 /// /// 文件信息。 bool Open(TDMSFileInfo fileInfo); /// /// 创建 TDMS 文件。 /// /// 文件路径。 /// 文件类型。 /// 文件名称。 /// 文件描述。 /// 文件标题。 /// 文件作者。 bool Create(string filePath, string fileType, string name, string description, string title, string author); /// /// 创建 TDMS 文件。 /// /// 文件信息。 bool Create(TDMSFileInfo fileInfo); /// /// 添加指定名称和描述的通道组。 /// /// 组名称。 /// 组描述。 /// 添加的通道组。 ITDMSChannelGroup? AddGroup(string groupName, string description = ""); /// /// 获取或设置指定索引位置的通道组。 /// /// 索引位置。 /// 指定索引位置的通道组。 ITDMSChannelGroup? this[int index] { get; } /// /// 获取或设置指定名称的通道组。 /// /// 组名称。 /// 指定名称的通道组。 ITDMSChannelGroup? this[string groupName] { get; } /// /// 获取 TDMS 文件中的默认属性值。
/// - name
/// - description
/// - title
/// - author
/// - datetime
/// 其中datetime采用字符串表达,但可以TryParse转换为类型。 ///
/// 属性值字典 IDictionary GetDefaultProperties(); } }