25 namespace Instrument {
37 libusb_device * pDevice;
38 std::vector<U8> PortPath;
48 } tUSBTMCDeviceListEntry;
50 typedef std::list<tUSBTMCDeviceListEntry>
54 libusb_context * m_pContext;
55 tUSBTMCDeviceList m_DeviceList;
58 bool GetDeviceListEntry(
const tResourceName ResourceName, libusb_device * & pDevice);
63 CUSBTMCResourceManager(
void);
64 virtual ~CUSBTMCResourceManager(
void);
67 virtual bool Initialize(
void);
74 virtual bool FindResources(CResourceList & rList, std::string Filter =
"?*");
81 virtual bool Timeout(
void);
90 typedef CUSBTMCResourceManager::tUSBTMCDeviceListEntry tUSBTMCDeviceListEntry;
91 typedef CUSBTMCResourceManager::tUSBTMCDeviceList tUSBTMCDeviceList;
94 libusb_device * m_pDevice;
95 libusb_device_handle * m_hDevice;
98 U8 m_InterruptEndpoint;
100 U8 m_BulkOutEndpoint;
101 I32 m_BulkInMaxPacketSize;
103 bool m_ExclusiveLock;
106 bool USBTMCWrite(
U8 MessageID,
const char * pData,
const size_t Size,
U8 TransferAttributes);
107 bool USBTMCClearBulkIn(
U8 bTag);
108 bool USBTMCClearBulkOut(
U8 bTag);
122 virtual bool Open(
void);
124 virtual void Close(
void);
125 virtual bool IsOpen(
void);
133 virtual bool Timeout(
void);
139 virtual bool Write(
const char * Str);
144 virtual bool Write(
const std::string & rStr);
155 virtual bool Read(
CSCPIBuffer & rBuf,
bool Append =
false);
157 virtual bool Clear(
void);
162 virtual bool ReadSTB(
U16 & rSTB);
166 virtual bool AssertTrigger(
void);
172 virtual bool LockExclusive(
U32 Timeout);
174 virtual bool Unlock(
void);
176 virtual bool LockedExclusive(
void);