]> sigrok.org Git - libsigrok.git/blobdiff - hardware/fx2lafw/command.c
fx2lafw: Added command to verify firmware version
[libsigrok.git] / hardware / fx2lafw / command.c
index 07f6b4adb972200fa890a7f62d6caf017b257623..ffe18da64ebf01c90ebf04aca9959ed33c5b0205 100644 (file)
 #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;
        }