X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=output%2Foutput_gnuplot.c;h=5d4c564b1071e646f8f9e7c13875b6247f269ca4;hb=340f6e7aeaf0c6cbbb27c5b535787bd09407994b;hp=2c062397db98075c3167a45ba000b86c4433eeea;hpb=114fb93f67f8748352ad4f851afeab31df2f0385;p=libsigrok.git diff --git a/output/output_gnuplot.c b/output/output_gnuplot.c index 2c062397..5d4c564b 100644 --- a/output/output_gnuplot.c +++ b/output/output_gnuplot.c @@ -67,8 +67,9 @@ static int init(struct output *o) ctx->num_enabled_probes = 0; for (l = o->device->probes; l; l = l->next) { probe = l->data; - if (probe->enabled) - ctx->probelist[ctx->num_enabled_probes++] = probe->name; + if (!probe->enabled) + continue; + ctx->probelist[ctx->num_enabled_probes++] = probe->name; } ctx->probelist[ctx->num_enabled_probes] = 0; @@ -143,7 +144,8 @@ static int data(struct output *o, char *data_in, uint64_t length_in, { struct context *ctx; unsigned int i, outsize, p, curbit; - uint64_t sample, count = 0; + uint64_t sample; + static uint64_t samplecount = 0; char *outbuf, *c; ctx = o->internal; @@ -170,11 +172,11 @@ static int data(struct output *o, char *data_in, uint64_t length_in, /* The first column is a counter (needed for gnuplot). */ c = outbuf + strlen(outbuf); - sprintf(c, "%" PRIu64 "\t\t", count++); + sprintf(c, "%" PRIu64 "\t\t", samplecount++); /* The next columns are the values of all channels. */ for (p = 0; p < ctx->num_enabled_probes; p++) { - curbit = (sample & ((uint64_t) (1 << p))) != 0; + curbit = (sample & ((uint64_t) (1 << p))) >> p; c = outbuf + strlen(outbuf); sprintf(c, "%d ", curbit); }