@@ -4,49 +4,67 @@ void draw_sender_view(Canvas* canvas, i2cSender* i2c_sender) {
44canvas_clear (canvas );
55canvas_set_color (canvas ,ColorBlack );
66canvas_draw_rframe (canvas ,0 ,0 ,128 ,64 ,3 );
7- canvas_draw_icon (canvas ,2 ,13 ,& I_passport_happy2_46x49 );
8- canvas_set_font (canvas ,FontPrimary );
9- canvas_draw_str_aligned (canvas ,3 ,3 ,AlignLeft ,AlignTop ,SEND_TEXT );
107
118if (!i2c_sender -> scanner -> scanned ) {
129scan_i2c_bus (i2c_sender -> scanner );
1310 }
1411
1512canvas_set_font (canvas ,FontSecondary );
1613if (i2c_sender -> scanner -> nb_found <=0 ) {
17- canvas_draw_str_aligned (canvas ,60 ,5 ,AlignLeft ,AlignTop ,"No peripherals" );
18- canvas_draw_str_aligned (canvas ,60 ,15 ,AlignLeft ,AlignTop ,"Found" );
14+ canvas_draw_str_aligned (canvas ,20 ,5 ,AlignLeft ,AlignTop ,"No peripherals found" );
1915return ;
2016 }
21- canvas_draw_rbox (canvas ,70 ,48 ,45 ,13 ,3 );
17+ // Send Button
18+ canvas_draw_rbox (canvas ,45 ,48 ,45 ,13 ,3 );
2219canvas_set_color (canvas ,ColorWhite );
23- canvas_draw_icon (canvas ,75 ,50 ,& I_Ok_btn_9x9 );
24- canvas_draw_str_aligned (canvas ,85 ,51 ,AlignLeft ,AlignTop ,"Send" );
20+ canvas_draw_icon (canvas ,50 ,50 ,& I_Ok_btn_9x9 );
21+ canvas_draw_str_aligned (canvas ,62 ,51 ,AlignLeft ,AlignTop ,"Send" );
22+ // Addr
2523canvas_set_color (canvas ,ColorBlack );
26- canvas_draw_str_aligned (canvas ,50 ,5 ,AlignLeft ,AlignTop ,"Addr: " );
27- canvas_draw_icon (canvas ,80 ,5 ,& I_ButtonLeft_4x7 );
28- canvas_draw_icon (canvas ,115 ,5 ,& I_ButtonRight_4x7 );
24+ canvas_draw_str_aligned (canvas ,3 ,5 ,AlignLeft ,AlignTop ,"Addr: " );
25+ canvas_draw_icon (canvas ,33 ,5 ,& I_ButtonLeft_4x7 );
26+ canvas_draw_icon (canvas ,68 ,5 ,& I_ButtonRight_4x7 );
2927char addr_text [8 ];
3028snprintf (
3129addr_text ,
3230sizeof (addr_text ),
3331"0x%02x" ,
3432 (int )i2c_sender -> scanner -> addresses [i2c_sender -> address_idx ]);
35- canvas_draw_str_aligned (canvas ,90 ,5 ,AlignLeft ,AlignTop ,addr_text );
36- canvas_draw_str_aligned ( canvas , 50 , 15 , AlignLeft , AlignTop , " Value: " );
37-
38- canvas_draw_icon (canvas ,80 ,17 ,& I_ButtonUp_7x4 );
39- canvas_draw_icon (canvas ,115 ,17 ,& I_ButtonDown_7x4 );
33+ canvas_draw_str_aligned (canvas ,43 ,5 ,AlignLeft ,AlignTop ,addr_text );
34+ // Value
35+ canvas_draw_str_aligned ( canvas , 3 , 15 , AlignLeft , AlignTop , "Value: " );
36+ canvas_draw_icon (canvas ,33 ,17 ,& I_ButtonUp_7x4 );
37+ canvas_draw_icon (canvas ,68 ,17 ,& I_ButtonDown_7x4 );
4038snprintf (addr_text ,sizeof (addr_text ),"0x%02x" , (int )i2c_sender -> value );
41- canvas_draw_str_aligned (canvas ,90 ,15 ,AlignLeft ,AlignTop ,addr_text );
39+ canvas_draw_str_aligned (canvas ,43 ,15 ,AlignLeft ,AlignTop ,addr_text );
4240if (i2c_sender -> must_send ) {
4341i2c_send (i2c_sender );
4442 }
45- canvas_draw_str_aligned (canvas ,50 ,25 ,AlignLeft ,AlignTop ,"Result: " );
43+ // Result
44+ canvas_draw_str_aligned (canvas ,3 ,25 ,AlignLeft ,AlignTop ,"Result: " );
4645if (i2c_sender -> sended ) {
46+ uint8_t row = 1 ;
47+ uint8_t column = 1 ;
48+ const uint8_t x_min = 3 ;
49+ const uint8_t y_min = 25 ;
50+ uint8_t x_pos = 0 ;
51+ uint8_t y_pos = 0 ;
4752for (uint8_t i = 0 ;i < sizeof (i2c_sender -> recv );i ++ ) {
53+ x_pos = x_min + (column - 1 )* 35 ;
54+ if (row == 1 ) {
55+ x_pos += 40 ;
56+ }
57+ y_pos = y_min + (row - 1 )* 10 ;
4858snprintf (addr_text ,sizeof (addr_text ),"0x%02x" , (int )i2c_sender -> recv [i ]);
49- canvas_draw_str_aligned (canvas ,90 ,25 + (i * 10 ),AlignLeft ,AlignTop ,addr_text );
59+ canvas_draw_str_aligned (canvas ,x_pos ,y_pos ,AlignLeft ,AlignTop ,addr_text );
60+ column ++ ;
61+ if ((row > 1 && column > 3 )|| (row == 1 && column > 2 )) {
62+ column = 1 ;
63+ row ++ ;
64+ }
65+ if (row > 2 ) {
66+ break ;
67+ }
5068 }
5169 }
5270}