output: fixup trigger marker position in ascii/bits/hex output modules
Adjust the calculation of the '^' marker's position in T: lines of the -O ascii/bits/hex output modules such that it matches the sample data lines' layout. Add comments which discuss the motivation of the marker position's calculation, which differs among each of those modules. Strictly speaking -O bits was already correct. But I chose to adjust and comment the logic such that multiple output modules follow a common pattern. If performance is an issue, the bits.c change might be worth reverting. This commit fixes bug #1238.
This commit is contained in:
parent
769561cbe9
commit
67b345b981
|
@ -199,7 +199,13 @@ static int receive(const struct sr_output *o, const struct sr_datafeed_packet *p
|
|||
g_string_append_len(*out, ctx->lines[j]->str, ctx->lines[j]->len);
|
||||
g_string_append_c(*out, '\n');
|
||||
if (j == ctx->num_enabled_channels - 1 && ctx->trigger > -1) {
|
||||
offset = ctx->trigger + ctx->trigger / 8;
|
||||
/*
|
||||
* Each group of 8 bits occupies 8 bit positions
|
||||
* and no separator. With this dense presentation
|
||||
* the "calculation" of the trigger position is
|
||||
* rather straight forward.
|
||||
*/
|
||||
offset = ctx->trigger;
|
||||
g_string_append_printf(*out, "T:%*s^ %d\n", offset, "", ctx->trigger);
|
||||
ctx->trigger = -1;
|
||||
}
|
||||
|
|
|
@ -168,7 +168,14 @@ static int receive(const struct sr_output *o, const struct sr_datafeed_packet *p
|
|||
g_string_append_len(*out, ctx->lines[j]->str, ctx->lines[j]->len);
|
||||
g_string_append_c(*out, '\n');
|
||||
if (j == ctx->num_enabled_channels - 1 && ctx->trigger > -1) {
|
||||
offset = ctx->trigger + ctx->trigger / 8;
|
||||
/*
|
||||
* Each group of 8 bits occupies 8 bit positions
|
||||
* plus 1 separator. Calculate the position of the
|
||||
* byte which contains the trigger, then adjust for
|
||||
* the trigger's bit position within that byte.
|
||||
*/
|
||||
offset = ctx->trigger / 8 * (8 + 1);
|
||||
offset += ctx->trigger % 8;
|
||||
g_string_append_printf(*out, "T:%*s^ %d\n", offset, "", ctx->trigger);
|
||||
ctx->trigger = -1;
|
||||
}
|
||||
|
|
|
@ -181,7 +181,14 @@ static int receive(const struct sr_output *o, const struct sr_datafeed_packet *p
|
|||
g_string_append_len(*out, ctx->lines[j]->str, ctx->lines[j]->len);
|
||||
g_string_append_c(*out, '\n');
|
||||
if (j == ctx->num_enabled_channels - 1 && ctx->trigger > -1) {
|
||||
offset = ctx->trigger + ctx->trigger / 8;
|
||||
/*
|
||||
* Each group of 8 bits occupies 2 hex digits plus
|
||||
* 1 separator. Calculate the position of the byte
|
||||
* which contains the trigger, then adjust for the
|
||||
* trigger's bit position within that byte.
|
||||
*/
|
||||
offset = ctx->trigger / 8 * (2 + 1);
|
||||
offset += (ctx->trigger % 8) / 4;
|
||||
g_string_append_printf(*out, "T:%*s^ %d\n", offset, "", ctx->trigger);
|
||||
ctx->trigger = -1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue