Skip to content

Commit 90fd1ae

Browse files
committed
print more than 2 frames
1 parent 167914c commit 90fd1ae

File tree

1 file changed

+33
-19
lines changed

1 file changed

+33
-19
lines changed

views/sniffer_view.c

+33-19
Original file line numberDiff line numberDiff line change
@@ -20,39 +20,53 @@ void draw_sniffer_view(Canvas* canvas, i2cSniffer* i2c_sniffer) {
2020
canvas_draw_str_aligned(canvas, 85, 51, AlignLeft, AlignTop, "Stop");
2121
}
2222
canvas_set_color(canvas, ColorBlack);
23+
if(i2c_sniffer->first) {
24+
canvas_draw_str_aligned(canvas, 50, 3, AlignLeft, AlignTop, "Nothing Recorded");
25+
return;
26+
}
27+
char text_buffer[8];
28+
// nbFrame text
29+
canvas_draw_str_aligned(canvas, 50, 3, AlignLeft, AlignTop, "Frame: ");
30+
snprintf(text_buffer, sizeof(text_buffer), "%d", (int)i2c_sniffer->menu_index + 1);
31+
canvas_draw_str_aligned(canvas, 85, 3, AlignLeft, AlignTop, text_buffer);
32+
canvas_draw_str_aligned(canvas, 100, 3, AlignLeft, AlignTop, "/");
33+
snprintf(text_buffer, sizeof(text_buffer), "%d", (int)i2c_sniffer->frame_index + 1);
34+
canvas_draw_str_aligned(canvas, 110, 3, AlignLeft, AlignTop, text_buffer);
2335
// Address text
24-
char addr_text[8];
2536
snprintf(
26-
addr_text,
27-
sizeof(addr_text),
37+
text_buffer,
38+
sizeof(text_buffer),
2839
"0x%02x",
2940
(int)(i2c_sniffer->frames[i2c_sniffer->menu_index].data[0] >> 1));
30-
canvas_draw_str_aligned(canvas, 50, 3, AlignLeft, AlignTop, "Addr: ");
31-
canvas_draw_str_aligned(canvas, 75, 3, AlignLeft, AlignTop, addr_text);
41+
canvas_draw_str_aligned(canvas, 50, 13, AlignLeft, AlignTop, "Addr: ");
42+
canvas_draw_str_aligned(canvas, 75, 13, AlignLeft, AlignTop, text_buffer);
3243
// R/W
3344
if((int)(i2c_sniffer->frames[i2c_sniffer->menu_index].data[0]) % 2 == 0) {
34-
canvas_draw_str_aligned(canvas, 105, 3, AlignLeft, AlignTop, "W");
45+
canvas_draw_str_aligned(canvas, 105, 13, AlignLeft, AlignTop, "W");
3546
} else {
36-
canvas_draw_str_aligned(canvas, 105, 3, AlignLeft, AlignTop, "R");
47+
canvas_draw_str_aligned(canvas, 105, 13, AlignLeft, AlignTop, "R");
3748
}
38-
// nbFrame text
39-
canvas_draw_str_aligned(canvas, 50, 13, AlignLeft, AlignTop, "Frames: ");
40-
snprintf(addr_text, sizeof(addr_text), "%d", (int)i2c_sniffer->menu_index + 1);
41-
canvas_draw_str_aligned(canvas, 90, 13, AlignLeft, AlignTop, addr_text);
42-
canvas_draw_str_aligned(canvas, 100, 13, AlignLeft, AlignTop, "/");
43-
snprintf(addr_text, sizeof(addr_text), "%d", (int)i2c_sniffer->frame_index + 1);
44-
canvas_draw_str_aligned(canvas, 110, 13, AlignLeft, AlignTop, addr_text);
4549
// Frames content
50+
const uint8_t x_min = 50;
51+
const uint8_t y_min = 23;
4652
uint8_t x_pos = 0;
47-
uint8_t y_pos = 23;
53+
uint8_t y_pos = 0;
54+
uint8_t row = 1;
55+
uint8_t column = 1;
4856
for(uint8_t i = 1; i < i2c_sniffer->frames[i2c_sniffer->menu_index].data_index; i++) {
4957
snprintf(
50-
addr_text,
51-
sizeof(addr_text),
58+
text_buffer,
59+
sizeof(text_buffer),
5260
"0x%02x",
5361
(int)i2c_sniffer->frames[i2c_sniffer->menu_index].data[i]);
54-
x_pos = 50 + (i - 1) * 35;
55-
canvas_draw_str_aligned(canvas, x_pos, y_pos, AlignLeft, AlignTop, addr_text);
62+
x_pos = x_min + (column - 1) * 35;
63+
y_pos = y_min + (row - 1) * 10;
64+
column++;
65+
if(column > 2) {
66+
column = 1;
67+
row++;
68+
}
69+
canvas_draw_str_aligned(canvas, x_pos, y_pos, AlignLeft, AlignTop, text_buffer);
5670
if(i2c_sniffer->frames[i2c_sniffer->menu_index].ack[i]) {
5771
canvas_draw_str_aligned(canvas, x_pos + 24, y_pos, AlignLeft, AlignTop, "A");
5872
} else {

0 commit comments

Comments
 (0)