noinst_LTLIBRARIES = libsigrokhwfx2lafw.la
libsigrokhwfx2lafw_la_SOURCES = \
+ command.c \
+ command.h \
fx2lafw.c \
fx2lafw.h
--- /dev/null
+/*
+ * This file is part of the sigrok project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <libusb.h>
+
+#include "command.h"
+#include "sigrok.h"
+#include "sigrok-internal.h"
+
+int command_start_acquisition(libusb_device_handle *devhdl)
+{
+ const int res = libusb_control_transfer(devhdl,
+ LIBUSB_REQUEST_TYPE_VENDOR |
+ LIBUSB_ENDPOINT_OUT, CMD_START, 0x0000,
+ 0x0000, NULL, 0, 100);
+ if (res < 0) {
+ sr_err("fx2lafw: Unable to send start command: %d",
+ res);
+ return SR_ERR;
+ }
+
+ return SR_OK;
+}
--- /dev/null
+/*
+ * This file is part of the sigrok project.
+ *
+ * Copyright (C) 2012 Joel Holdsworth <joel@airwebreathe.org.uk>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/* Protocol commands */
+#define CMD_SET_SAMPLERATE 0xb0
+#define CMD_START 0xb1
+#define CMD_STOP 0xb2
+#define CMD_GET_FW_VERSION 0xb3
+
+int command_start_acquisition(libusb_device_handle *devhdl);
#include "sigrok.h"
#include "sigrok-internal.h"
#include "fx2lafw.h"
+#include "command.h"
static struct fx2lafw_profile supported_fx2[] = {
/* USBee AX */
struct context *ctx;
struct libusb_transfer *transfer;
const struct libusb_pollfd **lupfd;
- int size, i;
+ int err, size, i;
unsigned char *buf;
if (!(sdi = sr_dev_inst_get(dev_insts, dev_index)))
return SR_ERR_MALLOC;
}
+ if ((err = command_start_acquisition (ctx->usb->devhdl)) != SR_OK) {
+ return err;
+ }
+
/* Start with 2K transfer, subsequently increased to 4K. */
size = 2048;
for (i = 0; i < NUM_SIMUL_TRANSFERS; i++) {