EdgePulseData.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // // ******************************************************************
  2. // // /\ /| @File EdgePulseData.h
  3. // // \ V/ @Brief
  4. // // | "") @Author lijinwen, ghz005@uni-trend.com.cn
  5. // // / | @Creation 2024-05-16
  6. // // / \\ @Modified 2024-05-16
  7. // // *(__\_\
  8. // // ******************************************************************
  9. #pragma once
  10. #include "EdgePulse.h"
  11. //#include "BaseEnums/Channels.h"
  12. namespace Protocol
  13. {
  14. struct EdgePulseData
  15. {
  16. /**
  17. * \brief 波形数据长度
  18. */
  19. uint64_t WaveformDataCount;
  20. /**
  21. * \brief 边沿脉宽个数
  22. */
  23. uint64_t EdgePulsesCount;
  24. /**
  25. * \brief 采样率
  26. */
  27. double SampleRate;
  28. EdgePulseData(uint64_t edgePulsesCount, uint64_t dataCount, double sampleRate,
  29. EdgePulse* edgePulsesPtr)
  30. : WaveformDataCount(dataCount),
  31. EdgePulsesCount(edgePulsesCount),
  32. SampleRate(sampleRate),
  33. EdgePulsesPtr_(edgePulsesPtr)
  34. {
  35. }
  36. EdgePulse* GetDataAddrPtr() const
  37. {
  38. return EdgePulsesPtr_;
  39. //return edgePulsesPtr;
  40. }
  41. protected:
  42. EdgePulse* EdgePulsesPtr_; //边沿脉宽数据指针
  43. };
  44. struct EdgePulseDataTwoLevels : EdgePulseData
  45. {
  46. EdgePulseDataTwoLevels(uint64_t edgePulsesCount, uint64_t dataCount, double sampleRate,
  47. EdgePulse* edgePulsesPtr);
  48. __override TwoLevelEdgePulse* GetDataAddrPtr() const
  49. {
  50. return reinterpret_cast<TwoLevelEdgePulse*>(EdgePulsesPtr_);
  51. }
  52. __readonly int32_t LevelCount = 2;
  53. };
  54. struct EdgePulseDataThreeLevels : EdgePulseData
  55. {
  56. EdgePulseDataThreeLevels(uint64_t edgePulsesCount, uint64_t dataCount, double sampleRate,
  57. EdgePulse* edgePulsesPtr);
  58. __override TwoLevelEdgePulse* GetDataAddrPtr() const
  59. {
  60. return reinterpret_cast<TwoLevelEdgePulse*>(EdgePulsesPtr_);
  61. }
  62. __readonly int32_t LevelCount = 3;
  63. };
  64. }