]> git.zerfleddert.de Git - rigol/blobdiff - usbtmc.h
add measurements to web if
[rigol] / usbtmc.h
index 34fb77d7da1c87aff4f18dd12eea548097cebb40..97e7d12b48d91a845539b71ff874e4d969634f11 100644 (file)
--- a/usbtmc.h
+++ b/usbtmc.h
@@ -11,6 +11,19 @@ struct usbtmc_header {
        unsigned char msg[];
 } __attribute__ ((__packed__));
 
+struct usbtmc_capabilities {
+       unsigned char USBTMC_status;
+       unsigned char Reserved1;
+       unsigned char bcdUSBTMC[2];
+       unsigned char USBTMCIFcapabilities;
+       unsigned char USBTMCDEVcapabilities;
+       unsigned char Reserved6[6];
+       unsigned char bcdUSB488[2];
+       unsigned char USB488IFcapabilities;
+       unsigned char USB488DEVcapabilities;
+       unsigned char Reserved16[8];
+} __attribute__ ((__packed__));
+
 #define USBTMC_DEV_DEP_MSG_OUT         0x1
 #define USBTMC_REQUEST_DEV_DEP_MSG_IN  0x2
 #define USBTMC_DEV_DEP_MSG_IN          0x2
@@ -18,8 +31,45 @@ struct usbtmc_header {
 #define USBTMC_TRANSFERATTRIB_EOM      (1<<0)
 #define USBTMC_TRANSFERATTRIB_TERMCHAR (1<<1)
 
-int usbtmc_sendscpi(struct usb_dev_handle *dev, char* cmd, unsigned char *resp, int resplen);
-struct usb_dev_handle* usbtmc_initscope(void);
-void usbtmc_close(struct usb_dev_handle *sc);
-void usbtmc_claim(struct usb_dev_handle *sc);
-void usbtmc_release(struct usb_dev_handle *sc);
+#define USBTMC_CTL_INITIATE_ABORT_BO   0x01
+#define USBTMC_CTL_CHECK_ABORT_BO_STAT 0x02
+#define USBTMC_CTL_INITIATE_ABORT_BI   0x03
+#define USBTMC_CTL_CHECK_ABORT_BI_STAT 0x04
+#define USBTMC_CTL_INITIATE_CLEAR      0x05
+#define USBTMC_CTL_CHECK_CLEAR_STAT    0x06
+#define USBTMC_CTL_GET_CAPABILITIES    0x07
+#define USBTMC_CTL_INDICATOR_PULSE     0x40
+#define USB488_CTL_READ_STATUS_BYTE    0x80
+#define USB488_CTL_REN_CONTROL         0xa0
+#define USB488_CTL_GO_TO_LOCAL         0xa1
+#define USB488_CTL_LOCAL_LOCKOUT       0xa2
+
+#define USBTMC_CAP_IF_INDICATOR_PULSE  (1<<2)
+#define USBTMC_CAP_IF_TALKONLY         (1<<1)
+#define USBTMC_CAP_IF_LISTENONLY       (1<<0)
+#define USBTMC_CAP_DEV_TERMCHAR_SUPP   (1<<0)
+#define USB488_CAP_IF_4882             (1<<2)
+#define USB488_CAP_IF_LOCKOUT          (1<<1)
+#define USB488_CAP_IF_TRIGGER          (1<<0)
+#define USB488_CAP_DEV_SCPI            (1<<3)
+#define USB488_CAP_DEV_SR1             (1<<2)
+#define USB488_CAP_DEV_RL1             (1<<1)
+#define USB488_CAP_DEV_DT1             (1<<0)
+
+#define USBTMC_STATUS_SUCCESS          0x01
+#define USBTMC_STATUS_PENDING          0x02
+#define USBTMC_STATUS_FAILED           0x80
+#define USBTMC_STATUS_TRANS_NIP                0x81
+#define USBTMC_STATUS_SPLIT_NIP                0x82
+#define USBTMC_STATUS_SPLIT_IP         0x83
+
+#define USBTMC_STATUS_SUCC(x)  (x == USBTMC_STATUS_SUCCESS)
+#define USBTMC_STATUS_WARN(x)  ((x > USBTMC_STATUS_SUCCESS) && (x < USBTMC_STATUS_FAILED))
+#define USBTMC_STATUS_FAIL(x)  (x >= USBTMC_STATUS_FAILED)
+
+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);
+void usbtmc_reset(struct scope *sc);
Impressum, Datenschutz