g_string_append_c(*out, '\n');
if (j == ctx->num_enabled_channels - 1 && ctx->trigger > -1) {
/*
- * 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.
+ * Sample data lines have one character per bit and
+ * no separator between bytes. Align trigger marker
+ * to this layout.
*/
offset = ctx->trigger;
g_string_append_printf(*out, "T:%*s^ %d\n", offset, "", ctx->trigger);
g_string_append_c(*out, '\n');
if (j == ctx->num_enabled_channels - 1 && ctx->trigger > -1) {
/*
- * 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.
+ * Sample data lines have one character per bit,
+ * plus one separator per byte. Align trigger marker
+ * to this layout.
*/
- offset = ctx->trigger / 8 * (8 + 1);
- offset += ctx->trigger % 8;
+ offset = ctx->trigger + ctx->trigger / 8;
g_string_append_printf(*out, "T:%*s^ %d\n", offset, "", ctx->trigger);
ctx->trigger = -1;
}
g_string_append_c(*out, '\n');
if (j == ctx->num_enabled_channels - 1 && ctx->trigger > -1) {
/*
- * 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.
+ * Sample data lines have one character per nibble,
+ * plus one separator per byte. Align trigger marker
+ * to this layout.
*/
- offset = ctx->trigger / 8 * (2 + 1);
- offset += (ctx->trigger % 8) / 4;
+ offset = ctx->trigger / 4 + ctx->trigger / 8;
g_string_append_printf(*out, "T:%*s^ %d\n", offset, "", ctx->trigger);
ctx->trigger = -1;
}