@@ -101,47 +101,70 @@ void moveJoints(uint32_t btnID) {
101101void updateButtons (uint32_t key)
102102{
103103 if (key == UP){
104+ Braccio.lvgl_lock ();
104105 lv_btnmatrix_set_selected_btn (direction_btnm, BTN_UP);
105106 lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_UP, LV_BTNMATRIX_CTRL_CHECKED);
107+ Braccio.lvgl_unlock ();
106108 }
107109 else if (key == DOWN){
110+ Braccio.lvgl_lock ();
108111 lv_btnmatrix_set_selected_btn (direction_btnm, BTN_DOWN);
109112 lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_DOWN, LV_BTNMATRIX_CTRL_CHECKED);
113+ Braccio.lvgl_unlock ();
110114 }
111115 else if (key == LEFT) {
116+ Braccio.lvgl_lock ();
112117 lv_btnmatrix_set_selected_btn (direction_btnm, BTN_LEFT);
113118 lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_LEFT, LV_BTNMATRIX_CTRL_CHECKED);
119+ Braccio.lvgl_unlock ();
114120 }
115121 else if (key == RIGHT){
122+ Braccio.lvgl_lock ();
116123 lv_btnmatrix_set_selected_btn (direction_btnm, BTN_RIGHT);
117124 lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_RIGHT, LV_BTNMATRIX_CTRL_CHECKED);
125+ Braccio.lvgl_unlock ();
118126 }
119127 else {
128+ Braccio.lvgl_lock ();
120129 lv_btnmatrix_set_selected_btn (direction_btnm, NULL );
130+ Braccio.lvgl_unlock ();
121131 }
122132
123133 if (state == ELBOW){
134+ Braccio.lvgl_lock ();
124135 lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_LEFT, LV_BTNMATRIX_CTRL_HIDDEN);
125136 lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_RIGHT, LV_BTNMATRIX_CTRL_HIDDEN);
137+ Braccio.lvgl_unlock ();
126138 }
127139 else if (state == PINCH){
140+ Braccio.lvgl_lock ();
128141 lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_UP, LV_BTNMATRIX_CTRL_HIDDEN);
129142 lv_btnmatrix_set_btn_ctrl (direction_btnm, BTN_DOWN, LV_BTNMATRIX_CTRL_HIDDEN);
143+ Braccio.lvgl_unlock ();
130144 }
131145 else {
146+ Braccio.lvgl_lock ();
132147 lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_UP, LV_BTNMATRIX_CTRL_HIDDEN);
133148 lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_DOWN, LV_BTNMATRIX_CTRL_HIDDEN);
134149 lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_LEFT, LV_BTNMATRIX_CTRL_HIDDEN);
135150 lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_RIGHT, LV_BTNMATRIX_CTRL_HIDDEN);
151+ Braccio.lvgl_unlock ();
136152 }
153+
154+ Braccio.lvgl_lock ();
137155 lv_label_set_text (label, jointsPair[state]);
156+ Braccio.lvgl_unlock ();
138157}
139158
140159// Event Handlers
141160
142161static void eventHandlerDirectional (lv_event_t * e) {
162+ Braccio.lvgl_lock ();
163+
143164 lv_event_code_t code = lv_event_get_code (e);
144165 lv_obj_t * obj = lv_event_get_target (e);
166+
167+ Braccio.lvgl_unlock ();
145168
146169 if (code == LV_EVENT_KEY){
147170 pressed_key = Braccio.getKey ();
@@ -164,6 +187,8 @@ static void eventHandlerDirectional(lv_event_t * e) {
164187
165188void directionScreen (void )
166189{
190+ Braccio.lvgl_lock ();
191+
167192 static lv_style_t style_bg;
168193 lv_style_init (&style_bg);
169194 lv_style_set_bg_color (&style_bg, lv_color_white ());
@@ -201,6 +226,8 @@ void directionScreen(void)
201226 lv_obj_set_style_text_align (label, LV_TEXT_ALIGN_CENTER, 0 );
202227 lv_obj_align (label, LV_ALIGN_CENTER, 0 , 0 );
203228 lv_label_set_text (label, jointsPair[state]);
229+
230+ Braccio.lvgl_unlock ();
204231
205232 delay (50 );
206233 Braccio.connectJoystickTo (direction_btnm);
@@ -221,11 +248,16 @@ void loop()
221248{
222249 pressed_key= Braccio.getKey ();
223250 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);
226255 lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_DOWN, LV_BTNMATRIX_CTRL_CHECKED);
227256 lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_RIGHT, LV_BTNMATRIX_CTRL_CHECKED);
228257 lv_btnmatrix_clear_btn_ctrl (direction_btnm, BTN_LEFT, LV_BTNMATRIX_CTRL_CHECKED);
258+
259+ Braccio.lvgl_unlock ();
260+
229261 delay (50 );
230262
231263 }
0 commit comments