X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Ffx2lafw%2Fcommand.c;h=ffe18da64ebf01c90ebf04aca9959ed33c5b0205;hb=13bf7eccbb08214c3d6d53da5b5b6a269a64a779;hp=07f6b4adb972200fa890a7f62d6caf017b257623;hpb=f4a9e5c0aa81738d26e7893d6cf47ebdb4a91047;p=libsigrok.git diff --git a/hardware/fx2lafw/command.c b/hardware/fx2lafw/command.c index 07f6b4ad..ffe18da6 100644 --- a/hardware/fx2lafw/command.c +++ b/hardware/fx2lafw/command.c @@ -22,8 +22,25 @@ #include "sigrok.h" #include "sigrok-internal.h" -int command_start_acquisition(libusb_device_handle *devhdl, - uint64_t samplerate) +SR_PRIV int command_get_fw_version(libusb_device_handle *devhdl, + struct version_info *vi) +{ + const int ret = libusb_control_transfer (devhdl, + LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_ENDPOINT_IN, + CMD_GET_FW_VERSION, 0x0000, 0x0000, + (unsigned char*)vi, sizeof(struct version_info), + 100); + + if(ret < 0) { + sr_err("fx2lafw: Unable to get version info: %d.", ret); + return SR_ERR; + } + + return SR_OK; +} + +SR_PRIV int command_start_acquisition(libusb_device_handle *devhdl, + uint64_t samplerate) { struct cmd_start_acquisition cmd; int delay = 0, ret; @@ -39,7 +56,8 @@ int command_start_acquisition(libusb_device_handle *devhdl, /* Note: sample_delay=0 is treated as sample_delay=256. */ if (delay <= 0 || delay > 256) { - sr_err("fx2lafw: Unable to sample at %dHz", samplerate); + sr_err("fx2lafw: Unable to sample at %" PRIu64 "Hz.", + samplerate); return SR_ERR; } @@ -50,7 +68,7 @@ int command_start_acquisition(libusb_device_handle *devhdl, LIBUSB_ENDPOINT_OUT, CMD_START, 0x0000, 0x0000, (unsigned char *)&cmd, sizeof(cmd), 100); if (ret < 0) { - sr_err("fx2lafw: Unable to send start command: %d", ret); + sr_err("fx2lafw: Unable to send start command: %d.", ret); return SR_ERR; }