output/vcd: Extend output stream to last sample.
(receive): Write a dummy timestamp after the last sample to indicate the length of the sampled stream.
This commit is contained in:
parent
4f2dad42f4
commit
fb9e91aed4
12
output/vcd.c
12
output/vcd.c
|
@ -165,9 +165,6 @@ static int receive(struct sr_output *o, const struct sr_dev_inst *sdi,
|
||||||
return SR_ERR_BUG;
|
return SR_ERR_BUG;
|
||||||
ctx = o->internal;
|
ctx = o->internal;
|
||||||
|
|
||||||
if (packet->type != SR_DF_LOGIC)
|
|
||||||
return SR_OK;
|
|
||||||
|
|
||||||
if (ctx->header) {
|
if (ctx->header) {
|
||||||
/* The header is still here, this must be the first packet. */
|
/* The header is still here, this must be the first packet. */
|
||||||
*out = ctx->header;
|
*out = ctx->header;
|
||||||
|
@ -177,6 +174,15 @@ static int receive(struct sr_output *o, const struct sr_dev_inst *sdi,
|
||||||
*out = g_string_sized_new(512);
|
*out = g_string_sized_new(512);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (packet->type != SR_DF_LOGIC) {
|
||||||
|
if (packet->type == SR_DF_END)
|
||||||
|
/* Write final timestamp as length indicator. */
|
||||||
|
g_string_append_printf(*out, "#%.0f\n",
|
||||||
|
(double)ctx->samplecount /
|
||||||
|
ctx->samplerate * ctx->period);
|
||||||
|
return SR_OK;
|
||||||
|
}
|
||||||
|
|
||||||
logic = packet->payload;
|
logic = packet->payload;
|
||||||
for (i = 0; i <= logic->length - logic->unitsize; i += logic->unitsize) {
|
for (i = 0; i <= logic->length - logic->unitsize; i += logic->unitsize) {
|
||||||
sample = logic->data + i;
|
sample = logic->data + i;
|
||||||
|
|
Loading…
Reference in New Issue