des.idProduct != H4032L_USB_PRODUCT)
continue;
- usb_get_port_path(devlist[i], connection_id, sizeof(connection_id));
+ if (usb_get_port_path(devlist[i], connection_id, sizeof(connection_id)) < 0)
+ continue;
sdi = g_malloc0(sizeof(struct sr_dev_inst));
sdi->driver = &hantek_4032l_driver_info;
i++;
if (i == ARRAY_SIZE(samplerates_hw) || sample_rate == 0) {
- sr_err("invalid sample rate");
+ sr_err("Invalid sample rate.");
return SR_ERR_SAMPLERATE;
}
cmd_pkt->sample_rate = i;
number_samples &= 0xfffffe00;
if (number_samples < 2048
|| number_samples > 64 * 1024 * 1024) {
- sr_err("invalid sample range 2k...64M: %ld",
- number_samples);
+ sr_err("Invalid sample range 2k...64M: %"
+ PRIu64 ".", number_samples);
return SR_ERR;
}
cmd_pkt->sample_size = number_samples;
struct sr_trigger *trigger = sr_session_trigger_get(sdi->session);
struct h4032l_cmd_pkt *cmd_pkt = &devc->cmd_pkt;
+ devc->acq_aborted = FALSE;
+
/* Calculate packet ratio. */
cmd_pkt->pre_trigger_size = (cmd_pkt->sample_size * devc->capture_ratio) / 100;
GSList *stages = trigger->stages;
struct sr_trigger_stage *stage1 = stages->data;
if (stages->next) {
- sr_err("only one trigger stage supported for now");
+ sr_err("Only one trigger stage supported for now.");
return SR_ERR;
}
cmd_pkt->trig_flags.enable_trigger1 = 1;
break;
case SR_TRIGGER_RISING:
if (cmd_pkt->trigger[0].flags.edge_type != H4032L_TRIGGER_EDGE_TYPE_DISABLED) {
- sr_err("only one trigger signal with fall/rising/edge allowed");
+ sr_err("Only one trigger signal with fall/rising/edge allowed.");
return SR_ERR;
}
cmd_pkt->trigger[0].flags.edge_type = H4032L_TRIGGER_EDGE_TYPE_RISE;
break;
case SR_TRIGGER_FALLING:
if (cmd_pkt->trigger[0].flags.edge_type != H4032L_TRIGGER_EDGE_TYPE_DISABLED) {
- sr_err("only one trigger signal with fall/rising/edge allowed");
+ sr_err("Only one trigger signal with fall/rising/edge allowed.");
return SR_ERR;
}
cmd_pkt->trigger[0].flags.edge_type = H4032L_TRIGGER_EDGE_TYPE_FALL;
break;
case SR_TRIGGER_EDGE:
if (cmd_pkt->trigger[0].flags.edge_type != H4032L_TRIGGER_EDGE_TYPE_DISABLED) {
- sr_err("only one trigger signal with fall/rising/edge allowed");
+ sr_err("Only one trigger signal with fall/rising/edge allowed.");
return SR_ERR;
}
cmd_pkt->trigger[0].flags.edge_type = H4032L_TRIGGER_EDGE_TYPE_TOGGLE;
cmd_pkt->trigger[0].flags.edge_signal = match->channel->index;
break;
default:
- sr_err("unknown trigger value");
+ sr_err("Unknown trigger value.");
return SR_ERR;
}
}
}
- usb_source_add(sdi->session, drvc->sr_ctx, 10000,
+ usb_source_add(sdi->session, drvc->sr_ctx, 1000,
h4032l_receive_data, sdi->driver->context);
/* Start capturing. */
static int dev_acquisition_stop(struct sr_dev_inst *sdi)
{
- (void)sdi;
+ struct dev_context *devc = sdi->priv;
+
+ devc->acq_aborted = TRUE;
+ if (devc->usb_transfer)
+ libusb_cancel_transfer(devc->usb_transfer);
- /* TODO: stop acquisition. */
+ devc->status = H4032L_STATUS_IDLE;
return SR_OK;
}