12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- // // ******************************************************************
- // // /\ /| @File edge_pulse_data.h
- // // \ V/ @Brief
- // // | "") @Author lijinwen, ghz005@uni-trend.com.cn
- // // / | @Creation 2024-05-16
- // // / \\ @Modified 2024-06-24
- // // *(__\_\
- // // ******************************************************************
- #pragma once
- #include "edge_pulse.h"
- //#include "BaseEnums/Channels.h"
- namespace Protocol
- {
- class EdgePulseData
- {
- public:
- /**
- * \brief 波形数据长度
- */
- uint64_t waveform_data_count;
- /**
- * \brief 边沿脉宽个数
- */
- uint64_t edge_pulses_count;
- /**
- * \brief 采样率
- */
- double sample_rate;
- EdgePulseData(const uint64_t edge_pulses_count, const uint64_t data_count, const double sample_rate,
- EdgePulse* edge_pulses_ptr)
- : waveform_data_count(data_count),
- edge_pulses_count(edge_pulses_count),
- sample_rate(sample_rate),
- edgePulsesPtr_(edge_pulses_ptr)
- {
- }
- EdgePulse* GetDataAddrPtr() const
- {
- return edgePulsesPtr_;
- //return edgePulsesPtr;
- }
- protected:
- EdgePulse* edgePulsesPtr_; //边沿脉宽数据指针
- };
- struct EdgePulseDataTwoLevels : EdgePulseData
- {
- EdgePulseDataTwoLevels(uint64_t edge_pulses_count, uint64_t data_count, double sample_rate,
- EdgePulse* edge_pulses_ptr);
- __override TwoLevelEdgePulse* GetDataAddrPtr() const
- {
- return reinterpret_cast<TwoLevelEdgePulse*>(edgePulsesPtr_);
- }
- __readonly int32_t levelCount = 2;
- };
- struct EdgePulseDataThreeLevels : EdgePulseData
- {
- EdgePulseDataThreeLevels(uint64_t edge_pulses_count, uint64_t data_count, double sample_rate,
- EdgePulse* edge_pulses_ptr);
- __override TwoLevelEdgePulse* GetDataAddrPtr() const
- {
- return reinterpret_cast<TwoLevelEdgePulse*>(edgePulsesPtr_);
- }
- __readonly int32_t levelCount = 3;
- };
- }
|