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

Dummy SCPITransport for demo scope etc. More...

#include <SCPINullTransport.h>

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

Public Member Functions

 SCPINullTransport (const std::string &args)
 
virtual std::string GetConnectionString () override
 
virtual bool SendCommand (const std::string &cmd) override
 
virtual std::string ReadReply (bool endOnSemicolon=true, std::function< void(float)> progress=nullptr) override
 
virtual size_t ReadRawData (size_t len, unsigned char *buf, std::function< void(float)> progress=nullptr) override
 
virtual void SendRawData (size_t len, const unsigned char *buf) override
 
virtual bool IsCommandBatchingSupported () override
 
virtual bool IsConnected () override
 
- Public Member Functions inherited from SCPITransport
virtual std::string GetConnectionString ()=0
 
virtual std::string GetName ()=0
 
void SendCommandQueued (const std::string &cmd)
 Pushes a command into the transmit FIFO then returns immediately. More...
 
std::string SendCommandQueuedWithReply (std::string cmd, bool endOnSemicolon=true)
 Sends a command (flushing any pending/queued commands first), then returns the response. More...
 
void SendCommandImmediate (std::string cmd)
 Sends a command (jumping ahead of the queue) which does not require a response.
 
std::string SendCommandImmediateWithReply (std::string cmd, bool endOnSemicolon=true)
 Sends a command (jumping ahead of the queue), then returns the response. More...
 
void * SendCommandImmediateWithRawBlockReply (std::string cmd, size_t &len)
 Sends a command (jumping ahead of the queue) which reads a binary block response.
 
bool FlushCommandQueue ()
 Pushes all pending commands from SendCommandQueued() calls and blocks until they are all sent.
 
std::recursive_mutex & GetMutex ()
 
virtual void FlushRXBuffer (void)
 
virtual bool SendCommand (const std::string &cmd)=0
 
virtual std::string ReadReply (bool endOnSemicolon=true, std::function< void(float)> progress=nullptr)=0
 
virtual size_t ReadRawData (size_t len, unsigned char *buf, std::function< void(float)> progress=nullptr)=0
 
virtual void SendRawData (size_t len, const unsigned char *buf)=0
 
virtual bool IsCommandBatchingSupported ()=0
 
virtual bool IsConnected ()=0
 
void EnableRateLimiting (std::chrono::milliseconds interval)
 Enables rate limiting. Rate limiting is only applied to the queued command API. More...
 
void DeduplicateCommand (const std::string &cmd)
 Adds a command to the set of commands which may be deduplicated in the queue. More...
 

Static Public Member Functions

static std::string GetTransportName ()
 
- Static Public Member Functions inherited from SCPITransport
static void DoAddTransportClass (std::string name, CreateProcType proc)
 
static void EnumTransports (std::vector< std::string > &names)
 
static SCPITransportCreateTransport (const std::string &transport, const std::string &args)
 

Protected Attributes

std::string m_args
 
- Protected Attributes inherited from SCPITransport
std::mutex m_queueMutex
 
std::recursive_mutex m_netMutex
 
std::list< std::string > m_txQueue
 
std::set< std::string > m_dedupCommands
 
bool m_rateLimitingEnabled
 
std::chrono::system_clock::time_point m_nextCommandReady
 
std::chrono::milliseconds m_rateLimitingInterval
 

Additional Inherited Members

- Public Types inherited from SCPITransport
typedef SCPITransport *(* CreateProcType) (const std::string &args)
 
- Protected Types inherited from SCPITransport
typedef std::map< std::string, CreateProcType > CreateMapType
 
- Protected Member Functions inherited from SCPITransport
void RateLimitingWait ()
 Block until it's time to send the next command when rate limiting.
 
- Static Protected Attributes inherited from SCPITransport
static CreateMapType m_createprocs
 

Detailed Description

Dummy SCPITransport for demo scope etc.

Member Function Documentation

◆ GetConnectionString()

string SCPINullTransport::GetConnectionString ( )
overridevirtual

Implements SCPITransport.

◆ IsCommandBatchingSupported()

bool SCPINullTransport::IsCommandBatchingSupported ( )
overridevirtual

Implements SCPITransport.

◆ IsConnected()

bool SCPINullTransport::IsConnected ( )
overridevirtual

Implements SCPITransport.

◆ ReadRawData()

size_t SCPINullTransport::ReadRawData ( size_t  len,
unsigned char *  buf,
std::function< void(float)>  progress = nullptr 
)
overridevirtual

Implements SCPITransport.

◆ ReadReply()

string SCPINullTransport::ReadReply ( bool  endOnSemicolon = true,
std::function< void(float)>  progress = nullptr 
)
overridevirtual

Implements SCPITransport.

◆ SendCommand()

bool SCPINullTransport::SendCommand ( const std::string &  cmd)
overridevirtual

Implements SCPITransport.

◆ SendRawData()

void SCPINullTransport::SendRawData ( size_t  len,
const unsigned char *  buf 
)
overridevirtual

Implements SCPITransport.


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