37#ifndef HaasoscopePro_h
38#define HaasoscopePro_h
40#include "RemoteBridgeOscilloscope.h"
41#include "../xptools/HzClock.h"
81 virtual void Start()
override;
88 virtual std::set<InterleaveConflict> GetInterleaveConflicts()
override;
Definition AcceleratorBuffer.h:204
A parameter to a filter.
Definition FilterParameter.h:86
Driver for talking to the HaasoscopePro oscilloscope.
Definition HaasoscopePro.h:49
FilterParameter m_diag_droppedWFMs
Number of waveforms dropped because some part of the pipeline couldn't keep up.
Definition HaasoscopePro.h:115
std::string GetChannelColor(size_t i)
Color the channels based on our standard color sequence (blue-red-green-yellow)
Definition HaasoscopePro.cpp:158
virtual std::vector< uint64_t > GetSampleDepthsNonInterleaved() override
Get the legal memory depths for this scope in all-channels mode.
Definition HaasoscopePro.cpp:557
std::vector< std::unique_ptr< AcceleratorBuffer< int16_t > > > m_analogRawWaveformBuffers
Buffers for storing raw ADC samples before converting to fp32.
Definition HaasoscopePro.h:124
virtual void StartSingleTrigger() override
Arms the trigger for a single acquistion.
Definition HaasoscopePro.cpp:501
FilterParameter m_diag_droppedPercent
Percentage of waveforms which were dropped.
Definition HaasoscopePro.h:118
virtual uint32_t GetInstrumentTypesForChannel(size_t i) const override
Returns a bitfield describing the set of instrument types that a given channel supports.
Definition HaasoscopePro.cpp:190
virtual void SetChannelCoupling(size_t i, OscilloscopeChannel::CouplingType type) override
Sets the coupling used for an input channel.
Definition HaasoscopePro.cpp:614
virtual void Start() override
Starts the instrument in continuous trigger mode.
Definition HaasoscopePro.cpp:493
virtual void SetChannelAttenuation(size_t i, double atten) override
Sets the probe attenuation used for an input channel.
Definition HaasoscopePro.cpp:215
virtual OscilloscopeChannel * GetExternalTrigger() override
Returns the external trigger input channel, if we have one.
Definition HaasoscopePro.cpp:261
virtual bool CanEnableChannel(size_t i) override
Determines if a channel can be enabled.
Definition HaasoscopePro.cpp:660
virtual std::vector< uint64_t > GetSampleRatesInterleaved() override
Get the legal sampling rates (in Hz) for this scope in combined-channels mode.
Definition HaasoscopePro.cpp:543
FilterParameter m_diag_totalWFMs
Number of waveforms acquired during this session.
Definition HaasoscopePro.h:112
std::map< size_t, double > m_channelAttenuations
Map of channel numbers to attenuation levels.
Definition HaasoscopePro.h:103
void ResetPerCaptureDiagnostics()
Reset performance counters at the start of a capture.
Definition HaasoscopePro.cpp:145
virtual Oscilloscope::TriggerMode PollTrigger() override
Checks the curent trigger status.
Definition HaasoscopePro.cpp:267
virtual double GetChannelAttenuation(size_t i) override
Gets the probe attenuation for an input channel.
Definition HaasoscopePro.cpp:209
virtual bool AcquireData() override
Pull data from the instrument.
Definition HaasoscopePro.cpp:274
virtual std::vector< uint64_t > GetSampleDepthsInterleaved() override
Get the legal memory depths for this scope in combined-channels mode.
Definition HaasoscopePro.cpp:585
virtual unsigned int GetInstrumentTypes() const override
Returns a bitfield describing the set of instrument types that this instrument supports.
Definition HaasoscopePro.cpp:185
AcceleratorBuffer< uint32_t > m_clippingBuffer
Buffer for storing channel clip state.
Definition HaasoscopePro.h:130
virtual bool SetInterleaving(bool combine) override
Configures the scope to combine channels.
Definition HaasoscopePro.cpp:598
virtual unsigned int GetChannelBandwidthLimit(size_t i) override
Gets the bandwidth limit for an input channel.
Definition HaasoscopePro.cpp:227
size_t m_analogChannelCount
Number of analog channels (always 4 at the moment)
Definition HaasoscopePro.h:100
virtual std::vector< uint64_t > GetSampleRatesNonInterleaved() override
Get the legal sampling rates (in Hz) for this scope in all-channels mode.
Definition HaasoscopePro.cpp:513
FilterParameter m_diag_hardwareWFMHz
Number of WFM/s acquired by hardware.
Definition HaasoscopePro.h:106
virtual void FlushConfigCache() override
Instruments are allowed to cache configuration settings to reduce round trip queries to the device.
Definition HaasoscopePro.cpp:204
static std::string GetDriverNameInternal()
Return the driver name (lower case!)
Definition HaasoscopePro.cpp:199
virtual void ForceTrigger() override
Forces a single acquisition as soon as possible.
Definition HaasoscopePro.cpp:507
virtual std::vector< unsigned int > GetChannelBandwidthLimiters(size_t i) override
Gets the set of available bandwidth limiters for an input channel.
Definition HaasoscopePro.cpp:248
HzClock m_receiveClock
Counter of average trigger rate.
Definition HaasoscopePro.h:121
FilterParameter m_diag_receivedWFMHz
Number of WFM/s recieved by the driver.
Definition HaasoscopePro.h:109
std::vector< unsigned int > m_bandwidthLimits
Bandwidth limiters.
Definition HaasoscopePro.h:133
virtual bool IsInterleaving() override
Checks if the scope is currently combining channels.
Definition HaasoscopePro.cpp:592
virtual void SetChannelBandwidthLimit(size_t i, unsigned int limit_mhz) override
Sets the bandwidth limit for an input channel.
Definition HaasoscopePro.cpp:233
virtual std::vector< OscilloscopeChannel::CouplingType > GetAvailableCouplings(size_t i) override
Gets the set of legal coupling values for an input channel.
Definition HaasoscopePro.cpp:604
std::unique_ptr< ComputePipeline > m_conversionPipeline
Compute pipeline for converting raw ADC codes to float32 samples.
Definition HaasoscopePro.h:127
Clock that measures rate at which it is called; windowed average.
Definition HzClock.h:52
A single channel on an oscilloscope.
Definition OscilloscopeChannel.h:49
TriggerMode
Definition Oscilloscope.h:398
An oscilloscope connected over a SDK-to-SCPI bridge that follows our pattern (i.e....
Definition RemoteBridgeOscilloscope.h:40
Abstraction of a transport layer for moving SCPI data between endpoints.
Definition SCPITransport.h:53