DDC.DataRetrieval.cs 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System;
  2. using System.Runtime.InteropServices;
  3. using TDMS.Common;
  4. namespace TDMS.Externals
  5. {
  6. internal partial class DDC : DIAdemConnectivity
  7. {
  8. [DllImport(DLL, CallingConvention = CallingConvention.StdCall, EntryPoint = "DDC_GetNumDataValues")]
  9. public static extern Error CountDataValues(IntPtr channel, out ulong numValues);
  10. /// <summary>
  11. /// 获取指定通道中的数据值
  12. /// </summary>
  13. /// <param name="channel">通道句柄</param>
  14. /// <param name="indexOfFirstValueToGet">要获取的第一个数据值的从零开始的索引</param>
  15. /// <param name="numValuesToGet">要获取的数据值的数量,从指定的索引开始</param>
  16. /// <param name="values">
  17. /// - 接收指定通道数据值的数组。此数组的类型必须与指定通道的数据类型匹配。<br/>
  18. /// - 可以调用<see cref="GetDataType"/>来获取通道的数据类型。<br/>
  19. /// - 这个数组必须足够大,至少可以容纳numberOfValuesToGet参数指定的值的数量。<br/>
  20. /// - 如果指定通道的数据类型是字符串,则必须传递字符指针(char*)类型的数组。这个函数用这个函数分配的字符串指针填充数组。<br/>
  21. /// - 如果指定通道的数据类型是DDC_Timestamp,则必须传递CVIAbsoluteTime类型的数组。有关此类型的更多信息,请参阅实用程序库中的绝对时间函数。<br/>
  22. /// - 如果指定通道的数据类型是DDC_Timestamp,则必须调用DDC_GetDataValuesTimestampComponents而不是此函数。<br/>
  23. /// </param>
  24. /// <returns>是否成功。除非另有说明,否则零表示执行成功,负数表示错误代码。</returns>
  25. [DllImport(DLL, CallingConvention = CallingConvention.StdCall, EntryPoint = "DDC_GetDataValues")]
  26. public static extern Error GetDataValues(IntPtr channel,
  27. uint indexOfFirstValueToGet,
  28. uint numValuesToGet,
  29. ref byte values);
  30. [DllImport(DLL, CallingConvention = CallingConvention.StdCall, EntryPoint = "DDC_GetDataValuesTimestampComponents")]
  31. public static extern Error GetDataValuesTimestampComponents(IntPtr channel,
  32. uint indexOfFirstValueToGet,
  33. uint numValuesToGet,
  34. uint[] year,
  35. uint[] month,
  36. uint[] day,
  37. uint[] hour,
  38. uint[] minute,
  39. uint[] second,
  40. double[] milliSecond,
  41. uint[] weekDay);
  42. [DllImport(DLL, CallingConvention = CallingConvention.StdCall, EntryPoint = "DDC_GetDataType")]
  43. public static extern Error GetDataType(IntPtr channel, out TDMSDataType dataType);
  44. }
  45. }