forked from Ivasoft/DSView
warnings fix
This commit is contained in:
@@ -261,7 +261,7 @@ static int sanity_check_all_input_modules(void)
|
||||
static int sanity_check_all_output_modules(void)
|
||||
{
|
||||
int i, errors, ret = SR_OK;
|
||||
struct sr_output_module **outputs;
|
||||
const struct sr_output_module **outputs;
|
||||
const char *d;
|
||||
|
||||
sr_spew("Sanity-checking all output modules.");
|
||||
|
||||
@@ -52,6 +52,12 @@ AC_PROG_CPP
|
||||
AC_PROG_INSTALL
|
||||
AC_PROG_LN_S
|
||||
|
||||
# https://github.com/rsyslog/rsyslog/issues/1179
|
||||
# Seems libtool doesn't honors ARFLAGS, but statically set AR_FLAGS=cru
|
||||
# This causes a few warnings on build:
|
||||
# "ar u modifier ignored since D is the default (see U)"
|
||||
m4_divert_text([DEFAULTS], [: "${ARFLAGS=cr} ${AR_FLAGS=cr}"])
|
||||
|
||||
# Required for per-target flags or subdir-objects with C sources.
|
||||
AM_PROG_CC_C_O
|
||||
|
||||
|
||||
@@ -150,7 +150,7 @@ SR_PRIV int command_get_revid_version(libusb_device_handle *devhdl,
|
||||
uint8_t *revid);
|
||||
SR_PRIV int command_start_acquisition(libusb_device_handle *devhdl,
|
||||
uint64_t samplerate, gboolean samplewide, gboolean la_mode);
|
||||
SR_PRIV int command_stop_acquistition(libusb_device_handle *devhdl);
|
||||
SR_PRIV int command_stop_acquisition(libusb_device_handle *devhdl);
|
||||
|
||||
SR_PRIV int command_fpga_config(libusb_device_handle *devhdl);
|
||||
SR_PRIV int command_fpga_setting(libusb_device_handle *devhdl, uint32_t setting_count);
|
||||
|
||||
@@ -181,7 +181,7 @@ struct DSL_vga DSCope_vga[] = {
|
||||
{500, DSCOPE_DEFAULT_VGAIN5, DSCOPE_DEFAULT_VGAIN5, DSCOPE_DEFAULT_VOFF, DSCOPE_DEFAULT_VOFF},
|
||||
{1000,DSCOPE_DEFAULT_VGAIN6, DSCOPE_DEFAULT_VGAIN6, DSCOPE_DEFAULT_VOFF, DSCOPE_DEFAULT_VOFF},
|
||||
{2000,DSCOPE_DEFAULT_VGAIN7, DSCOPE_DEFAULT_VGAIN7, DSCOPE_DEFAULT_VOFF, DSCOPE_DEFAULT_VOFF},
|
||||
{0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0},
|
||||
};
|
||||
struct DSL_vga DSCope20_vga[] = {
|
||||
{10, DSCOPE20_DEFAULT_VGAIN0, DSCOPE20_DEFAULT_VGAIN0, DSCOPE20_DEFAULT_VOFF, CALI_VOFF_RANGE-DSCOPE20_DEFAULT_VOFF},
|
||||
@@ -192,7 +192,7 @@ struct DSL_vga DSCope20_vga[] = {
|
||||
{500, DSCOPE20_DEFAULT_VGAIN5, DSCOPE20_DEFAULT_VGAIN5, DSCOPE20_DEFAULT_VOFF, CALI_VOFF_RANGE-DSCOPE20_DEFAULT_VOFF},
|
||||
{1000,DSCOPE20_DEFAULT_VGAIN6, DSCOPE20_DEFAULT_VGAIN6, DSCOPE20_DEFAULT_VOFF, CALI_VOFF_RANGE-DSCOPE20_DEFAULT_VOFF},
|
||||
{2000,DSCOPE20_DEFAULT_VGAIN7, DSCOPE20_DEFAULT_VGAIN7, DSCOPE20_DEFAULT_VOFF, CALI_VOFF_RANGE-DSCOPE20_DEFAULT_VOFF},
|
||||
{0, 0, 0, 0},
|
||||
{0, 0, 0, 0, 0},
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -466,7 +466,7 @@ static int fpga_setting(const struct sr_dev_inst *sdi)
|
||||
|
||||
result = SR_OK;
|
||||
ret = libusb_bulk_transfer(hdl, 2 | LIBUSB_ENDPOINT_OUT,
|
||||
&setting, sizeof(struct DSL_setting),
|
||||
(unsigned char*)&setting, sizeof(struct DSL_setting),
|
||||
&transferred, 1000);
|
||||
|
||||
if (ret < 0) {
|
||||
@@ -751,7 +751,7 @@ static int init(struct sr_context *sr_ctx)
|
||||
}
|
||||
|
||||
|
||||
static struct DSL_vga* get_vga_ptr(struct sr_dev_inst *sdi)
|
||||
static struct DSL_vga* get_vga_ptr(const struct sr_dev_inst *sdi)
|
||||
{
|
||||
struct DSL_vga *vga_ptr = NULL;
|
||||
if (strcmp(sdi->model, "DSCope") == 0)
|
||||
@@ -762,7 +762,7 @@ static struct DSL_vga* get_vga_ptr(struct sr_dev_inst *sdi)
|
||||
return vga_ptr;
|
||||
}
|
||||
|
||||
static uint16_t get_default_trans(struct sr_dev_inst *sdi)
|
||||
static uint16_t get_default_trans(const struct sr_dev_inst *sdi)
|
||||
{
|
||||
uint16_t trans = 1;
|
||||
if (strcmp(sdi->model, "DSCope") == 0)
|
||||
@@ -773,21 +773,22 @@ static uint16_t get_default_trans(struct sr_dev_inst *sdi)
|
||||
return trans;
|
||||
}
|
||||
|
||||
static uint16_t get_default_voff(struct sr_dev_inst *sdi, int ch_index)
|
||||
static uint16_t get_default_voff(const struct sr_dev_inst *sdi, int ch_index)
|
||||
{
|
||||
uint16_t voff = 0;
|
||||
if (strcmp(sdi->model, "DSCope") == 0)
|
||||
if (strcmp(sdi->model, "DSCope") == 0) {
|
||||
voff = DSCOPE_DEFAULT_VOFF;
|
||||
else if (strcmp(sdi->model, "DSCope20") == 0)
|
||||
} else if (strcmp(sdi->model, "DSCope20") == 0) {
|
||||
if (ch_index == 1)
|
||||
voff = CALI_VOFF_RANGE - DSCOPE20_DEFAULT_VOFF;
|
||||
else
|
||||
voff = DSCOPE20_DEFAULT_VOFF;
|
||||
}
|
||||
|
||||
return voff;
|
||||
}
|
||||
|
||||
static uint64_t get_default_vgain(struct sr_dev_inst *sdi, int num)
|
||||
static uint64_t get_default_vgain(const struct sr_dev_inst *sdi, unsigned int num)
|
||||
{
|
||||
uint64_t vgain = 0;
|
||||
if (strcmp(sdi->model, "DSCope") == 0) {
|
||||
@@ -802,10 +803,10 @@ static uint64_t get_default_vgain(struct sr_dev_inst *sdi, int num)
|
||||
return vgain;
|
||||
}
|
||||
|
||||
static int probe_init(struct sr_dev_inst *sdi)
|
||||
static void probe_init(struct sr_dev_inst *sdi)
|
||||
{
|
||||
int i;
|
||||
GList *l;
|
||||
GSList *l;
|
||||
for (l = sdi->channels; l; l = l->next) {
|
||||
struct sr_channel *probe = (struct sr_channel *)l->data;
|
||||
if (sdi->mode == DSO) {
|
||||
@@ -840,9 +841,7 @@ static int set_probes(struct sr_dev_inst *sdi, int num_probes)
|
||||
static int adjust_probes(struct sr_dev_inst *sdi, int num_probes)
|
||||
{
|
||||
uint16_t j;
|
||||
GSList *l;
|
||||
struct sr_channel *probe;
|
||||
GSList *p;
|
||||
|
||||
assert(num_probes > 0);
|
||||
|
||||
@@ -856,7 +855,7 @@ static int adjust_probes(struct sr_dev_inst *sdi, int num_probes)
|
||||
}
|
||||
|
||||
while(j > num_probes) {
|
||||
g_slist_delete_link(sdi->channels, g_slist_last(sdi->channels));
|
||||
sdi->channels = g_slist_delete_link(sdi->channels, g_slist_last(sdi->channels));
|
||||
j--;
|
||||
}
|
||||
|
||||
@@ -989,7 +988,7 @@ static GSList *dev_mode_list(const struct sr_dev_inst *sdi)
|
||||
{
|
||||
(void)sdi;
|
||||
GSList *l = NULL;
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
for(i = 0; i < ARRAY_SIZE(mode_list); i++) {
|
||||
l = g_slist_append(l, &mode_list[i]);
|
||||
@@ -998,7 +997,7 @@ static GSList *dev_mode_list(const struct sr_dev_inst *sdi)
|
||||
return l;
|
||||
}
|
||||
|
||||
static uint64_t dso_vga(struct sr_dev_inst *sdi, struct sr_channel* ch)
|
||||
static uint64_t dso_vga(const struct sr_dev_inst *sdi, const struct sr_channel* ch)
|
||||
{
|
||||
int i;
|
||||
struct DSL_vga *vga_ptr = get_vga_ptr(sdi);
|
||||
@@ -1010,7 +1009,7 @@ static uint64_t dso_vga(struct sr_dev_inst *sdi, struct sr_channel* ch)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static uint64_t dso_voff(struct sr_dev_inst *sdi, struct sr_channel* ch)
|
||||
static uint64_t dso_voff(const struct sr_dev_inst *sdi, const struct sr_channel* ch)
|
||||
{
|
||||
int i;
|
||||
struct DSL_vga *vga_ptr = get_vga_ptr(sdi);
|
||||
@@ -1021,7 +1020,7 @@ static uint64_t dso_voff(struct sr_dev_inst *sdi, struct sr_channel* ch)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static uint64_t dso_vpos(struct sr_dev_inst *sdi, struct sr_channel* ch)
|
||||
static uint64_t dso_vpos(const struct sr_dev_inst *sdi, const struct sr_channel* ch)
|
||||
{
|
||||
uint64_t vpos;
|
||||
int vpos_coarse, vpos_fine;
|
||||
@@ -1052,7 +1051,7 @@ static uint64_t dso_vpos(struct sr_dev_inst *sdi, struct sr_channel* ch)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static uint64_t dso_cmd_gen(struct sr_dev_inst *sdi, struct sr_channel* ch, int id)
|
||||
static uint64_t dso_cmd_gen(const struct sr_dev_inst *sdi, struct sr_channel* ch, int id)
|
||||
{
|
||||
struct DSL_context *devc;
|
||||
uint64_t cmd = 0;
|
||||
@@ -1208,7 +1207,7 @@ static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi,
|
||||
struct DSL_context *devc;
|
||||
struct sr_usb_dev_inst *usb;
|
||||
char str[128];
|
||||
int i;
|
||||
unsigned int i;
|
||||
struct DSL_vga *vga_ptr;
|
||||
uint8_t tmp_u8;
|
||||
int ret;
|
||||
@@ -1471,7 +1470,7 @@ static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi,
|
||||
|
||||
static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
struct sr_channel *ch,
|
||||
const struct sr_channel_group *cg )
|
||||
struct sr_channel_group *cg )
|
||||
{
|
||||
struct DSL_context *devc;
|
||||
const char *stropt;
|
||||
@@ -1531,7 +1530,7 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
sr_dbg("%s: Initial setting for DSO mode failed", __func__);
|
||||
devc->cur_samplerate = DSCOPE_MAX_SAMPLERATE / num_probes;
|
||||
devc->limit_samples = DSCOPE_MAX_DEPTH / num_probes;
|
||||
} else if (sdi->mode == ANALOG){
|
||||
} else {
|
||||
num_probes = devc->profile->dev_caps & DEV_CAPS_16BIT ? MAX_ANALOG_PROBES_NUM : 1;
|
||||
}
|
||||
sr_dev_probes_free(sdi);
|
||||
@@ -1696,7 +1695,7 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
* because the samplelimits may changed
|
||||
*/
|
||||
devc->trigger_hpos = devc->trigger_hrate * en_ch_num(sdi) * devc->limit_samples / 200.0;
|
||||
if ((ret = command_dso_ctrl(usb->devhdl, dso_cmd_gen(sdi, 1, SR_CONF_HORIZ_TRIGGERPOS))) == SR_OK)
|
||||
if ((ret = command_dso_ctrl(usb->devhdl, dso_cmd_gen(sdi, NULL, SR_CONF_HORIZ_TRIGGERPOS))) == SR_OK)
|
||||
sr_dbg("%s: setting DSO Horiz Trigger Position to %d",
|
||||
__func__, devc->trigger_hpos);
|
||||
else
|
||||
@@ -1730,8 +1729,8 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
devc->zero_stage = -1;
|
||||
devc->zero_pcnt = 0;
|
||||
devc->zero_comb = -1;
|
||||
GList *l;
|
||||
int i;
|
||||
GSList *l;
|
||||
unsigned int i;
|
||||
struct DSL_vga *vga_ptr = get_vga_ptr(sdi);
|
||||
for(l = sdi->channels; l; l = l->next) {
|
||||
struct sr_channel *probe = (struct sr_channel *)l->data;
|
||||
@@ -1810,11 +1809,12 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
int i;
|
||||
struct DSL_vga *vga_ptr = get_vga_ptr(sdi);
|
||||
for (i = 0; vga_ptr && (vga_ptr+i)->key; i++) {
|
||||
if ((vga_ptr+i)->key == ch->vdiv)
|
||||
if ((vga_ptr+i)->key == ch->vdiv) {
|
||||
if (ch->index == 0)
|
||||
(vga_ptr+i)->vgain0 = vgain;
|
||||
else if (ch->index == 1)
|
||||
(vga_ptr+i)->vgain1 = vgain;
|
||||
}
|
||||
}
|
||||
ret = command_dso_ctrl(usb->devhdl, dso_cmd_gen(sdi, ch, SR_CONF_VDIV));
|
||||
if (ret == SR_OK)
|
||||
@@ -1840,11 +1840,12 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
int i;
|
||||
struct DSL_vga *vga_ptr = get_vga_ptr(sdi);
|
||||
for (i = 0; vga_ptr && (vga_ptr+i)->key; i++) {
|
||||
if ((vga_ptr+i)->key == ch->vdiv)
|
||||
if ((vga_ptr+i)->key == ch->vdiv) {
|
||||
if (ch->index == 0)
|
||||
(vga_ptr+i)->voff0 = voff;
|
||||
else if (ch->index == 1)
|
||||
(vga_ptr+i)->voff1 = voff;
|
||||
}
|
||||
}
|
||||
ret = command_dso_ctrl(usb->devhdl, dso_cmd_gen(sdi, ch, SR_CONF_VPOS));
|
||||
if (ret == SR_OK)
|
||||
@@ -1929,7 +1930,7 @@ static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi,
|
||||
|
||||
static int dso_init(const struct sr_dev_inst *sdi)
|
||||
{
|
||||
int ret, i;
|
||||
int ret;
|
||||
GSList *l;
|
||||
struct sr_usb_dev_inst *usb = sdi->conn;
|
||||
|
||||
@@ -1990,16 +1991,16 @@ static int dso_init(const struct sr_dev_inst *sdi)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int dso_zero(struct sr_dev_inst *sdi, struct sr_status mstatus)
|
||||
static int dso_zero(const struct sr_dev_inst *sdi, struct sr_status mstatus)
|
||||
{
|
||||
struct DSL_context *devc = sdi->priv;
|
||||
struct sr_usb_dev_inst *usb = sdi->conn;
|
||||
GSList *l;
|
||||
int ret, i;
|
||||
int ret;
|
||||
static double vpos_back[2];
|
||||
static uint64_t vdiv_back[2];
|
||||
struct DSL_vga *vga_ptr = get_vga_ptr(sdi);
|
||||
struct sr_channel *probe0, *probe1;
|
||||
struct sr_channel *probe0 = NULL, *probe1 = NULL;
|
||||
for(l = sdi->channels; l; l = l->next) {
|
||||
struct sr_channel *probe = (struct sr_channel *)l->data;
|
||||
if (probe->index == 0)
|
||||
@@ -2152,7 +2153,6 @@ static int dev_open(struct sr_dev_inst *sdi)
|
||||
struct sr_usb_dev_inst *usb;
|
||||
struct DSL_context *devc;
|
||||
int ret;
|
||||
int64_t timediff_us, timediff_ms;
|
||||
uint8_t hw_info;
|
||||
GSList *l;
|
||||
gboolean zeroed;
|
||||
@@ -2340,21 +2340,6 @@ static void resubmit_transfer(struct libusb_transfer *transfer)
|
||||
sr_err("%s: %s", __func__, libusb_error_name(ret));
|
||||
}
|
||||
|
||||
static struct sr_config * new_config(int key, GVariant *data)
|
||||
{
|
||||
struct sr_config *config;
|
||||
|
||||
if (!(config = g_try_malloc0(sizeof(struct sr_config)))) {
|
||||
sr_err("META config malloc failed.");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
config->key = key;
|
||||
config->data = data;
|
||||
|
||||
return config;
|
||||
}
|
||||
|
||||
static void receive_transfer(struct libusb_transfer *transfer)
|
||||
{
|
||||
struct sr_datafeed_packet packet;
|
||||
@@ -2362,12 +2347,12 @@ static void receive_transfer(struct libusb_transfer *transfer)
|
||||
struct sr_datafeed_dso dso;
|
||||
struct sr_datafeed_analog analog;
|
||||
|
||||
const uint8_t *cur_buf = transfer->buffer;
|
||||
uint8_t *cur_buf = transfer->buffer;
|
||||
struct DSL_context *devc = transfer->user_data;
|
||||
struct sr_dev_inst *sdi = devc->cb_data;
|
||||
const int sample_width = 2;
|
||||
int cur_sample_count = transfer->actual_length / sample_width;
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
if (devc->data_lock) {
|
||||
resubmit_transfer(transfer);
|
||||
@@ -2455,7 +2440,7 @@ static void receive_transfer(struct libusb_transfer *transfer)
|
||||
analog.mq = SR_MQ_VOLTAGE;
|
||||
analog.unit = SR_UNIT_VOLT;
|
||||
analog.mqflags = SR_MQFLAG_AC;
|
||||
analog.data = cur_buf;
|
||||
analog.data = (float *)cur_buf;
|
||||
}
|
||||
|
||||
if (devc->limit_samples) {
|
||||
@@ -2572,7 +2557,7 @@ static int dev_transfer_start(const struct sr_dev_inst *sdi)
|
||||
struct DSL_context *devc;
|
||||
struct sr_usb_dev_inst *usb;
|
||||
struct libusb_transfer *transfer;
|
||||
unsigned int i, timeout, num_transfers;
|
||||
unsigned int i, num_transfers;
|
||||
int ret;
|
||||
unsigned char *buf;
|
||||
size_t size;
|
||||
@@ -2581,10 +2566,6 @@ static int dev_transfer_start(const struct sr_dev_inst *sdi)
|
||||
devc = sdi->priv;
|
||||
usb = sdi->conn;
|
||||
|
||||
// timeout = get_timeout(devc);
|
||||
// num_transfers = get_number_of_transfers(devc);
|
||||
// size = get_buffer_size(devc);
|
||||
timeout = 500;
|
||||
#ifndef _WIN32
|
||||
num_transfers = 1;
|
||||
#else
|
||||
@@ -2640,7 +2621,6 @@ static int receive_data(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
struct drv_context *drvc;
|
||||
struct DSL_context *devc;
|
||||
struct sr_usb_dev_inst *usb;
|
||||
int i;
|
||||
int ret;
|
||||
|
||||
(void)fd;
|
||||
@@ -2720,8 +2700,10 @@ static void receive_trigger_pos(struct libusb_transfer *transfer)
|
||||
}
|
||||
}
|
||||
|
||||
static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data)
|
||||
static int dev_acquisition_start(struct sr_dev_inst *sdi, void *cb_data)
|
||||
{
|
||||
(void)cb_data;
|
||||
|
||||
struct DSL_context *devc;
|
||||
struct drv_context *drvc;
|
||||
struct sr_usb_dev_inst *usb;
|
||||
@@ -2790,7 +2772,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data)
|
||||
*/
|
||||
if (sdi->mode == DSO) {
|
||||
devc->trigger_hpos = devc->trigger_hrate * en_ch_num(sdi) * devc->limit_samples / 200.0;
|
||||
if ((ret = command_dso_ctrl(usb->devhdl, dso_cmd_gen(sdi, 1, SR_CONF_HORIZ_TRIGGERPOS))) == SR_OK)
|
||||
if ((ret = command_dso_ctrl(usb->devhdl, dso_cmd_gen(sdi, NULL, SR_CONF_HORIZ_TRIGGERPOS))) == SR_OK)
|
||||
sr_dbg("%s: setting DSO Horiz Trigger Position to %d",
|
||||
__func__, devc->trigger_hpos);
|
||||
else
|
||||
@@ -2810,7 +2792,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data)
|
||||
}
|
||||
transfer = libusb_alloc_transfer(0);
|
||||
libusb_fill_bulk_transfer(transfer, usb->devhdl,
|
||||
6 | LIBUSB_ENDPOINT_IN, trigger_pos, sizeof(struct ds_trigger_pos),
|
||||
6 | LIBUSB_ENDPOINT_IN, (unsigned char*)trigger_pos, sizeof(struct ds_trigger_pos),
|
||||
receive_trigger_pos, devc, 0);
|
||||
if ((ret = libusb_submit_transfer(transfer)) != 0) {
|
||||
sr_err("%s: Failed to submit trigger_pos transfer: %s.",
|
||||
@@ -2853,15 +2835,13 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data)
|
||||
return SR_OK;
|
||||
}
|
||||
|
||||
static int dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data)
|
||||
static int dev_acquisition_stop(const struct sr_dev_inst *sdi, void *cb_data)
|
||||
{
|
||||
(void)cb_data;
|
||||
|
||||
struct drv_context *drvc;
|
||||
struct DSL_context *devc;
|
||||
struct sr_usb_dev_inst *usb;
|
||||
|
||||
drvc = di->priv;
|
||||
devc = sdi->priv;
|
||||
usb = sdi->conn;
|
||||
|
||||
@@ -2873,7 +2853,7 @@ static int dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data)
|
||||
return SR_OK;
|
||||
}
|
||||
|
||||
static int dev_status_get(struct sr_dev_inst *sdi, struct sr_status *status, int begin, int end)
|
||||
static int dev_status_get(const struct sr_dev_inst *sdi, struct sr_status *status, int begin, int end)
|
||||
{
|
||||
int ret = SR_ERR;
|
||||
if (sdi) {
|
||||
|
||||
@@ -236,7 +236,7 @@ static const struct DSL_profile supported_DSCope[] = {
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
static const gboolean default_ms_en[DSO_MS_END - DSO_MS_BEGIN] = {
|
||||
static const gboolean default_ms_en[] = {
|
||||
FALSE, /* DSO_MS_BEGIN */
|
||||
TRUE, /* DSO_MS_FREQ */
|
||||
FALSE, /* DSO_MS_PERD */
|
||||
@@ -245,7 +245,6 @@ static const gboolean default_ms_en[DSO_MS_END - DSO_MS_BEGIN] = {
|
||||
FALSE, /* DSO_MS_VRMS */
|
||||
FALSE, /* DSO_MS_VMEA */
|
||||
FALSE, /* DSO_MS_VP2P */
|
||||
FALSE, /* DSO_MS_END */
|
||||
};
|
||||
|
||||
enum {
|
||||
@@ -369,7 +368,7 @@ struct DSL_setting {
|
||||
};
|
||||
|
||||
struct DSL_vga {
|
||||
int key;
|
||||
uint64_t key;
|
||||
uint64_t vgain0;
|
||||
uint64_t vgain1;
|
||||
uint16_t voff0;
|
||||
|
||||
@@ -36,11 +36,11 @@
|
||||
#undef max
|
||||
#define max(a,b) ((a)>(b)?(a):(b))
|
||||
|
||||
static const int single_buffer_time = 20;
|
||||
static const int total_buffer_time = 200;
|
||||
static const int instant_buffer_size = 1024 * 1024;
|
||||
static const int cons_buffer_size = 128;
|
||||
static const int buffer_cnt = 4;
|
||||
static const unsigned int single_buffer_time = 20;
|
||||
static const unsigned int total_buffer_time = 200;
|
||||
static const unsigned int instant_buffer_size = 1024 * 1024;
|
||||
static const unsigned int cons_buffer_size = 128;
|
||||
static const unsigned int buffer_cnt = 4;
|
||||
|
||||
static struct sr_dev_mode mode_list[] = {
|
||||
{"LA", LOGIC},
|
||||
@@ -568,7 +568,8 @@ static int fpga_setting(const struct sr_dev_inst *sdi)
|
||||
|
||||
result = SR_OK;
|
||||
ret = libusb_bulk_transfer(hdl, 2 | LIBUSB_ENDPOINT_OUT,
|
||||
&setting, sizeof(struct DSL_setting),
|
||||
(unsigned char *)&setting,
|
||||
sizeof(struct DSL_setting),
|
||||
&transferred, 1000);
|
||||
|
||||
if (ret < 0) {
|
||||
@@ -851,10 +852,10 @@ static int init(struct sr_context *sr_ctx)
|
||||
return std_hw_init(sr_ctx, di, LOG_PREFIX);
|
||||
}
|
||||
|
||||
static int probe_init(struct sr_dev_inst *sdi)
|
||||
static void probe_init(struct sr_dev_inst *sdi)
|
||||
{
|
||||
int i;
|
||||
GList *l;
|
||||
GSList *l;
|
||||
for (l = sdi->channels; l; l = l->next) {
|
||||
struct sr_channel *probe = (struct sr_channel *)l->data;
|
||||
if (sdi->mode == DSO) {
|
||||
@@ -902,7 +903,7 @@ static int adjust_probes(struct sr_dev_inst *sdi, int num_probes)
|
||||
}
|
||||
|
||||
while(j > num_probes) {
|
||||
g_slist_delete_link(sdi->channels, g_slist_last(sdi->channels));
|
||||
sdi->channels = g_slist_delete_link(sdi->channels, g_slist_last(sdi->channels));
|
||||
j--;
|
||||
}
|
||||
|
||||
@@ -1037,7 +1038,7 @@ static GSList *dev_list(void)
|
||||
static GSList *dev_mode_list(const struct sr_dev_inst *sdi)
|
||||
{
|
||||
GSList *l = NULL;
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
if (strcmp(sdi->model, "DSLogic") == 0) {
|
||||
for(i = 0; i < ARRAY_SIZE(mode_list); i++) {
|
||||
@@ -1170,12 +1171,11 @@ static uint64_t dso_cmd_gen(const struct sr_dev_inst *sdi, struct sr_channel* ch
|
||||
return cmd;
|
||||
}
|
||||
|
||||
static int dso_init(const struct sr_dev_inst *sdi, gboolean from_eep)
|
||||
static int dso_init(const struct sr_dev_inst *sdi)
|
||||
{
|
||||
int ret, i;
|
||||
int ret;
|
||||
GSList *l;
|
||||
struct sr_usb_dev_inst *usb = sdi->conn;
|
||||
gboolean zeroed = FALSE;
|
||||
|
||||
for(l = sdi->channels; l; l = l->next) {
|
||||
struct sr_channel *probe = (struct sr_channel *)l->data;
|
||||
@@ -1523,13 +1523,13 @@ static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi,
|
||||
|
||||
static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
struct sr_channel *ch,
|
||||
const struct sr_channel_group *cg )
|
||||
struct sr_channel_group *cg )
|
||||
{
|
||||
struct DSL_context *devc;
|
||||
const char *stropt;
|
||||
int ret, num_probes;
|
||||
struct sr_usb_dev_inst *usb;
|
||||
int i;
|
||||
unsigned int i;
|
||||
struct drv_context *drvc;
|
||||
|
||||
(void)cg;
|
||||
@@ -1585,7 +1585,7 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
devc->cur_samplerate = DSLOGIC_MAX_DSO_SAMPLERATE / num_probes;
|
||||
devc->limit_samples = DSLOGIC_MAX_DSO_DEPTH / num_probes;
|
||||
devc->samplerates_size = 15;
|
||||
} else if (sdi->mode == ANALOG){
|
||||
} else {
|
||||
command_wr_reg(usb->devhdl, bmSCOPE_CLR, EEWP_ADDR);
|
||||
num_probes = devc->profile->dev_caps & DEV_CAPS_16BIT ? MAX_ANALOG_PROBES_NUM : 1;
|
||||
devc->op_mode = SR_OP_STREAM;
|
||||
@@ -1597,7 +1597,7 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
set_probes(sdi, num_probes);
|
||||
sr_dbg("%s: setting mode to %d", __func__, sdi->mode);
|
||||
if (sdi->mode == DSO) {
|
||||
dso_init(sdi, 0);
|
||||
dso_init(sdi);
|
||||
}
|
||||
} else if (id == SR_CONF_OPERATION_MODE) {
|
||||
stropt = g_variant_get_string(data, NULL);
|
||||
@@ -1870,7 +1870,7 @@ static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
* because the samplelimits may changed
|
||||
*/
|
||||
devc->trigger_hpos = devc->trigger_hrate * en_ch_num(sdi) * devc->limit_samples / 200.0;
|
||||
if ((ret = command_dso_ctrl(usb->devhdl, dso_cmd_gen(sdi, 1, SR_CONF_HORIZ_TRIGGERPOS))) == SR_OK)
|
||||
if ((ret = command_dso_ctrl(usb->devhdl, dso_cmd_gen(sdi, NULL, SR_CONF_HORIZ_TRIGGERPOS))) == SR_OK)
|
||||
sr_dbg("%s: setting DSO Horiz Trigger Position to %d",
|
||||
__func__, devc->trigger_hpos);
|
||||
else
|
||||
@@ -2005,9 +2005,7 @@ static int dev_open(struct sr_dev_inst *sdi)
|
||||
{
|
||||
struct sr_usb_dev_inst *usb;
|
||||
struct DSL_context *devc;
|
||||
GSList *l;
|
||||
int ret;
|
||||
int64_t timediff_us, timediff_ms;
|
||||
uint8_t hw_info;
|
||||
gboolean fpga_done;
|
||||
|
||||
@@ -2101,12 +2099,10 @@ static int dev_open(struct sr_dev_inst *sdi)
|
||||
static int dev_close(struct sr_dev_inst *sdi)
|
||||
{
|
||||
struct sr_usb_dev_inst *usb;
|
||||
struct DSL_context *devc;
|
||||
|
||||
usb = sdi->conn;
|
||||
if (usb->devhdl == NULL)
|
||||
return SR_ERR;
|
||||
devc = sdi->priv;
|
||||
|
||||
sr_info("DSLogic: Closing device %d on %d.%d interface %d.",
|
||||
sdi->index, usb->bus, usb->address, USB_INTERFACE);
|
||||
@@ -2205,10 +2201,9 @@ static void receive_transfer(struct libusb_transfer *transfer)
|
||||
struct sr_datafeed_logic logic;
|
||||
struct sr_datafeed_dso dso;
|
||||
struct sr_datafeed_analog analog;
|
||||
uint64_t cur_sample_count;
|
||||
int i, j, k;
|
||||
uint64_t cur_sample_count = 0;
|
||||
|
||||
const uint8_t *cur_buf = transfer->buffer;
|
||||
uint8_t *cur_buf = transfer->buffer;
|
||||
struct DSL_context *devc = transfer->user_data;
|
||||
struct sr_dev_inst *sdi = devc->cb_data;
|
||||
const int sample_width = (devc->sample_wide) ? 2 : 1;
|
||||
@@ -2305,7 +2300,7 @@ static void receive_transfer(struct libusb_transfer *transfer)
|
||||
analog.mq = SR_MQ_VOLTAGE;
|
||||
analog.unit = SR_UNIT_VOLT;
|
||||
analog.mqflags = SR_MQFLAG_AC;
|
||||
analog.data = cur_buf;
|
||||
analog.data = (float *)cur_buf;
|
||||
}
|
||||
|
||||
if ((devc->limit_samples && devc->num_bytes < devc->actual_bytes) ||
|
||||
@@ -2392,7 +2387,6 @@ static int receive_data(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
struct drv_context *drvc;
|
||||
struct DSL_context *devc;
|
||||
struct sr_usb_dev_inst *usb;
|
||||
unsigned int i;
|
||||
int ret;
|
||||
|
||||
(void)fd;
|
||||
@@ -2432,7 +2426,6 @@ static void receive_trigger_pos(struct libusb_transfer *transfer)
|
||||
struct sr_datafeed_packet packet;
|
||||
struct ds_trigger_pos *trigger_pos;
|
||||
const struct sr_dev_inst *sdi;
|
||||
int ret;
|
||||
uint64_t remain_cnt;
|
||||
|
||||
packet.status = SR_PKT_OK;
|
||||
@@ -2485,7 +2478,7 @@ static int start_transfers(const struct sr_dev_inst *sdi)
|
||||
int ret;
|
||||
unsigned char *buf;
|
||||
size_t size;
|
||||
int dso_buffer_size;
|
||||
unsigned int dso_buffer_size;
|
||||
struct ds_trigger_pos *trigger_pos;
|
||||
|
||||
devc = sdi->priv;
|
||||
@@ -2513,7 +2506,7 @@ static int start_transfers(const struct sr_dev_inst *sdi)
|
||||
}
|
||||
transfer = libusb_alloc_transfer(0);
|
||||
libusb_fill_bulk_transfer(transfer, usb->devhdl,
|
||||
6 | LIBUSB_ENDPOINT_IN, trigger_pos, sizeof(struct ds_trigger_pos),
|
||||
6 | LIBUSB_ENDPOINT_IN, (unsigned char *)trigger_pos, sizeof(struct ds_trigger_pos),
|
||||
receive_trigger_pos, devc, 0);
|
||||
if ((ret = libusb_submit_transfer(transfer)) != 0) {
|
||||
sr_err("%s: Failed to submit trigger_pos transfer: %s.",
|
||||
@@ -2555,12 +2548,13 @@ static int start_transfers(const struct sr_dev_inst *sdi)
|
||||
return SR_OK;
|
||||
}
|
||||
|
||||
static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data)
|
||||
static int dev_acquisition_start(struct sr_dev_inst *sdi, void *cb_data)
|
||||
{
|
||||
(void)cb_data;
|
||||
|
||||
struct DSL_context *devc;
|
||||
struct drv_context *drvc;
|
||||
struct sr_usb_dev_inst *usb;
|
||||
struct libusb_transfer *transfer;
|
||||
const struct libusb_pollfd **lupfd;
|
||||
unsigned int i;
|
||||
int ret;
|
||||
@@ -2618,7 +2612,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data)
|
||||
*/
|
||||
if (sdi->mode == DSO) {
|
||||
devc->trigger_hpos = devc->trigger_hrate * en_ch_num(sdi) * devc->limit_samples / 200.0;
|
||||
if ((ret = command_dso_ctrl(usb->devhdl, dso_cmd_gen(sdi, 1, SR_CONF_HORIZ_TRIGGERPOS))) == SR_OK)
|
||||
if ((ret = command_dso_ctrl(usb->devhdl, dso_cmd_gen(sdi, NULL, SR_CONF_HORIZ_TRIGGERPOS))) == SR_OK)
|
||||
sr_dbg("%s: setting DSO Horiz Trigger Position to %d",
|
||||
__func__, devc->trigger_hpos);
|
||||
else
|
||||
@@ -2661,7 +2655,7 @@ static int dev_acquisition_start(const struct sr_dev_inst *sdi, void *cb_data)
|
||||
return SR_OK;
|
||||
}
|
||||
|
||||
static int dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data)
|
||||
static int dev_acquisition_stop(const struct sr_dev_inst *sdi, void *cb_data)
|
||||
{
|
||||
(void)cb_data;
|
||||
|
||||
@@ -2679,7 +2673,7 @@ static int dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data)
|
||||
return SR_OK;
|
||||
}
|
||||
|
||||
static int dev_status_get(struct sr_dev_inst *sdi, struct sr_status *status, int begin, int end)
|
||||
static int dev_status_get(const struct sr_dev_inst *sdi, struct sr_status *status, int begin, int end)
|
||||
{
|
||||
int ret = SR_ERR;
|
||||
if (sdi) {
|
||||
|
||||
@@ -287,7 +287,7 @@ static const char *probe_names[NUM_PROBES + 1] = {
|
||||
|
||||
};
|
||||
|
||||
static const gboolean default_ms_en[DSO_MS_END - DSO_MS_BEGIN] = {
|
||||
static const gboolean default_ms_en[] = {
|
||||
FALSE, /* DSO_MS_BEGIN */
|
||||
TRUE, /* DSO_MS_FREQ */
|
||||
FALSE, /* DSO_MS_PERD */
|
||||
@@ -296,7 +296,6 @@ static const gboolean default_ms_en[DSO_MS_END - DSO_MS_BEGIN] = {
|
||||
FALSE, /* DSO_MS_VRMS */
|
||||
FALSE, /* DSO_MS_VMEA */
|
||||
FALSE, /* DSO_MS_VP2P */
|
||||
FALSE, /* DSO_MS_END */
|
||||
};
|
||||
|
||||
/* Private, per-device-instance driver context. */
|
||||
@@ -308,7 +307,7 @@ static struct sr_dev_driver *di = &demo_driver_info;
|
||||
|
||||
extern struct ds_trigger *trigger;
|
||||
|
||||
static int hw_dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data);
|
||||
static int hw_dev_acquisition_stop(const struct sr_dev_inst *sdi, void *cb_data);
|
||||
|
||||
static int clear_instances(void)
|
||||
{
|
||||
@@ -400,7 +399,7 @@ static GSList *hw_dev_mode_list(const struct sr_dev_inst *sdi)
|
||||
{
|
||||
(void)sdi;
|
||||
GSList *l = NULL;
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
for(i = 0; i < ARRAY_SIZE(mode_list); i++) {
|
||||
l = g_slist_append(l, &mode_list[i]);
|
||||
@@ -472,16 +471,15 @@ static int hw_cleanup(void)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int en_ch_num(const struct sr_dev_inst *sdi)
|
||||
static unsigned int en_ch_num(const struct sr_dev_inst *sdi)
|
||||
{
|
||||
GSList *l;
|
||||
int channel_en_cnt = 0;
|
||||
unsigned int channel_en_cnt = 0;
|
||||
|
||||
for (l = sdi->channels; l; l = l->next) {
|
||||
struct sr_channel *probe = (struct sr_channel *)l->data;
|
||||
channel_en_cnt += probe->enabled;
|
||||
}
|
||||
channel_en_cnt += (channel_en_cnt == 0);
|
||||
|
||||
return channel_en_cnt;
|
||||
}
|
||||
@@ -573,7 +571,7 @@ static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi,
|
||||
|
||||
static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
struct sr_channel *ch,
|
||||
const struct sr_channel_group *cg)
|
||||
struct sr_channel_group *cg)
|
||||
{
|
||||
uint16_t i, j;
|
||||
int ret;
|
||||
@@ -822,16 +820,16 @@ static void samples_generator(uint16_t *buf, uint64_t size,
|
||||
const struct sr_dev_inst *sdi,
|
||||
struct dev_context *devc)
|
||||
{
|
||||
uint64_t i, pre0_i, pre1_i, index;
|
||||
uint64_t i, pre0_i, pre1_i;
|
||||
GSList *l;
|
||||
struct sr_channel *probe;
|
||||
int offset;
|
||||
int start_rand;
|
||||
unsigned int start_rand;
|
||||
const uint64_t span = DEMO_MAX_DSO_SAMPLERATE / devc->cur_samplerate;
|
||||
const uint64_t len = ARRAY_SIZE(sinx) - 1;
|
||||
int *pre_buf;
|
||||
const int *pre_buf;
|
||||
uint16_t tmp_u16 = 0;
|
||||
int ch_num = en_ch_num(sdi);
|
||||
unsigned int ch_num = en_ch_num(sdi) ? en_ch_num(sdi) : 1;
|
||||
|
||||
switch (devc->sample_generator) {
|
||||
case PATTERN_SINE: /* Sine */
|
||||
@@ -955,11 +953,11 @@ static int receive_data(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
struct sr_datafeed_dso dso;
|
||||
struct sr_datafeed_analog analog;
|
||||
double samples_elaspsed;
|
||||
uint64_t samples_to_send = 0, expected_samplenum, sending_now;
|
||||
uint64_t samples_to_send = 0, sending_now;
|
||||
int64_t time, elapsed;
|
||||
static uint16_t last_sample = 0;
|
||||
uint16_t cur_sample;
|
||||
int i;
|
||||
uint64_t i;
|
||||
|
||||
(void)fd;
|
||||
(void)revents;
|
||||
@@ -1069,7 +1067,7 @@ static int receive_data(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
analog.mq = SR_MQ_VOLTAGE;
|
||||
analog.unit = SR_UNIT_VOLT;
|
||||
analog.mqflags = SR_MQFLAG_AC;
|
||||
analog.data = devc->buf;
|
||||
analog.data = (float *)devc->buf;
|
||||
}
|
||||
|
||||
if (sdi->mode == DSO && !devc->instant) {
|
||||
@@ -1098,7 +1096,7 @@ static int receive_data(int fd, int revents, const struct sr_dev_inst *sdi)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi,
|
||||
static int hw_dev_acquisition_start(struct sr_dev_inst *sdi,
|
||||
void *cb_data)
|
||||
{
|
||||
struct dev_context *const devc = sdi->priv;
|
||||
@@ -1159,7 +1157,7 @@ static int hw_dev_acquisition_start(const struct sr_dev_inst *sdi,
|
||||
return SR_OK;
|
||||
}
|
||||
|
||||
static int hw_dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data)
|
||||
static int hw_dev_acquisition_stop(const struct sr_dev_inst *sdi, void *cb_data)
|
||||
{
|
||||
(void)cb_data;
|
||||
|
||||
@@ -1184,7 +1182,7 @@ static int hw_dev_acquisition_stop(struct sr_dev_inst *sdi, void *cb_data)
|
||||
return SR_OK;
|
||||
}
|
||||
|
||||
static int hw_dev_status_get(struct sr_dev_inst *sdi, struct sr_status *status, int begin, int end)
|
||||
static int hw_dev_status_get(const struct sr_dev_inst *sdi, struct sr_status *status, int begin, int end)
|
||||
{
|
||||
(void)begin;
|
||||
(void)end;
|
||||
|
||||
@@ -326,9 +326,9 @@ SR_API int sr_config_get(const struct sr_dev_driver *driver,
|
||||
* but this is not to be flagged as an error by the caller; merely
|
||||
* as an indication that it's not applicable.
|
||||
*/
|
||||
SR_API int sr_config_set(const struct sr_dev_inst *sdi,
|
||||
const struct sr_channel *ch,
|
||||
const struct sr_channel_group *cg,
|
||||
SR_API int sr_config_set(struct sr_dev_inst *sdi,
|
||||
struct sr_channel *ch,
|
||||
struct sr_channel_group *cg,
|
||||
int key, GVariant *data)
|
||||
{
|
||||
int ret;
|
||||
|
||||
@@ -299,7 +299,7 @@ static int format_match(const char *filename)
|
||||
gchar *name = NULL, *contents = NULL;
|
||||
gboolean status;
|
||||
|
||||
file = g_fopen(filename, "r");
|
||||
file = fopen(filename, "r");
|
||||
if (file == NULL)
|
||||
return FALSE;
|
||||
|
||||
@@ -565,7 +565,7 @@ static int loadfile(struct sr_input *in, const char *filename)
|
||||
ctx = in->internal;
|
||||
packet.status = SR_PKT_OK;
|
||||
|
||||
if ((file = g_fopen(filename, "r")) == NULL)
|
||||
if ((file = fopen(filename, "r")) == NULL)
|
||||
return SR_ERR;
|
||||
|
||||
if (!parse_header(file, ctx))
|
||||
|
||||
@@ -156,8 +156,6 @@ enum {
|
||||
#define SR_PRIV
|
||||
#endif
|
||||
|
||||
typedef int (*sr_receive_data_callback_t)(int fd, int revents, const struct sr_dev_inst *sdi);
|
||||
|
||||
/** Data types used by sr_config_info(). */
|
||||
enum {
|
||||
SR_T_UINT64 = 10000,
|
||||
@@ -456,13 +454,13 @@ struct sr_output {
|
||||
* A pointer to this output format's 'struct sr_output_format'.
|
||||
* The frontend can use this to call the module's callbacks.
|
||||
*/
|
||||
struct sr_output_module *module;
|
||||
const struct sr_output_module *module;
|
||||
|
||||
/**
|
||||
* The device for which this output module is creating output. This
|
||||
* can be used by the module to find out probe names and numbers.
|
||||
*/
|
||||
struct sr_dev_inst *sdi;
|
||||
const struct sr_dev_inst *sdi;
|
||||
|
||||
/**
|
||||
* An optional parameter which the frontend can pass in to the
|
||||
@@ -665,7 +663,7 @@ struct sr_status {
|
||||
uint64_t ch1_period;
|
||||
uint32_t ch1_pcnt;
|
||||
|
||||
uint32_t vlen;
|
||||
int vlen;
|
||||
gboolean stream_mode;
|
||||
uint32_t sample_divider;
|
||||
gboolean sample_divider_tog;
|
||||
@@ -1084,9 +1082,9 @@ struct sr_dev_driver {
|
||||
const struct sr_channel *ch,
|
||||
const struct sr_channel_group *cg);
|
||||
int (*config_set) (int id, GVariant *data,
|
||||
const struct sr_dev_inst *sdi,
|
||||
const struct sr_channel *ch,
|
||||
const struct sr_channel_group *cg);
|
||||
struct sr_dev_inst *sdi,
|
||||
struct sr_channel *ch,
|
||||
struct sr_channel_group *cg);
|
||||
int (*config_list) (int info_id, GVariant **data,
|
||||
const struct sr_dev_inst *sdi,
|
||||
const struct sr_channel_group *cg);
|
||||
@@ -1094,12 +1092,12 @@ struct sr_dev_driver {
|
||||
/* Device-specific */
|
||||
int (*dev_open) (struct sr_dev_inst *sdi);
|
||||
int (*dev_close) (struct sr_dev_inst *sdi);
|
||||
int (*dev_status_get) (struct sr_dev_inst *sdi,
|
||||
int (*dev_status_get) (const struct sr_dev_inst *sdi,
|
||||
struct sr_status *status,
|
||||
int begin, int end);
|
||||
int (*dev_acquisition_start) (const struct sr_dev_inst *sdi,
|
||||
int (*dev_acquisition_start) (struct sr_dev_inst *sdi,
|
||||
void *cb_data);
|
||||
int (*dev_acquisition_stop) (struct sr_dev_inst *sdi,
|
||||
int (*dev_acquisition_stop) (const struct sr_dev_inst *sdi,
|
||||
void *cb_data);
|
||||
|
||||
/* Dynamic */
|
||||
@@ -1177,6 +1175,8 @@ struct ds_trigger_pos {
|
||||
unsigned char first_block[488];
|
||||
};
|
||||
|
||||
typedef int (*sr_receive_data_callback_t)(int fd, int revents, const struct sr_dev_inst *sdi);
|
||||
|
||||
#include "proto.h"
|
||||
#include "version.h"
|
||||
|
||||
|
||||
@@ -236,7 +236,7 @@ static int receive(const struct sr_output *o, const struct sr_datafeed_packet *p
|
||||
*out = g_string_sized_new(512);
|
||||
}
|
||||
|
||||
for (i = 0; i < dso->num_samples; i++) {
|
||||
for (i = 0; i < (uint64_t)dso->num_samples; i++) {
|
||||
for (j = 0; j < ctx->num_enabled_channels; j++) {
|
||||
idx = ctx->channel_index[j];
|
||||
p = dso->data + i * ctx->num_enabled_channels + idx * ((ctx->num_enabled_channels > 1) ? 1 : 0);
|
||||
|
||||
@@ -69,9 +69,9 @@ SR_API int sr_config_get(const struct sr_dev_driver *driver,
|
||||
const struct sr_channel *ch,
|
||||
const struct sr_channel_group *cg,
|
||||
int key, GVariant **data);
|
||||
SR_API int sr_config_set(const struct sr_dev_inst *sdi,
|
||||
const struct sr_channel *ch,
|
||||
const struct sr_channel_group *cg,
|
||||
SR_API int sr_config_set(struct sr_dev_inst *sdi,
|
||||
struct sr_channel *ch,
|
||||
struct sr_channel_group *cg,
|
||||
int key, GVariant *data);
|
||||
SR_API int sr_config_list(const struct sr_dev_driver *driver,
|
||||
const struct sr_dev_inst *sdi,
|
||||
@@ -91,7 +91,7 @@ SR_API int sr_session_load(const char *filename);
|
||||
SR_API struct sr_session *sr_session_new(void);
|
||||
SR_API int sr_session_destroy(void);
|
||||
SR_API int sr_session_dev_remove_all(void);
|
||||
SR_API int sr_session_dev_add(const struct sr_dev_inst *sdi);
|
||||
SR_API int sr_session_dev_add(struct sr_dev_inst *sdi);
|
||||
SR_API int sr_session_dev_list(GSList **devlist);
|
||||
|
||||
/* Datafeed setup */
|
||||
@@ -174,4 +174,10 @@ SR_API int ds_trigger_set_en(uint16_t enable);
|
||||
SR_API uint16_t ds_trigger_get_en();
|
||||
SR_API int ds_trigger_set_mode(uint16_t mode);
|
||||
|
||||
SR_PRIV uint64_t ds_trigger_get_mask0(uint16_t stage);
|
||||
SR_PRIV uint64_t ds_trigger_get_value0(uint16_t stage);
|
||||
SR_PRIV uint64_t ds_trigger_get_edge0(uint16_t stage);
|
||||
SR_PRIV uint64_t ds_trigger_get_mask1(uint16_t stage);
|
||||
SR_PRIV uint64_t ds_trigger_get_value1(uint16_t stage);
|
||||
SR_PRIV uint64_t ds_trigger_get_edge1(uint16_t stage);
|
||||
#endif
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
struct source {
|
||||
int timeout;
|
||||
sr_receive_data_callback_t cb;
|
||||
void *cb_data;
|
||||
const void *cb_data;
|
||||
|
||||
/* This is used to keep track of the object (fd, pollfd or channel) which is
|
||||
* being polled and will be used to match the source when removing it again.
|
||||
@@ -187,7 +187,7 @@ SR_API int sr_session_dev_remove_all(void)
|
||||
*
|
||||
* @return SR_OK upon success, SR_ERR_ARG upon invalid arguments.
|
||||
*/
|
||||
SR_API int sr_session_dev_add(const struct sr_dev_inst *sdi)
|
||||
SR_API int sr_session_dev_add(struct sr_dev_inst *sdi)
|
||||
{
|
||||
int ret;
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <sys/time.h>
|
||||
#include <zip.h>
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include "libsigrok.h"
|
||||
#include "libsigrok-internal.h"
|
||||
|
||||
@@ -91,7 +92,7 @@ static int trans_data(struct sr_dev_inst *sdi)
|
||||
{
|
||||
// translate for old format
|
||||
struct session_vdev *vdev = sdi->priv;
|
||||
GList *l;
|
||||
GSList *l;
|
||||
struct sr_channel *probe;
|
||||
|
||||
assert(vdev->buf != NULL);
|
||||
@@ -124,7 +125,7 @@ static int trans_data(struct sr_dev_inst *sdi)
|
||||
static int receive_data(int fd, int revents, const struct sr_dev_inst *cb_sdi)
|
||||
{
|
||||
struct sr_dev_inst *sdi;
|
||||
struct session_vdev *vdev;
|
||||
struct session_vdev *vdev = NULL;
|
||||
struct sr_datafeed_packet packet;
|
||||
struct sr_datafeed_logic logic;
|
||||
struct sr_datafeed_dso dso;
|
||||
@@ -132,7 +133,7 @@ static int receive_data(int fd, int revents, const struct sr_dev_inst *cb_sdi)
|
||||
GSList *l;
|
||||
int ret;
|
||||
char file_name[32];
|
||||
struct sr_channel *probe;
|
||||
struct sr_channel *probe = NULL;
|
||||
GSList *pl;
|
||||
int channel;
|
||||
|
||||
@@ -242,7 +243,8 @@ static int receive_data(int fd, int revents, const struct sr_dev_inst *cb_sdi)
|
||||
}
|
||||
}
|
||||
|
||||
if (vdev->cur_channel >= vdev->num_probes ||
|
||||
if (!vdev ||
|
||||
vdev->cur_channel >= vdev->num_probes ||
|
||||
revents == -1) {
|
||||
packet.type = SR_DF_END;
|
||||
sr_session_send(cb_sdi, &packet);
|
||||
@@ -320,6 +322,8 @@ static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi,
|
||||
const struct sr_channel *ch,
|
||||
const struct sr_channel_group *cg)
|
||||
{
|
||||
(void)cg;
|
||||
|
||||
struct session_vdev *vdev;
|
||||
|
||||
switch (id) {
|
||||
@@ -443,13 +447,15 @@ static int config_get(int id, GVariant **data, const struct sr_dev_inst *sdi,
|
||||
return SR_OK;
|
||||
}
|
||||
|
||||
static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi,
|
||||
static int config_set(int id, GVariant *data, struct sr_dev_inst *sdi,
|
||||
struct sr_channel *ch,
|
||||
const struct sr_channel_group *cg)
|
||||
struct sr_channel_group *cg)
|
||||
{
|
||||
(void)cg;
|
||||
|
||||
struct session_vdev *vdev;
|
||||
const char *stropt;
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
vdev = sdi->priv;
|
||||
|
||||
@@ -565,8 +571,12 @@ static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi,
|
||||
return SR_OK;
|
||||
}
|
||||
|
||||
static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi)
|
||||
static int config_list(int key, GVariant **data,
|
||||
const struct sr_dev_inst *sdi,
|
||||
const struct sr_channel_group *cg)
|
||||
{
|
||||
(void)cg;
|
||||
|
||||
GVariant *gvar;
|
||||
GVariantBuilder gvb;
|
||||
|
||||
@@ -611,7 +621,7 @@ static int config_list(int key, GVariant **data, const struct sr_dev_inst *sdi)
|
||||
return SR_OK;
|
||||
}
|
||||
|
||||
static int dev_status_get(struct sr_dev_inst *sdi, struct sr_status *status, int begin, int end)
|
||||
static int dev_status_get(const struct sr_dev_inst *sdi, struct sr_status *status, int begin, int end)
|
||||
{
|
||||
(void)begin;
|
||||
(void)end;
|
||||
@@ -627,14 +637,16 @@ static int dev_status_get(struct sr_dev_inst *sdi, struct sr_status *status, int
|
||||
}
|
||||
}
|
||||
|
||||
static int dev_acquisition_start(const struct sr_dev_inst *sdi,
|
||||
static int dev_acquisition_start(struct sr_dev_inst *sdi,
|
||||
void *cb_data)
|
||||
{
|
||||
(void)cb_data;
|
||||
|
||||
struct zip_stat zs;
|
||||
struct session_vdev *vdev;
|
||||
struct sr_datafeed_packet packet;
|
||||
int ret;
|
||||
GList *l;
|
||||
GSList *l;
|
||||
struct sr_channel *probe;
|
||||
|
||||
vdev = sdi->priv;
|
||||
|
||||
@@ -121,12 +121,12 @@ SR_API int sr_session_load(const char *filename)
|
||||
struct zip_stat zs;
|
||||
struct sr_dev_inst *sdi;
|
||||
struct sr_channel *probe;
|
||||
int ret, devcnt, i, j, k;
|
||||
int ret, devcnt, i, j;
|
||||
uint16_t probenum;
|
||||
uint64_t tmp_u64, total_probes, enabled_probes;
|
||||
uint16_t p;
|
||||
int64_t tmp_64;
|
||||
char **sections, **keys, *metafile, *val, s[11];
|
||||
char **sections, **keys, *metafile, *val;
|
||||
char probename[SR_MAX_PROBENAME_LEN + 1];
|
||||
int mode = LOGIC;
|
||||
int channel_type = SR_CHANNEL_LOGIC;
|
||||
@@ -239,7 +239,7 @@ SR_API int sr_session_load(const char *filename)
|
||||
channel_type = (mode == DSO) ? SR_CHANNEL_DSO :
|
||||
(mode == ANALOG) ? SR_CHANNEL_ANALOG : SR_CHANNEL_LOGIC;
|
||||
for (p = 0; p < total_probes; p++) {
|
||||
snprintf(probename, SR_MAX_PROBENAME_LEN, "%" PRIu64, p);
|
||||
snprintf(probename, SR_MAX_PROBENAME_LEN, "%u", p);
|
||||
if (!(probe = sr_channel_new(p, channel_type, FALSE,
|
||||
probename)))
|
||||
return SR_ERR;
|
||||
|
||||
@@ -177,7 +177,6 @@ SR_API int ds_trigger_set_stage(uint16_t stages)
|
||||
SR_API int ds_trigger_set_pos(uint16_t position)
|
||||
{
|
||||
assert(position <= 100);
|
||||
assert(position >= 0);
|
||||
|
||||
trigger->trigger_pos = position;
|
||||
|
||||
@@ -245,7 +244,7 @@ SR_PRIV uint64_t ds_trigger_get_mask0(uint16_t stage)
|
||||
|
||||
for (i = TriggerProbes - 1; i >= 0 ; i--) {
|
||||
mask = (mask << 1);
|
||||
mask += (trigger->trigger0[stage][i] == 'X' | trigger->trigger0[stage][i] == 'C');
|
||||
mask += (trigger->trigger0[stage][i] == 'X' || trigger->trigger0[stage][i] == 'C');
|
||||
}
|
||||
|
||||
return mask;
|
||||
@@ -259,7 +258,7 @@ SR_PRIV uint64_t ds_trigger_get_mask1(uint16_t stage)
|
||||
|
||||
for (i = TriggerProbes - 1; i >= 0 ; i--) {
|
||||
mask = (mask << 1);
|
||||
mask += (trigger->trigger1[stage][i] == 'X' | trigger->trigger1[stage][i] == 'C');
|
||||
mask += ((trigger->trigger1[stage][i] == 'X') | (trigger->trigger1[stage][i] == 'C'));
|
||||
}
|
||||
|
||||
return mask;
|
||||
@@ -273,7 +272,7 @@ SR_PRIV uint64_t ds_trigger_get_value0(uint16_t stage)
|
||||
|
||||
for (i = TriggerProbes - 1; i >= 0 ; i--) {
|
||||
value = (value << 1);
|
||||
value += (trigger->trigger0[stage][i] == '1' | trigger->trigger0[stage][i] == 'R');
|
||||
value += ((trigger->trigger0[stage][i] == '1') | (trigger->trigger0[stage][i] == 'R'));
|
||||
}
|
||||
|
||||
return value;
|
||||
@@ -287,7 +286,7 @@ SR_PRIV uint64_t ds_trigger_get_value1(uint16_t stage)
|
||||
|
||||
for (i = TriggerProbes - 1; i >= 0 ; i--) {
|
||||
value = (value << 1);
|
||||
value += (trigger->trigger1[stage][i] == '1' | trigger->trigger1[stage][i] == 'R');
|
||||
value += ((trigger->trigger1[stage][i] == '1') | (trigger->trigger1[stage][i] == 'R'));
|
||||
}
|
||||
|
||||
return value;
|
||||
@@ -301,8 +300,8 @@ SR_PRIV uint64_t ds_trigger_get_edge0(uint16_t stage)
|
||||
|
||||
for (i = TriggerProbes - 1; i >= 0 ; i--) {
|
||||
edge = (edge << 1);
|
||||
edge += (trigger->trigger0[stage][i] == 'R' | trigger->trigger0[stage][i] == 'F' |
|
||||
trigger->trigger0[stage][i] == 'C');
|
||||
edge += ((trigger->trigger0[stage][i] == 'R') | (trigger->trigger0[stage][i] == 'F') |
|
||||
(trigger->trigger0[stage][i] == 'C'));
|
||||
}
|
||||
|
||||
return edge;
|
||||
@@ -316,8 +315,8 @@ SR_PRIV uint64_t ds_trigger_get_edge1(uint16_t stage)
|
||||
|
||||
for (i = TriggerProbes - 1; i >= 0 ; i--) {
|
||||
edge = (edge << 1);
|
||||
edge += (trigger->trigger1[stage][i] == 'R' | trigger->trigger1[stage][i] == 'F' |
|
||||
trigger->trigger1[stage][i] == 'C');
|
||||
edge += ((trigger->trigger1[stage][i] == 'R') | (trigger->trigger1[stage][i] == 'F') |
|
||||
(trigger->trigger1[stage][i] == 'C'));
|
||||
}
|
||||
|
||||
return edge;
|
||||
|
||||
Reference in New Issue
Block a user