35 typedef struct CUSBTMCDeviceListEntry
38 libusb_device * pDevice;
39 std::vector<U8> PortPath;
49 } tUSBTMCDeviceListEntry;
51 typedef std::list<tUSBTMCDeviceListEntry>
55 libusb_context * m_pContext;
56 tUSBTMCDeviceList m_DeviceList;
59 bool GetDeviceListEntry(
const tResourceName ResourceName, libusb_device * & pDevice);
78 virtual bool FindResources(CResourceList & rList, std::string Filter =
"?*");
95 typedef CUSBTMCResourceManager::tUSBTMCDeviceListEntry tUSBTMCDeviceListEntry;
96 typedef CUSBTMCResourceManager::tUSBTMCDeviceList tUSBTMCDeviceList;
97 struct InterruptInData
102 typedef struct InterruptInData t_InterruptInData;
105 libusb_device * m_pDevice;
106 libusb_device_handle * m_hDevice;
107 U8 m_ConfigurationNo;
109 U8 m_InterruptEndpoint;
111 U8 m_BulkOutEndpoint;
112 I32 m_BulkInMaxPacketSize;
114 bool m_ExclusiveLock;
116 std::queue<t_InterruptInData> m_SRQQueue;
119 bool USBTMCWrite(
U8 MessageID,
const char * pData,
const size_t Size,
U8 TransferAttributes);
120 bool USBTMCClearBulkIn(
U8 bTag);
121 bool USBTMCClearBulkOut(
U8 bTag);
137 virtual bool Open(
void);
140 virtual void Close(
void);
143 virtual bool IsOpen(
void);
158 virtual bool Write(
const char * Str);
163 virtual bool Write(
const std::string & rStr);
178 virtual bool Clear(
void);
197 virtual bool Unlock(
void);
Exception handling utilities.
Abstract IEEE488 instrument class: interface definition.
unsigned char U8
Unsigned byte.
int I32
32-bit signed integer.
unsigned int U32
32-bit unsigned integer.
unsigned short U16
16-bit unsigned integer.
IEEE488.2 / SCPI instrument I/O: Instrument buffer management.
Synchronization primitives.
CIEEE488Instrument(CIEEE488ResourceManager &rRM, tResourceName Rsrc)
Constructor.
CIEEE488ResourceManager()
CUSBTMCInstrument(CUSBTMCResourceManager &rRM, tResourceName Rsrc)
Constructor.
virtual bool Timeout(void)
Last operation timed out.
virtual bool Read(CSCPIBuffer &rBuf, bool Append=false)
Read from a USBTMC instrument: SCPI buffer class variant.
virtual bool DiscardEvents(void)
Discard service requests.
virtual bool IsOpen(void)
Check whether a session to this instrument is open.
virtual bool LockedExclusive(void)
Check whether session is locked exclusively.
virtual void Close(void)
Close this VXI-11 instrument.
virtual ~CUSBTMCInstrument(void)
Destructor.
virtual bool WaitOnEvent(U32 Timeout)
Wait for a service request.
virtual bool LockExclusive(U32 Timeout)
Obtain an exclusive lock for this session.
virtual bool Unlock(void)
Unlock the session.
virtual bool DisableEvent(void)
Disable service requests.
virtual bool AssertTrigger(void)
Assert a trigger.
virtual bool Clear(void)
Clear the instrument.
virtual bool ReadSTB(U16 &rSTB)
Read status byte.
virtual bool Write(const char *Str)
Write to a USBTMC instrument: C string variant.
virtual std::string StatusDescription(I32 Status)
Return description of status word.
virtual bool EnableEvent(void)
Enable service requests.
virtual bool Open(void)
Open this USBTMC instrument.
USBTMC Resource Manager class.
virtual bool Timeout(void)
Last operation timed out.
virtual std::string StatusDescription(I32 Status)
Return description of status word.
CUSBTMCResourceManager(void)
Constructor.
virtual ~CUSBTMCResourceManager(void)
Destructor.
virtual bool FindResources(CResourceList &rList, std::string Filter="?*")
Find USBTMC resources.
friend class CUSBTMCInstrument
virtual bool Initialize(void)
Initialize the Resource Manager.
std::string tResourceName
IEEE488 resource name.
@ Exception
Error condition has occured during an operation.