@@ -101,47 +101,70 @@ void moveJoints(uint32_t btnID) {
101
101
void updateButtons (uint32_t key)
102
102
{
103
103
if (key == UP){
104
+ Braccio.lvgl_lock ();
104
105
lv_btnmatrix_set_selected_btn (direction_btnm, BTN_UP);
105
106
lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_UP, LV_BTNMATRIX_CTRL_CHECKED);
107
+ Braccio.lvgl_unlock ();
106
108
}
107
109
else if (key == DOWN){
110
+ Braccio.lvgl_lock ();
108
111
lv_btnmatrix_set_selected_btn (direction_btnm, BTN_DOWN);
109
112
lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_DOWN, LV_BTNMATRIX_CTRL_CHECKED);
113
+ Braccio.lvgl_unlock ();
110
114
}
111
115
else if (key == LEFT) {
116
+ Braccio.lvgl_lock ();
112
117
lv_btnmatrix_set_selected_btn (direction_btnm, BTN_LEFT);
113
118
lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_LEFT, LV_BTNMATRIX_CTRL_CHECKED);
119
+ Braccio.lvgl_unlock ();
114
120
}
115
121
else if (key == RIGHT){
122
+ Braccio.lvgl_lock ();
116
123
lv_btnmatrix_set_selected_btn (direction_btnm, BTN_RIGHT);
117
124
lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_RIGHT, LV_BTNMATRIX_CTRL_CHECKED);
125
+ Braccio.lvgl_unlock ();
118
126
}
119
127
else {
128
+ Braccio.lvgl_lock ();
120
129
lv_btnmatrix_set_selected_btn (direction_btnm, NULL );
130
+ Braccio.lvgl_unlock ();
121
131
}
122
132
123
133
if (state == ELBOW){
134
+ Braccio.lvgl_lock ();
124
135
lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_LEFT, LV_BTNMATRIX_CTRL_HIDDEN);
125
136
lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_RIGHT, LV_BTNMATRIX_CTRL_HIDDEN);
137
+ Braccio.lvgl_unlock ();
126
138
}
127
139
else if (state == PINCH){
140
+ Braccio.lvgl_lock ();
128
141
lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_UP, LV_BTNMATRIX_CTRL_HIDDEN);
129
142
lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_DOWN, LV_BTNMATRIX_CTRL_HIDDEN);
143
+ Braccio.lvgl_unlock ();
130
144
}
131
145
else {
146
+ Braccio.lvgl_lock ();
132
147
lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_UP, LV_BTNMATRIX_CTRL_HIDDEN);
133
148
lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_DOWN, LV_BTNMATRIX_CTRL_HIDDEN);
134
149
lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_LEFT, LV_BTNMATRIX_CTRL_HIDDEN);
135
150
lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_RIGHT, LV_BTNMATRIX_CTRL_HIDDEN);
151
+ Braccio.lvgl_unlock ();
136
152
}
153
+
154
+ Braccio.lvgl_lock ();
137
155
lv_label_set_text (label, jointsPair[state]);
156
+ Braccio.lvgl_unlock ();
138
157
}
139
158
140
159
// Event Handlers
141
160
142
161
static void eventHandlerDirectional (lv_event_t * e) {
162
+ Braccio.lvgl_lock ();
163
+
143
164
lv_event_code_t code = lv_event_get_code (e);
144
165
lv_obj_t * obj = lv_event_get_target (e);
166
+
167
+ Braccio.lvgl_unlock ();
145
168
146
169
if (code == LV_EVENT_KEY){
147
170
pressed_key = Braccio.getKey ();
@@ -164,6 +187,8 @@ static void eventHandlerDirectional(lv_event_t * e) {
164
187
165
188
void directionScreen (void )
166
189
{
190
+ Braccio.lvgl_lock ();
191
+
167
192
static lv_style_t style_bg;
168
193
lv_style_init (&style_bg);
169
194
lv_style_set_bg_color (&style_bg, lv_color_white ());
@@ -201,6 +226,8 @@ void directionScreen(void)
201
226
lv_obj_set_style_text_align (label, LV_TEXT_ALIGN_CENTER, 0 );
202
227
lv_obj_align (label, LV_ALIGN_CENTER, 0 , 0 );
203
228
lv_label_set_text (label, jointsPair[state]);
229
+
230
+ Braccio.lvgl_unlock ();
204
231
205
232
delay (50 );
206
233
Braccio.connectJoystickTo (direction_btnm);
@@ -221,11 +248,16 @@ void loop()
221
248
{
222
249
pressed_key= Braccio.getKey ();
223
250
if (pressed_key == 0 ) {
224
- if (pressed_key != last_pressed_key){
225
- lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_UP, LV_BTNMATRIX_CTRL_CHECKED);
251
+ if (pressed_key != last_pressed_key){
252
+ Braccio.lvgl_lock ();
253
+
254
+ lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_UP, LV_BTNMATRIX_CTRL_CHECKED);
226
255
lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_DOWN, LV_BTNMATRIX_CTRL_CHECKED);
227
256
lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_RIGHT, LV_BTNMATRIX_CTRL_CHECKED);
228
257
lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_LEFT, LV_BTNMATRIX_CTRL_CHECKED);
258
+
259
+ Braccio.lvgl_unlock ();
260
+
229
261
delay (50 );
230
262
231
263
}
0 commit comments