X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/rigol/blobdiff_plain/b74fea90bd5429ab527016eb89d98b4c6a246e68..b131d433f9b984b50266298be6f0cf7f9a13b6fb:/usbtmc.c diff --git a/usbtmc.c b/usbtmc.c index d652494..054e49c 100644 --- a/usbtmc.c +++ b/usbtmc.c @@ -103,6 +103,18 @@ int usbtmc_sendscpi(usb_dev_handle *dev, char* cmd, return 0; } +void usbtmc_claim(usb_dev_handle *sc) +{ + usb_claim_interface(sc, 0); +} + +void usbtmc_release(usb_dev_handle *sc) +{ + //Disable keylock, so the user doesn't have to press the 'force'-button + usbtmc_sendscpi(sc, ":KEY:LOCK DISABLE",NULL,0); + usb_release_interface(sc, 0); +} + //Initialize the scope. usb_dev_handle* usbtmc_initscope(void) { int r; @@ -119,10 +131,11 @@ usb_dev_handle* usbtmc_initscope(void) { } else { printf("Scope found.\n"); } - usb_claim_interface(dev,0); + usbtmc_claim(dev); //The following code isn't really necessary, the program works //OK without it too. r=usb_control_msg(dev, 0xC8, 9, 0, 0, (char*)buff, 4, 1000); + usbtmc_release(dev); if (r < 0) { fprintf (stderr, "Error %d sending init message: %s\n", r, strerror (-r)); @@ -138,6 +151,5 @@ usb_dev_handle* usbtmc_initscope(void) { void usbtmc_close(usb_dev_handle *sc) { //Free up and exit - usb_release_interface(sc,0); usb_close(sc); }