sender_view.c 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "sender_view.h"
  2. void draw_sender_view(Canvas* canvas, i2cSender* i2c_sender) {
  3. canvas_clear(canvas);
  4. canvas_set_color(canvas, ColorBlack);
  5. canvas_draw_rframe(canvas, 0, 0, 128, 64, 3);
  6. canvas_draw_icon(canvas, 2, 13, &I_passport_happy2_46x49);
  7. canvas_set_font(canvas, FontPrimary);
  8. canvas_draw_str_aligned(canvas, 3, 3, AlignLeft, AlignTop, SEND_TEXT);
  9. if(!i2c_sender->scanner->scanned) {
  10. scan_i2c_bus(i2c_sender->scanner);
  11. }
  12. canvas_set_font(canvas, FontSecondary);
  13. if(i2c_sender->scanner->nb_found <= 0) {
  14. canvas_draw_str_aligned(canvas, 60, 5, AlignLeft, AlignTop, "No peripherals");
  15. canvas_draw_str_aligned(canvas, 60, 15, AlignLeft, AlignTop, "Found");
  16. return;
  17. }
  18. canvas_draw_rbox(canvas, 70, 48, 45, 13, 3);
  19. canvas_set_color(canvas, ColorWhite);
  20. canvas_draw_icon(canvas, 75, 50, &I_Ok_btn_9x9);
  21. canvas_draw_str_aligned(canvas, 85, 51, AlignLeft, AlignTop, "Send");
  22. canvas_set_color(canvas, ColorBlack);
  23. canvas_draw_str_aligned(canvas, 50, 5, AlignLeft, AlignTop, "Addr: ");
  24. canvas_draw_icon(canvas, 80, 5, &I_ButtonLeft_4x7);
  25. canvas_draw_icon(canvas, 115, 5, &I_ButtonRight_4x7);
  26. char addr_text[8];
  27. snprintf(
  28. addr_text,
  29. sizeof(addr_text),
  30. "0x%02x",
  31. (int)i2c_sender->scanner->addresses[i2c_sender->address_idx]);
  32. canvas_draw_str_aligned(canvas, 90, 5, AlignLeft, AlignTop, addr_text);
  33. canvas_draw_str_aligned(canvas, 50, 15, AlignLeft, AlignTop, "Value: ");
  34. canvas_draw_icon(canvas, 80, 17, &I_ButtonUp_7x4);
  35. canvas_draw_icon(canvas, 115, 17, &I_ButtonDown_7x4);
  36. snprintf(addr_text, sizeof(addr_text), "0x%02x", (int)i2c_sender->value);
  37. canvas_draw_str_aligned(canvas, 90, 15, AlignLeft, AlignTop, addr_text);
  38. if(i2c_sender->must_send) {
  39. i2c_send(i2c_sender);
  40. }
  41. canvas_draw_str_aligned(canvas, 50, 25, AlignLeft, AlignTop, "Result: ");
  42. if(i2c_sender->sended) {
  43. for(uint8_t i = 0; i < sizeof(i2c_sender->recv); i++) {
  44. snprintf(addr_text, sizeof(addr_text), "0x%02x", (int)i2c_sender->recv[i]);
  45. canvas_draw_str_aligned(canvas, 90, 25 + (i * 10), AlignLeft, AlignTop, addr_text);
  46. }
  47. }
  48. }