#define LOG_PREFIX "sysclk-lwla"
#include <stdint.h>
+#include <libusb.h>
#include <glib.h>
#include <libsigrok/libsigrok.h>
#include <libsigrok-internal.h>
enum {
USB_CONFIG = 1,
USB_INTERFACE = 0,
- USB_TIMEOUT_MS = 3000,
+ USB_TIMEOUT_MS = 1000,
+};
+
+/** USB device end points.
+ */
+enum usb_endpoint {
+ EP_COMMAND = 2,
+ EP_CONFIG = 4,
+ EP_REPLY = 6 | LIBUSB_ENDPOINT_IN
};
/** LWLA1034 clock sources.
*/
struct dev_context {
uint64_t samplerate; /* requested samplerate */
-
uint64_t limit_msec; /* requested capture duration in ms */
uint64_t limit_samples; /* requested capture length in samples */
- uint64_t channel_mask; /* bit mask of enabled channels */
-
+ uint64_t channel_mask; /* bit mask of enabled channels */
uint64_t trigger_mask; /* trigger enable mask */
uint64_t trigger_edge_mask; /* trigger type mask */
uint64_t trigger_values; /* trigger level/slope bits */
const struct model_info *model; /* device model descriptor */
struct acquisition_state *acquisition; /* running capture state */
int active_fpga_config; /* FPGA configuration index */
+ gboolean short_transfer_quirk; /* 64 bytes response limit */
enum protocol_state state; /* async protocol state */
gboolean cancel_requested; /* stop after current transfer */
enum signal_edge cfg_clock_edge; /* ext clock edge setting */
enum trigger_source cfg_trigger_source; /* trigger source setting */
enum signal_edge cfg_trigger_slope; /* ext trigger slope setting */
-
};
/** LWLA model descriptor.
int (*handle_response)(const struct sr_dev_inst *sdi);
};
-SR_PRIV const struct model_info lwla1016_info;
-SR_PRIV const struct model_info lwla1034_info;
+extern SR_PRIV const struct model_info lwla1016_info;
+extern SR_PRIV const struct model_info lwla1034_info;
SR_PRIV int lwla_start_acquisition(const struct sr_dev_inst *sdi);