This commit is contained in:
Jean LE QUELLEC
2022-11-19 13:46:26 +01:00
parent 17cb7533cb
commit fae17d2eb9
17 changed files with 161 additions and 100 deletions

View File

@@ -4,9 +4,6 @@ void draw_sender_view(Canvas* canvas, i2cSender* i2c_sender) {
canvas_clear(canvas);
canvas_set_color(canvas, ColorBlack);
canvas_draw_rframe(canvas, 0, 0, 128, 64, 3);
canvas_draw_icon(canvas, 2, 13, &I_passport_happy2_46x49);
canvas_set_font(canvas, FontPrimary);
canvas_draw_str_aligned(canvas, 3, 3, AlignLeft, AlignTop, SEND_MENU_TEXT);
if(!i2c_sender->scanner->scanned) {
scan_i2c_bus(i2c_sender->scanner);
@@ -14,39 +11,60 @@ void draw_sender_view(Canvas* canvas, i2cSender* i2c_sender) {
canvas_set_font(canvas, FontSecondary);
if(i2c_sender->scanner->nb_found <= 0) {
canvas_draw_str_aligned(canvas, 60, 5, AlignLeft, AlignTop, "No peripherals");
canvas_draw_str_aligned(canvas, 60, 15, AlignLeft, AlignTop, "Found");
canvas_draw_str_aligned(canvas, 20, 5, AlignLeft, AlignTop, "No peripherals found");
return;
}
canvas_draw_rbox(canvas, 70, 48, 45, 13, 3);
// Send Button
canvas_draw_rbox(canvas, 45, 48, 45, 13, 3);
canvas_set_color(canvas, ColorWhite);
canvas_draw_icon(canvas, 75, 50, &I_Ok_btn_9x9);
canvas_draw_str_aligned(canvas, 85, 51, AlignLeft, AlignTop, "Send");
canvas_draw_icon(canvas, 50, 50, &I_Ok_btn_9x9);
canvas_draw_str_aligned(canvas, 62, 51, AlignLeft, AlignTop, "Send");
// Addr
canvas_set_color(canvas, ColorBlack);
canvas_draw_str_aligned(canvas, 50, 5, AlignLeft, AlignTop, "Addr: ");
canvas_draw_icon(canvas, 80, 5, &I_ButtonLeft_4x7);
canvas_draw_icon(canvas, 115, 5, &I_ButtonRight_4x7);
canvas_draw_str_aligned(canvas, 3, 5, AlignLeft, AlignTop, "Addr: ");
canvas_draw_icon(canvas, 33, 5, &I_ButtonLeft_4x7);
canvas_draw_icon(canvas, 68, 5, &I_ButtonRight_4x7);
char addr_text[8];
snprintf(
addr_text,
sizeof(addr_text),
"0x%02x",
(int)i2c_sender->scanner->addresses[i2c_sender->address_idx]);
canvas_draw_str_aligned(canvas, 90, 5, AlignLeft, AlignTop, addr_text);
canvas_draw_str_aligned(canvas, 50, 15, AlignLeft, AlignTop, "Value: ");
canvas_draw_icon(canvas, 80, 17, &I_ButtonUp_7x4);
canvas_draw_icon(canvas, 115, 17, &I_ButtonDown_7x4);
canvas_draw_str_aligned(canvas, 43, 5, AlignLeft, AlignTop, addr_text);
// Value
canvas_draw_str_aligned(canvas, 3, 15, AlignLeft, AlignTop, "Value: ");
canvas_draw_icon(canvas, 33, 17, &I_ButtonUp_7x4);
canvas_draw_icon(canvas, 68, 17, &I_ButtonDown_7x4);
snprintf(addr_text, sizeof(addr_text), "0x%02x", (int)i2c_sender->value);
canvas_draw_str_aligned(canvas, 90, 15, AlignLeft, AlignTop, addr_text);
canvas_draw_str_aligned(canvas, 43, 15, AlignLeft, AlignTop, addr_text);
if(i2c_sender->must_send) {
i2c_send(i2c_sender);
}
canvas_draw_str_aligned(canvas, 50, 25, AlignLeft, AlignTop, "Result: ");
// Result
canvas_draw_str_aligned(canvas, 3, 25, AlignLeft, AlignTop, "Result: ");
if(i2c_sender->sended) {
uint8_t row = 1;
uint8_t column = 1;
const uint8_t x_min = 3;
const uint8_t y_min = 25;
uint8_t x_pos = 0;
uint8_t y_pos = 0;
for(uint8_t i = 0; i < sizeof(i2c_sender->recv); i++) {
x_pos = x_min + (column - 1) * 35;
if(row == 1) {
x_pos += 40;
}
y_pos = y_min + (row - 1) * 10;
snprintf(addr_text, sizeof(addr_text), "0x%02x", (int)i2c_sender->recv[i]);
canvas_draw_str_aligned(canvas, 90, 25 + (i * 10), AlignLeft, AlignTop, addr_text);
canvas_draw_str_aligned(canvas, x_pos, y_pos, AlignLeft, AlignTop, addr_text);
column++;
if((row > 1 && column > 3) || (row == 1 && column > 2)) {
column = 1;
row++;
}
if(row > 2) {
break;
}
}
}
}