@@ -17,20 +17,25 @@ BraccioClass::BraccioClass()
17
17
: serial485{Serial1, 0 , 7 , 8 } /* TX, DE, RE */
18
18
, servos{serial485}
19
19
, PD_UFP{PD_LOG_LEVEL_VERBOSE}
20
- , expander{TCA6424A_ADDRESS_ADDR_HIGH}
21
- , bl{}
22
- , _display_thd{}
20
+ , _expander{TCA6424A_ADDRESS_ADDR_HIGH}
23
21
, _is_ping_allowed{true }
24
22
, _is_motor_connected{false }
25
23
, _motors_connected_mtx{}
26
24
, _motors_connected_thd{}
27
- , _customMenu{ nullptr }
25
+ , _bl{ }
28
26
, _gfx{}
27
+ , _lvgl_disp_drv{}
28
+ , _lvgl_indev_drv{}
29
+ , _lvgl_disp_buf{}
30
+ , _lvgl_draw_buf{}
31
+ , _lvgl_p_obj_group{nullptr }
32
+ , _lvgl_kb_indev{nullptr }
33
+ , _display_thd{}
29
34
{
30
35
31
36
}
32
37
33
- bool BraccioClass::begin (voidFuncPtr customMenu )
38
+ bool BraccioClass::begin (voidFuncPtr custom_menu )
34
39
{
35
40
Wire.begin ();
36
41
Serial.begin (115200 );
@@ -57,33 +62,33 @@ bool BraccioClass::begin(voidFuncPtr customMenu)
57
62
SPI.begin ();
58
63
59
64
i2c_mutex.lock ();
60
- bl .begin ();
61
- if (bl .getChipID () != 0xCE ) {
65
+ _bl .begin ();
66
+ if (_bl .getChipID () != 0xCE ) {
62
67
return false ;
63
68
}
64
- bl .setColor (red);
69
+ _bl .setColor (red);
65
70
66
- int ret = expander .testConnection ();
71
+ int ret = _expander .testConnection ();
67
72
68
73
if (ret == false ) {
69
74
return ret;
70
75
}
71
76
72
77
for (int i = 0 ; i < 14 ; i++) {
73
- expander .setPinDirection (i, 0 );
78
+ _expander .setPinDirection (i, 0 );
74
79
}
75
80
76
81
// Set SLEW to low
77
- expander .setPinDirection (21 , 0 ); // P25 = 8 * 2 + 5
78
- expander .writePin (21 , 0 );
82
+ _expander .setPinDirection (21 , 0 ); // P25 = 8 * 2 + 5
83
+ _expander .writePin (21 , 0 );
79
84
80
85
// Set TERM to HIGH (default)
81
- expander .setPinDirection (19 , 0 ); // P23 = 8 * 2 + 3
82
- expander .writePin (19 , 1 );
86
+ _expander .setPinDirection (19 , 0 ); // P23 = 8 * 2 + 3
87
+ _expander .writePin (19 , 1 );
83
88
84
- expander .setPinDirection (18 , 0 ); // P22 = 8 * 2 + 2
85
- expander .writePin (18 , 0 ); // reset LCD
86
- expander .writePin (18 , 1 ); // LCD out of reset
89
+ _expander .setPinDirection (18 , 0 ); // P22 = 8 * 2 + 2
90
+ _expander .writePin (18 , 0 ); // reset LCD
91
+ _expander .writePin (18 , 1 ); // LCD out of reset
87
92
88
93
/* Set all motor status LEDs to red. */
89
94
for (int id = SmartServoClass::MIN_MOTOR_ID; id <= SmartServoClass::MAX_MOTOR_ID; id++) {
@@ -104,20 +109,20 @@ bool BraccioClass::begin(voidFuncPtr customMenu)
104
109
105
110
lv_init ();
106
111
107
- lv_disp_draw_buf_init (&disp_buf, buf , NULL , 240 * 240 / 10 );
112
+ lv_disp_draw_buf_init (&_lvgl_disp_buf, _lvgl_draw_buf , NULL , 240 * 240 / 10 );
108
113
109
114
/* Initialize the display*/
110
- lv_disp_drv_init (&disp_drv );
111
- disp_drv .hor_res = 240 ;
112
- disp_drv .ver_res = 240 ;
113
- disp_drv .flush_cb = braccio_disp_flush;
114
- disp_drv .draw_buf = &disp_buf ;
115
- lv_disp_drv_register (&disp_drv );
116
-
117
- lv_indev_drv_init (&indev_drv );
118
- indev_drv .type = LV_INDEV_TYPE_KEYPAD;
119
- indev_drv .read_cb = read_keypad;
120
- kb_indev = lv_indev_drv_register (&indev_drv );
115
+ lv_disp_drv_init (&_lvgl_disp_drv );
116
+ _lvgl_disp_drv .hor_res = 240 ;
117
+ _lvgl_disp_drv .ver_res = 240 ;
118
+ _lvgl_disp_drv .flush_cb = braccio_disp_flush;
119
+ _lvgl_disp_drv .draw_buf = &_lvgl_disp_buf ;
120
+ lv_disp_drv_register (&_lvgl_disp_drv );
121
+
122
+ lv_indev_drv_init (&_lvgl_indev_drv );
123
+ _lvgl_indev_drv .type = LV_INDEV_TYPE_KEYPAD;
124
+ _lvgl_indev_drv .read_cb = read_keypad;
125
+ _lvgl_kb_indev = lv_indev_drv_register (&_lvgl_indev_drv );
121
126
122
127
lv_style_init (&_lv_style);
123
128
@@ -126,8 +131,8 @@ bool BraccioClass::begin(voidFuncPtr customMenu)
126
131
_gfx.fillScreen (TFT_WHITE);
127
132
_gfx.setAddrWindow (0 , 0 , 240 , 240 );
128
133
129
- p_objGroup = lv_group_create ();
130
- lv_group_set_default (p_objGroup );
134
+ _lvgl_p_obj_group = lv_group_create ();
135
+ lv_group_set_default (_lvgl_p_obj_group );
131
136
132
137
_display_thd.start (mbed::callback (this , &BraccioClass::display_thread_func));
133
138
@@ -154,11 +159,10 @@ bool BraccioClass::begin(voidFuncPtr customMenu)
154
159
check_power_func ();
155
160
lv_obj_clean (lv_scr_act ());
156
161
157
- if (customMenu) {
158
- customMenu ();
159
- } else {
162
+ if (custom_menu)
163
+ custom_menu ();
164
+ else
160
165
defaultMenu ();
161
- }
162
166
163
167
servos.begin ();
164
168
servos.setTime (SmartServoClass::BROADCAST, SLOW);
@@ -228,9 +232,10 @@ void BraccioClass::positions(float & a1, float & a2, float & a3, float & a4, flo
228
232
a6 = servos.getPosition (6 );
229
233
}
230
234
231
- void BraccioClass::connectJoystickTo (lv_obj_t * obj) {
232
- lv_group_add_obj (p_objGroup, obj);
233
- lv_indev_set_group (kb_indev, p_objGroup);
235
+ void BraccioClass::connectJoystickTo (lv_obj_t * obj)
236
+ {
237
+ lv_group_add_obj (_lvgl_p_obj_group, obj);
238
+ lv_indev_set_group (_lvgl_kb_indev, _lvgl_p_obj_group);
234
239
}
235
240
236
241
void BraccioClass::lvgl_disp_flush (lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p)
0 commit comments