ITDMSFile.cs 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using TDMS.Common;
  5. namespace TDMS
  6. {
  7. /// <summary>
  8. /// NI定义了一个技术数据管理(Technical Data Management,TDM)解决方案。<br />
  9. /// - TDMS文件就是该技术解决方案的承载数据文件。本接口是这个文件格式的具体描述。<br/>
  10. /// - 文件格式由三个层次组成:文件、组、通道。<br/>
  11. /// - 文件层可包含任意数量的组,而每个组又可包含任意数量的通道。<br/>
  12. /// - 在层次结构的每个级别,可以存储无限数量的自定义标量属性。<br/>
  13. /// - 每个级别都接受无限数量的自定义属性,以实现文档齐全且可供搜索的数据文件。<br/>
  14. /// - 位于文件中的描述性信息是此模型的一个主要优点,它提供了一种简单的方法来记录数据,而无需设计您自己的标头结构。<br/><br/>
  15. ///
  16. /// https://knowledge.ni.com/KnowledgeArticleDetails?id=kA03q000000x4PcCAI&l=zh-CN <br/>
  17. /// https://www.ni.com/en/support/documentation/supplemental/06/the-ni-tdms-file-format.html <br/>
  18. /// https://www.ni.com/docs/en-US/bundle/labwindows-cvi/page/cvi/libref/cvitdmslibrary.htm
  19. /// </summary>
  20. public interface ITDMSFile : ITDMSLevel
  21. {
  22. public bool IsOpen { get; }
  23. /// <summary>
  24. /// 获取 TDMS 文件的信息。
  25. /// </summary>
  26. TDMSFileInfo FileInfo { get; }
  27. /// <summary>
  28. /// 保存 TDMS 文件。
  29. /// </summary>
  30. bool Save();
  31. /// <summary>
  32. /// 打开指定路径的 TDMS 文件。
  33. /// </summary>
  34. /// <param name="filePath">文件路径。</param>
  35. bool Open(string filePath);
  36. /// <summary>
  37. /// 通过指定的 TDMS 文件信息打开文件。
  38. /// </summary>
  39. /// <param name="fileInfo">文件信息。</param>
  40. bool Open(TDMSFileInfo fileInfo);
  41. /// <summary>
  42. /// 创建 TDMS 文件。
  43. /// </summary>
  44. /// <param name="filePath">文件路径。</param>
  45. /// <param name="fileType">文件类型。</param>
  46. /// <param name="name">文件名称。</param>
  47. /// <param name="description">文件描述。</param>
  48. /// <param name="title">文件标题。</param>
  49. /// <param name="author">文件作者。</param>
  50. bool Create(string filePath, string fileType, string name, string description, string title, string author);
  51. /// <summary>
  52. /// 创建 TDMS 文件。
  53. /// </summary>
  54. /// <param name="fileInfo">文件信息。</param>
  55. bool Create(TDMSFileInfo fileInfo);
  56. /// <summary>
  57. /// 添加指定名称和描述的通道组。
  58. /// </summary>
  59. /// <param name="groupName">组名称。</param>
  60. /// <param name="description">组描述。</param>
  61. /// <returns>添加的通道组。</returns>
  62. ITDMSChannelGroup? AddGroup(string groupName, string description = "");
  63. /// <summary>
  64. /// 获取或设置指定索引位置的通道组。
  65. /// </summary>
  66. /// <param name="index">索引位置。</param>
  67. /// <returns>指定索引位置的通道组。</returns>
  68. ITDMSChannelGroup? this[int index] { get; }
  69. /// <summary>
  70. /// 获取或设置指定名称的通道组。
  71. /// </summary>
  72. /// <param name="groupName">组名称。</param>
  73. /// <returns>指定名称的通道组。</returns>
  74. ITDMSChannelGroup? this[string groupName] { get; }
  75. /// <summary>
  76. /// 获取 TDMS 文件中的默认属性值。<br/>
  77. /// - name<br/>
  78. /// - description<br/>
  79. /// - title<br/>
  80. /// - author<br/>
  81. /// - datetime<br/>
  82. /// 其中datetime采用字符串表达,但可以TryParse转换为<see cref="DateTime"/>类型。
  83. /// </summary>
  84. /// <returns>属性值字典</returns>
  85. IDictionary<string, string> GetDefaultProperties();
  86. }
  87. }