37#ifndef VICPSocketTransport_h
38#define VICPSocketTransport_h
40#include "../xptools/Socket.h"
55 virtual std::string GetConnectionString()
override;
64 virtual bool SendCommand(
const std::string& cmd)
override;
65 virtual std::string ReadReply(
bool endOnSemicolon =
true, std::function<
void(
float)> progress =
nullptr)
override;
66 virtual size_t ReadRawData(
size_t len,
unsigned char* buf, std::function<
void(
float)> progress =
nullptr)
override;
67 virtual void SendRawData(
size_t len,
const unsigned char* buf)
override;
69 virtual bool IsCommandBatchingSupported()
override;
70 virtual bool IsConnected()
override;
72 virtual void FlushRXBuffer()
override;
Abstraction of a transport layer for moving SCPI data between endpoints.
Definition: SCPITransport.h:47
Class representing a network socket.
Definition: Socket.h:63
A SCPI transport tunneled over LeCroy's Virtual Instrument Control Protocol.
Definition: VICPSocketTransport.h:50
std::string GetHostname()
Returns the hostname of the scope this transport is connected to.
Definition: VICPSocketTransport.h:61
uint8_t m_nextSequence
Next sequence number.
Definition: VICPSocketTransport.h:105
uint8_t m_lastSequence
Previous sequence number.
Definition: VICPSocketTransport.h:108
static std::string GetTransportName()
Returns the constant string "vicp".
Definition: VICPSocketTransport.cpp:101
HEADER_OPS
VICP header opcode values.
Definition: VICPSocketTransport.h:76
@ OP_REMOTE
Not used.
Definition: VICPSocketTransport.h:81
@ OP_SRQ
GPIB SRQ signal.
Definition: VICPSocketTransport.h:90
@ OP_LOCKOUT
Not used.
Definition: VICPSocketTransport.h:84
@ OP_CLEAR
Not used.
Definition: VICPSocketTransport.h:87
@ OP_EOI
GPIB EOI signal.
Definition: VICPSocketTransport.h:96
@ OP_REQ
GPIB REQ signal.
Definition: VICPSocketTransport.h:93
@ OP_DATA
Data block.
Definition: VICPSocketTransport.h:78
unsigned short m_port
Port our socket is connected to.
Definition: VICPSocketTransport.h:117
uint8_t GetNextSequenceNumber()
Gets the next sequence number to be used by a packet.
Definition: VICPSocketTransport.cpp:114
Socket m_socket
Socket for communicating with the scope.
Definition: VICPSocketTransport.h:111
std::string m_hostname
Hostname our socket is connected to.
Definition: VICPSocketTransport.h:114
VICPSocketTransport(const std::string &args)
Creates a VICP transport.
Definition: VICPSocketTransport.cpp:49