parent
a31a4d371f
commit
46a743c1fa
|
@ -259,14 +259,14 @@ static GSList *hw_scan(GSList *options)
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct sr_usb_dev_inst *usb;
|
struct sr_usb_dev_inst *usb;
|
||||||
struct sr_config *src;
|
struct sr_config *src;
|
||||||
const struct dso_profile *prof;
|
const struct dso_profile *prof;
|
||||||
GSList *l, *devices, *conn_devices;
|
GSList *l, *devices, *conn_devices;
|
||||||
struct libusb_device_descriptor des;
|
struct libusb_device_descriptor des;
|
||||||
libusb_device **devlist;
|
libusb_device **devlist;
|
||||||
int devcnt, ret, i, j;
|
int devcnt, ret, i, j;
|
||||||
const char *conn;
|
const char *conn;
|
||||||
|
|
||||||
drvc = di->priv;
|
drvc = di->priv;
|
||||||
drvc->instances = NULL;
|
drvc->instances = NULL;
|
||||||
|
@ -292,7 +292,7 @@ static GSList *hw_scan(GSList *options)
|
||||||
/* Find all Hantek DSO devices and upload firmware to all of them. */
|
/* Find all Hantek DSO devices and upload firmware to all of them. */
|
||||||
libusb_get_device_list(drvc->sr_ctx->libusb_ctx, &devlist);
|
libusb_get_device_list(drvc->sr_ctx->libusb_ctx, &devlist);
|
||||||
for (i = 0; devlist[i]; i++) {
|
for (i = 0; devlist[i]; i++) {
|
||||||
if (conn) {
|
if (conn) {
|
||||||
usb = NULL;
|
usb = NULL;
|
||||||
for (l = conn_devices; l; l = l->next) {
|
for (l = conn_devices; l; l = l->next) {
|
||||||
usb = l->data;
|
usb = l->data;
|
||||||
|
@ -304,11 +304,11 @@ static GSList *hw_scan(GSList *options)
|
||||||
/* This device matched none of the ones that
|
/* This device matched none of the ones that
|
||||||
* matched the conn specification. */
|
* matched the conn specification. */
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ret = libusb_get_device_descriptor(devlist[i], &des))) {
|
if ((ret = libusb_get_device_descriptor(devlist[i], &des))) {
|
||||||
sr_err("Failed to get device descriptor: %s.",
|
sr_err("Failed to get device descriptor: %s.",
|
||||||
libusb_error_name(ret));
|
libusb_error_name(ret));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -328,7 +328,7 @@ static GSList *hw_scan(GSList *options)
|
||||||
devc->fw_updated = g_get_monotonic_time();
|
devc->fw_updated = g_get_monotonic_time();
|
||||||
else
|
else
|
||||||
sr_err("Firmware upload failed for "
|
sr_err("Firmware upload failed for "
|
||||||
"device %d.", devcnt);
|
"device %d.", devcnt);
|
||||||
/* Dummy USB address of 0xff will get overwritten later. */
|
/* Dummy USB address of 0xff will get overwritten later. */
|
||||||
sdi->conn = sr_usb_dev_inst_new(
|
sdi->conn = sr_usb_dev_inst_new(
|
||||||
libusb_get_bus_number(devlist[i]), 0xff, NULL);
|
libusb_get_bus_number(devlist[i]), 0xff, NULL);
|
||||||
|
@ -406,7 +406,7 @@ static int hw_dev_open(struct sr_dev_inst *sdi)
|
||||||
err = libusb_claim_interface(usb->devhdl, USB_INTERFACE);
|
err = libusb_claim_interface(usb->devhdl, USB_INTERFACE);
|
||||||
if (err != 0) {
|
if (err != 0) {
|
||||||
sr_err("Unable to claim interface: %s.",
|
sr_err("Unable to claim interface: %s.",
|
||||||
libusb_error_name(err));
|
libusb_error_name(err));
|
||||||
return SR_ERR;
|
return SR_ERR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -721,7 +721,7 @@ static void receive_transfer(struct libusb_transfer *transfer)
|
||||||
sdi = transfer->user_data;
|
sdi = transfer->user_data;
|
||||||
devc = sdi->priv;
|
devc = sdi->priv;
|
||||||
sr_spew("receive_transfer(): status %d received %d bytes.",
|
sr_spew("receive_transfer(): status %d received %d bytes.",
|
||||||
transfer->status, transfer->actual_length);
|
transfer->status, transfer->actual_length);
|
||||||
|
|
||||||
if (transfer->actual_length == 0)
|
if (transfer->actual_length == 0)
|
||||||
/* Nothing to send to the bus. */
|
/* Nothing to send to the bus. */
|
||||||
|
@ -730,7 +730,7 @@ static void receive_transfer(struct libusb_transfer *transfer)
|
||||||
num_samples = transfer->actual_length / 2;
|
num_samples = transfer->actual_length / 2;
|
||||||
|
|
||||||
sr_spew("Got %d-%d/%d samples in frame.", devc->samp_received + 1,
|
sr_spew("Got %d-%d/%d samples in frame.", devc->samp_received + 1,
|
||||||
devc->samp_received + num_samples, devc->framesize);
|
devc->samp_received + num_samples, devc->framesize);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The device always sends a full frame, but the beginning of the frame
|
* The device always sends a full frame, but the beginning of the frame
|
||||||
|
@ -761,7 +761,7 @@ static void receive_transfer(struct libusb_transfer *transfer)
|
||||||
|
|
||||||
/* The rest of this chunk starts with the trigger point. */
|
/* The rest of this chunk starts with the trigger point. */
|
||||||
sr_dbg("Reached trigger point, %d samples buffered.",
|
sr_dbg("Reached trigger point, %d samples buffered.",
|
||||||
devc->samp_buffered);
|
devc->samp_buffered);
|
||||||
|
|
||||||
/* Avoid the corner case where the chunk ended at
|
/* Avoid the corner case where the chunk ended at
|
||||||
* exactly the trigger point. */
|
* exactly the trigger point. */
|
||||||
|
@ -786,7 +786,7 @@ static void receive_transfer(struct libusb_transfer *transfer)
|
||||||
/* That was the last chunk in this frame. Send the buffered
|
/* That was the last chunk in this frame. Send the buffered
|
||||||
* pre-trigger samples out now, in one big chunk. */
|
* pre-trigger samples out now, in one big chunk. */
|
||||||
sr_dbg("End of frame, sending %d pre-trigger buffered samples.",
|
sr_dbg("End of frame, sending %d pre-trigger buffered samples.",
|
||||||
devc->samp_buffered);
|
devc->samp_buffered);
|
||||||
send_chunk(sdi, devc->framebuf, devc->samp_buffered);
|
send_chunk(sdi, devc->framebuf, devc->samp_buffered);
|
||||||
|
|
||||||
/* Mark the end of this frame. */
|
/* Mark the end of this frame. */
|
||||||
|
@ -918,7 +918,7 @@ static int handle_event(int fd, int revents, void *cb_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi,
|
static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi,
|
||||||
void *cb_data)
|
void *cb_data)
|
||||||
{
|
{
|
||||||
const struct libusb_pollfd **lupfd;
|
const struct libusb_pollfd **lupfd;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
|
@ -946,7 +946,7 @@ static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi,
|
||||||
lupfd = libusb_get_pollfds(drvc->sr_ctx->libusb_ctx);
|
lupfd = libusb_get_pollfds(drvc->sr_ctx->libusb_ctx);
|
||||||
for (i = 0; lupfd[i]; i++)
|
for (i = 0; lupfd[i]; i++)
|
||||||
sr_source_add(lupfd[i]->fd, lupfd[i]->events, TICK,
|
sr_source_add(lupfd[i]->fd, lupfd[i]->events, TICK,
|
||||||
handle_event, (void *)sdi);
|
handle_event, (void *)sdi);
|
||||||
free(lupfd);
|
free(lupfd);
|
||||||
|
|
||||||
/* Send header packet to the session bus. */
|
/* Send header packet to the session bus. */
|
||||||
|
|
|
@ -210,7 +210,7 @@ static int probe_port(const char *port, GSList **devices)
|
||||||
char buf[256];
|
char buf[256];
|
||||||
gchar **tokens, *channel_name;
|
gchar **tokens, *channel_name;
|
||||||
|
|
||||||
*devices = NULL;
|
*devices = NULL;
|
||||||
if (!(serial = sr_serial_dev_inst_new(port, NULL)))
|
if (!(serial = sr_serial_dev_inst_new(port, NULL)))
|
||||||
return SR_ERR_MALLOC;
|
return SR_ERR_MALLOC;
|
||||||
|
|
||||||
|
@ -246,7 +246,7 @@ static int probe_port(const char *port, GSList **devices)
|
||||||
return SR_ERR_NA;
|
return SR_ERR_NA;
|
||||||
}
|
}
|
||||||
|
|
||||||
matched = has_digital = FALSE;
|
matched = has_digital = FALSE;
|
||||||
for (i = 0; i < ARRAY_SIZE(supported_models); i++) {
|
for (i = 0; i < ARRAY_SIZE(supported_models); i++) {
|
||||||
if (!strcmp(model, supported_models[i])) {
|
if (!strcmp(model, supported_models[i])) {
|
||||||
matched = TRUE;
|
matched = TRUE;
|
||||||
|
@ -317,7 +317,7 @@ static GSList *hw_scan(GSList *options)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
devices = NULL;
|
devices = NULL;
|
||||||
if (port) {
|
if (port) {
|
||||||
if (probe_port(port, &devices) == SR_ERR_MALLOC)
|
if (probe_port(port, &devices) == SR_ERR_MALLOC)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -338,9 +338,9 @@ static GSList *hw_scan(GSList *options)
|
||||||
g_dir_close(dir);
|
g_dir_close(dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tack a copy of the newly found devices onto the driver list. */
|
/* Tack a copy of the newly found devices onto the driver list. */
|
||||||
l = g_slist_copy(devices);
|
l = g_slist_copy(devices);
|
||||||
drvc->instances = g_slist_concat(drvc->instances, l);
|
drvc->instances = g_slist_concat(drvc->instances, l);
|
||||||
|
|
||||||
return devices;
|
return devices;
|
||||||
}
|
}
|
||||||
|
@ -359,7 +359,7 @@ static int hw_dev_open(struct sr_dev_inst *sdi)
|
||||||
if (rigol_ds1xx2_get_dev_cfg(sdi) != SR_OK)
|
if (rigol_ds1xx2_get_dev_cfg(sdi) != SR_OK)
|
||||||
return SR_ERR;
|
return SR_ERR;
|
||||||
|
|
||||||
sdi->status = SR_ST_ACTIVE;
|
sdi->status = SR_ST_ACTIVE;
|
||||||
|
|
||||||
return SR_OK;
|
return SR_OK;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue