|
27 | 27 | * * |
28 | 28 | ***********************************************************************************************************************/ |
29 | 29 |
|
| 30 | +/** |
| 31 | + @file |
| 32 | + @author Andrew D. Zonenberg |
| 33 | + @brief Declaration of ThunderScopeOscilloscope |
| 34 | + @ingroup scopedrivers |
| 35 | + */ |
| 36 | + |
30 | 37 | #ifndef ThunderScopeOscilloscope_h |
31 | 38 | #define ThunderScopeOscilloscope_h |
32 | 39 |
|
33 | 40 | #include "RemoteBridgeOscilloscope.h" |
34 | 41 | #include "../xptools/HzClock.h" |
35 | 42 |
|
36 | 43 | /** |
37 | | - @brief ThunderScopeOscilloscope - driver for talking to the TS.NET daemons |
| 44 | + @brief Driver for talking to the TS.NET server controlling a ThunderScope |
| 45 | +
|
| 46 | + @ingroup scopedrivers |
38 | 47 | */ |
39 | 48 | class ThunderScopeOscilloscope : public RemoteBridgeOscilloscope |
40 | 49 | { |
@@ -86,26 +95,46 @@ class ThunderScopeOscilloscope : public RemoteBridgeOscilloscope |
86 | 95 |
|
87 | 96 | std::string GetChannelColor(size_t i); |
88 | 97 |
|
| 98 | + ///@brief Number of analog channels (always 4 at the moment) |
89 | 99 | size_t m_analogChannelCount; |
90 | 100 |
|
91 | | - // Cache |
| 101 | + ///@brief Map of channel numbers to attenuation levels |
92 | 102 | std::map<size_t, double> m_channelAttenuations; |
93 | 103 |
|
| 104 | + ///@brief Number of WFM/s acquired by hardware |
94 | 105 | FilterParameter m_diag_hardwareWFMHz; |
| 106 | + |
| 107 | + ///@brief Number of WFM/s recieved by the driver |
95 | 108 | FilterParameter m_diag_receivedWFMHz; |
| 109 | + |
| 110 | + ///@brief Number of waveforms acquired during this session |
96 | 111 | FilterParameter m_diag_totalWFMs; |
| 112 | + |
| 113 | + ///@brief Number of waveforms dropped because some part of the pipeline couldn't keep up |
97 | 114 | FilterParameter m_diag_droppedWFMs; |
| 115 | + |
| 116 | + ///@brief Percentage of waveforms which were dropped |
98 | 117 | FilterParameter m_diag_droppedPercent; |
| 118 | + |
| 119 | + ///@brief Counter of average trigger rate |
99 | 120 | HzClock m_receiveClock; |
100 | 121 |
|
101 | 122 | ///@brief Buffers for storing raw ADC samples before converting to fp32 |
102 | 123 | std::vector<std::unique_ptr<AcceleratorBuffer<int16_t> > > m_analogRawWaveformBuffers; |
103 | 124 |
|
| 125 | + ///@brief Vulkan queue used for sample conversion |
104 | 126 | std::shared_ptr<QueueHandle> m_queue; |
| 127 | + |
| 128 | + ///@brief Command pool from which m_cmdBuf was allocated |
105 | 129 | std::unique_ptr<vk::raii::CommandPool> m_pool; |
| 130 | + |
| 131 | + ///@brief Command buffer for sample conversion |
106 | 132 | std::unique_ptr<vk::raii::CommandBuffer> m_cmdBuf; |
| 133 | + |
| 134 | + ///@brief Compute pipeline for converting raw ADC codes to float32 samples |
107 | 135 | std::unique_ptr<ComputePipeline> m_conversionPipeline; |
108 | 136 |
|
| 137 | + ///@brief Buffer for storing channel clip state |
109 | 138 | AcceleratorBuffer<uint32_t> m_clippingBuffer; |
110 | 139 |
|
111 | 140 | public: |
|
0 commit comments