ngscopeclient 0.1-dev+51fbda87c
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members

A miscellaneous instrument which streams scalar data over CSV. More...

#include <CSVStreamInstrument.h>

Inheritance diagram for CSVStreamInstrument:
Inheritance graph
[legend]
Collaboration diagram for CSVStreamInstrument:
Collaboration graph
[legend]

Public Member Functions

 CSVStreamInstrument (SCPITransport *transport)
 Initialize the driver. More...
 
virtual uint32_t GetInstrumentTypes () const override
 Returns a bitfield describing the set of instrument types that this instrument supports. More...
 
virtual uint32_t GetInstrumentTypesForChannel (size_t i) const override
 Returns a bitfield describing the set of instrument types that a given channel supports. More...
 
virtual bool AcquireData () override
 Pull data from the instrument. More...
 
 MISC_INITPROC (CSVStreamInstrument)
 
- Public Member Functions inherited from SCPIInstrument
 SCPIInstrument (SCPITransport *transport, bool identify=true)
 
virtual std::string GetTransportConnectionString ()
 Gets the connection string for our transport. More...
 
virtual std::string GetTransportName ()
 Gets the name of our transport. More...
 
virtual std::string GetName () const
 
virtual std::string GetVendor () const
 
virtual std::string GetSerial () const
 
virtual std::string GetDriverName () const =0
 
- Public Member Functions inherited from Instrument
virtual unsigned int GetInstrumentTypes () const =0
 Returns a bitfield describing the set of instrument types that this instrument supports. More...
 
virtual std::string GetName () const =0
 
virtual std::string GetVendor () const =0
 
virtual std::string GetSerial () const =0
 
virtual std::string GetTransportConnectionString ()=0
 Gets the connection string for our transport. More...
 
virtual std::string GetTransportName ()=0
 Gets the name of our transport. More...
 
virtual uint32_t GetInstrumentTypesForChannel (size_t i) const =0
 Returns a bitfield describing the set of instrument types that a given channel supports. More...
 
size_t GetChannelCount () const
 Gets the number of channels (of any type) this instrument has.
 
InstrumentChannelGetChannel (size_t i) const
 Gets a given channel on the instrument. More...
 
virtual std::string GetChannelDisplayName (size_t i)
 Gets the hardware display name for a channel. This is an arbitrary user-selected string. More...
 
virtual void SetChannelDisplayName (size_t i, std::string name)
 Sets the hardware display name for a channel. This is an arbitrary user-selected string. More...
 
InstrumentChannelGetChannelByDisplayName (const std::string &name)
 Gets a channel given the display name.
 
InstrumentChannelGetChannelByHwName (const std::string &name)
 Gets a channel given the hardware name.
 
virtual bool AcquireData ()=0
 Pull data from the instrument. More...
 
virtual YAML::Node SerializeConfiguration (IDTable &table) const
 Serializes this instrument's configuration to a YAML node. More...
 
virtual void LoadConfiguration (int version, const YAML::Node &node, IDTable &idmap)
 Load instrument and channel configuration from a save file. More...
 
virtual void PreLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap, ConfigWarningList &warnings)
 Parse a limited subset of instrument configuration but do not apply it. More...
 
- Public Member Functions inherited from SCPIDevice
 SCPIDevice (SCPITransport *transport, bool identify=true)
 
SCPITransportGetTransport () const
 

Static Public Member Functions

static std::string GetDriverNameInternal ()
 Returns the constant driver name "csvstream".
 
- Static Public Member Functions inherited from SCPIMiscInstrument
static void DoAddDriverClass (std::string name, MiscCreateProcType proc)
 
static void EnumDrivers (std::vector< std::string > &names)
 
static std::shared_ptr< SCPIMiscInstrumentCreateInstrument (std::string driver, SCPITransport *transport)
 

Protected Member Functions

void DoPreLoadConfiguration (int version, const YAML::Node &node, IDTable &idmap, ConfigWarningList &list)
 Validate instrument and channel configuration from a save file.
 
- Protected Member Functions inherited from SCPIInstrument
void DoSerializeConfiguration (YAML::Node &node, IDTable &table)
 

Additional Inherited Members

- Public Types inherited from SCPIMiscInstrument
typedef std::shared_ptr< SCPIMiscInstrument >(* MiscCreateProcType) (SCPITransport *)
 
- Public Types inherited from Instrument
enum  InstrumentTypes {
  INST_OSCILLOSCOPE = 0x01 , INST_DMM = 0x02 , INST_PSU = 0x04 , INST_FUNCTION = 0x08 ,
  INST_RF_GEN = 0x10 , INST_LOAD = 0x20 , INST_BERT = 0x40 , INST_MISC = 0x80 ,
  INST_SWITCH_MATRIX = 0x100
}
 
- Public Attributes inherited from Instrument
std::string m_nickname
 Optional user-selected nickname of the instrument. More...
 
- Protected Types inherited from SCPIMiscInstrument
typedef std::map< std::string, MiscCreateProcType > MiscCreateMapType
 
- Protected Attributes inherited from Instrument
std::list< sigc::slot< void(YAML::Node &, IDTable &)> > m_serializers
 List of methods which need to be called to serialize this node's configuration.
 
std::list< sigc::slot< void(int, const YAML::Node &, IDTable &)> > m_loaders
 List of methods which need to be called to deserialize this node's configuration.
 
std::list< sigc::slot< void(int, const YAML::Node &, IDTable &, ConfigWarningList &)> > m_preloaders
 List of methods which need to be called to pre-load this node's configuration.
 
std::vector< InstrumentChannel * > m_channels
 Set of all channels on this instrument.
 
- Protected Attributes inherited from SCPIDevice
SCPITransportm_transport
 
std::string m_vendor
 
std::string m_model
 
std::string m_serial
 
std::string m_fwVersion
 
- Static Protected Attributes inherited from SCPIMiscInstrument
static MiscCreateMapType m_misccreateprocs
 

Detailed Description

A miscellaneous instrument which streams scalar data over CSV.

Typically used to plot real time system state (voltages, temperatures, ADC values, etc) from a microcontroller over a UART or SWO trace interface.

The instrument protocol is a unidirectional stream of line oriented comma-separated-value (CSV) rather than SCPI.

At any time, the instrument may send lines with one or more of the following formats, separated by
characters. Lines not starting with these magic keywords are ignored.

CSV-NAME,ch1name,ch2name, ... : assign human readable names to channels CSV-UNIT,V,A, ... : specify unit associated with each channel CSV-DATA,1.23,3.14, ... : specify latest measurement value for each channel. It is not possible to perform partial updates of a single channel without updating the others.

Constructor & Destructor Documentation

◆ CSVStreamInstrument()

CSVStreamInstrument::CSVStreamInstrument ( SCPITransport transport)

Initialize the driver.

Parameters
transportSCPITransport pointing at the instrument

Member Function Documentation

◆ AcquireData()

bool CSVStreamInstrument::AcquireData ( )
overridevirtual

Pull data from the instrument.

Returns
True if waveform was acquired, false if connection lost or other serious error

Implements Instrument.

◆ GetInstrumentTypes()

uint32_t CSVStreamInstrument::GetInstrumentTypes ( ) const
overridevirtual

Returns a bitfield describing the set of instrument types that this instrument supports.

Not all types may be available on a given channel.

Implements Instrument.

◆ GetInstrumentTypesForChannel()

uint32_t CSVStreamInstrument::GetInstrumentTypesForChannel ( size_t  i) const
overridevirtual

Returns a bitfield describing the set of instrument types that a given channel supports.

Parameters
iChannel index

Implements Instrument.


The documentation for this class was generated from the following files: