X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=output%2Fcsv.c;h=6de9ac3f155bfb7a7278631e5ce568a80efc751d;hb=fa0d6afe19c3a545f3f940933ed079966525d142;hp=0b70b2d6cf9803af0fc6c1a02a4d5dec6ace3c23;hpb=af51a7718eb22e9630107af814db6ae9f179a969;p=libsigrok.git diff --git a/output/csv.c b/output/csv.c index 0b70b2d6..6de9ac3f 100644 --- a/output/csv.c +++ b/output/csv.c @@ -25,14 +25,7 @@ #include "libsigrok.h" #include "libsigrok-internal.h" -/* Message logging helpers with driver-specific prefix string. */ -#define DRIVER_LOG_DOMAIN "output/csv: " -#define sr_log(l, s, args...) sr_log(l, DRIVER_LOG_DOMAIN s, ## args) -#define sr_spew(s, args...) sr_spew(DRIVER_LOG_DOMAIN s, ## args) -#define sr_dbg(s, args...) sr_dbg(DRIVER_LOG_DOMAIN s, ## args) -#define sr_info(s, args...) sr_info(DRIVER_LOG_DOMAIN s, ## args) -#define sr_warn(s, args...) sr_warn(DRIVER_LOG_DOMAIN s, ## args) -#define sr_err(s, args...) sr_err(DRIVER_LOG_DOMAIN s, ## args) +#define LOG_PREFIX "output/csv" struct context { unsigned int num_enabled_probes; @@ -83,16 +76,19 @@ static int init(struct sr_output *o) /* Get the number of probes, and the unitsize. */ for (l = o->sdi->probes; l; l = l->next) { probe = l->data; - if (probe->enabled) - ctx->num_enabled_probes++; + if (probe->type != SR_PROBE_LOGIC) + continue; + if (!probe->enabled) + continue; + ctx->num_enabled_probes++; } ctx->unitsize = (ctx->num_enabled_probes + 7) / 8; num_probes = g_slist_length(o->sdi->probes); - if (sr_config_get(o->sdi->driver, SR_CONF_SAMPLERATE, &gvar, - o->sdi) == SR_OK) { + if (sr_config_get(o->sdi->driver, o->sdi, NULL, SR_CONF_SAMPLERATE, + &gvar) == SR_OK) { ctx->samplerate = g_variant_get_uint64(gvar); g_variant_unref(gvar); } else @@ -114,8 +110,11 @@ static int init(struct sr_output *o) ctx->num_enabled_probes, num_probes); for (l = o->sdi->probes; l; l = l->next) { probe = l->data; - if (probe->enabled) - g_string_append_printf(ctx->header, "%s, ", probe->name); + if (probe->type != SR_PROBE_LOGIC) + continue; + if (!probe->enabled) + continue; + g_string_append_printf(ctx->header, "%s, ", probe->name); } g_string_append_printf(ctx->header, "\n"); @@ -172,8 +171,7 @@ static int data(struct sr_output *o, const uint8_t *data_in, { struct context *ctx; GString *outstr; - uint64_t sample, i; - int j; + uint64_t sample, i, j; if (!o) { sr_err("%s: o was NULL", __func__); @@ -200,7 +198,7 @@ static int data(struct sr_output *o, const uint8_t *data_in, for (i = 0; i <= length_in - ctx->unitsize; i += ctx->unitsize) { memcpy(&sample, data_in + i, ctx->unitsize); - for (j = ctx->num_enabled_probes - 1; j >= 0; j--) { + for (j = 0; j < ctx->num_enabled_probes; j++) { g_string_append_printf(outstr, "%d%c", (int)((sample & (1 << j)) >> j), ctx->separator);