/*
* This file is part of the libsigrok project.
*
- * Copyright (C) 2014 Kumar Abhishek <abhishek@theembeddedkitchen.net>
+ * Copyright (C) 2014-17 Kumar Abhishek <abhishek@theembeddedkitchen.net>
*
* 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
static const uint32_t devopts[] = {
SR_CONF_CONTINUOUS,
SR_CONF_LIMIT_SAMPLES | SR_CONF_GET | SR_CONF_SET,
- SR_CONF_SAMPLERATE | SR_CONF_GET | SR_CONF_SET,
+ SR_CONF_SAMPLERATE | SR_CONF_GET | SR_CONF_SET | SR_CONF_LIST,
SR_CONF_TRIGGER_MATCH | SR_CONF_LIST,
SR_CONF_CAPTURE_RATIO | SR_CONF_GET | SR_CONF_SET,
SR_CONF_NUM_LOGIC_CHANNELS | SR_CONF_GET,
/* Default non-zero values (if any) */
devc->fd = -1;
- devc->limit_samples = (uint64_t)-1;
+ devc->limit_samples = (uint64_t)10000000;
devc->tcp_buffer = 0;
return devc;
goto err_free;
if (beaglelogic_tcp_detect(devc) != SR_OK)
goto err_free;
+ if (devc->beaglelogic->close(devc) != SR_OK)
+ goto err_free;
sr_info("BeagleLogic device found at %s : %s",
devc->address, devc->port);
}
struct dev_context *devc = sdi->priv;
/* Open BeagleLogic */
- if (devc->beaglelogic == &beaglelogic_native_ops)
- if (devc->beaglelogic->open(devc))
- return SR_ERR;
+ if (devc->beaglelogic->open(devc))
+ return SR_ERR;
/* Set fd and local attributes */
if (devc->beaglelogic == &beaglelogic_tcp_ops)
static void clear_helper(struct dev_context *devc)
{
- if (devc->tcp_buffer)
- g_free(devc->tcp_buffer);
-
- if (devc->address)
- g_free(devc->address);
-
- if (devc->port)
- g_free(devc->port);
+ g_free(devc->tcp_buffer);
+ g_free(devc->address);
+ g_free(devc->port);
}
static int dev_clear(const struct sr_dev_driver *di)
}
devc->beaglelogic->set_sampleunit(devc);
+ /* If continuous sampling, set the limit_samples to max possible value */
+ if (devc->triggerflags == BL_TRIGGERFLAGS_CONTINUOUS) {
+ devc->limit_samples = (uint64_t)-1;
+ }
+
/* Configure triggers & send header packet */
if ((trigger = sr_session_trigger_get(sdi->session))) {
int pre_trigger_samples = 0;