X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/rigol/blobdiff_plain/616d54b715cbfdd3547724e19fff416046fdc44d..ad9fbc05e664d9e4028ec9c17fcc7308a4524114:/commands.c diff --git a/commands.c b/commands.c index 646d3de..83df9c4 100644 --- a/commands.c +++ b/commands.c @@ -106,15 +106,17 @@ void do_get_buf (struct usb_dev_handle *sc) usbtmc_sendscpi (sc, ":TIM:OFFSET 0", NULL, 0); } -static unsigned char* get_lcd(struct usb_dev_handle *sc, int *imglen) +unsigned char* get_lcd(struct usb_dev_handle *sc, int *imglen, int keylock) { unsigned char screen[320*234]; unsigned char *png; int l; - /* Hide "RMT" from screen */ - l = usbtmc_sendscpi(sc, ":KEY:LOCK DISABLE", NULL, 0); - usleep(20000); + if (keylock) { + /* Hide "RMT" from screen */ + l = usbtmc_sendscpi(sc, ":KEY:LOCK DISABLE", NULL, 0); + usleep(30000); + } l = usbtmc_sendscpi(sc, ":LCD:DATA?", screen, sizeof(screen)); @@ -137,7 +139,7 @@ void do_get_screen(struct usb_dev_handle *sc) int fd; pid_t display; - png = get_lcd(sc, &imglen); + png = get_lcd(sc, &imglen, 1); if (png == NULL) { perror("get_lcd"); return; @@ -186,7 +188,7 @@ void do_display_screen(struct usb_dev_handle *sc) int pipefd[2]; pid_t display; - png = get_lcd(sc, &imglen); + png = get_lcd(sc, &imglen, 1); if (png == NULL) { perror("get_lcd"); return; @@ -220,7 +222,7 @@ void do_display_screen(struct usb_dev_handle *sc) imglen -= ret; } close(pipefd[1]); + free(png); break; } } -