-int usbtmc_sendscpi(usb_dev_handle *dev, char* cmd, unsigned char *resp, int resplen);
-usb_dev_handle* usbtmc_initscope(void);
+struct usbtmc_header {
+ unsigned char MsgID;
+ unsigned char bTag;
+ unsigned char bTagInverse;
+ unsigned char Reserved3;
+ uint32_t TransferSize;
+ unsigned char bmTransferAttributes;
+ unsigned char TermChar; /* Only in REQUEST_DEV_DEP_MSG_IN */
+ unsigned char Reverved10;
+ unsigned char Reverved11;
+ unsigned char msg[];
+} __attribute__ ((__packed__));
+
+#define USBTMC_DEV_DEP_MSG_OUT 0x1
+#define USBTMC_REQUEST_DEV_DEP_MSG_IN 0x2
+#define USBTMC_DEV_DEP_MSG_IN 0x2
+
+#define USBTMC_TRANSFERATTRIB_EOM (1<<0)
+#define USBTMC_TRANSFERATTRIB_TERMCHAR (1<<1)
+
+int usbtmc_sendscpi(struct scope *sc, char* cmd, unsigned char *resp, int resplen);
+struct scope * usbtmc_initscope(void);
+void usbtmc_close(struct scope *sc);
+void usbtmc_claim(struct scope *sc);
+void usbtmc_release(struct scope *sc);