Skip to content

Commit 3725c9c

Browse files
committed
Hide buttons not used in a given state, execute enter action on press down.
1 parent 149c046 commit 3725c9c

File tree

3 files changed

+43
-11
lines changed

3 files changed

+43
-11
lines changed

examples/Controlling_Manually_Braccio/AppState.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,23 @@
66

77
#include <Braccio++.h>
88

9+
/**************************************************************************************
10+
* TYPEDEF
11+
**************************************************************************************/
12+
13+
enum BUTTONS {
14+
BTN_UP = 1,
15+
BTN_DOWN = 7,
16+
BTN_LEFT = 3,
17+
BTN_RIGHT = 5,
18+
};
19+
920
/**************************************************************************************
1021
* EXTERN
1122
**************************************************************************************/
1223

1324
extern lv_obj_t * label;
25+
extern lv_obj_t * direction_btnm;
1426

1527
/**************************************************************************************
1628
* GLOBAL VARIABLES
@@ -67,6 +79,16 @@ ElbowState::ElbowState()
6779
{
6880
Braccio.lvgl_lock();
6981
lv_label_set_text(label, "Elbow");
82+
lv_btnmatrix_set_btn_ctrl(direction_btnm, BTN_LEFT, LV_BTNMATRIX_CTRL_HIDDEN);
83+
lv_btnmatrix_set_btn_ctrl(direction_btnm, BTN_RIGHT, LV_BTNMATRIX_CTRL_HIDDEN);
84+
Braccio.lvgl_unlock();
85+
}
86+
87+
ElbowState::~ElbowState()
88+
{
89+
Braccio.lvgl_lock();
90+
lv_btnmatrix_clear_btn_ctrl(direction_btnm, BTN_LEFT, LV_BTNMATRIX_CTRL_HIDDEN);
91+
lv_btnmatrix_clear_btn_ctrl(direction_btnm, BTN_RIGHT, LV_BTNMATRIX_CTRL_HIDDEN);
7092
Braccio.lvgl_unlock();
7193
}
7294

@@ -129,6 +151,16 @@ PinchState::PinchState()
129151
{
130152
Braccio.lvgl_lock();
131153
lv_label_set_text(label, "Pinch");
154+
lv_btnmatrix_set_btn_ctrl(direction_btnm, BTN_UP, LV_BTNMATRIX_CTRL_HIDDEN);
155+
lv_btnmatrix_set_btn_ctrl(direction_btnm, BTN_DOWN, LV_BTNMATRIX_CTRL_HIDDEN);
156+
Braccio.lvgl_unlock();
157+
}
158+
159+
PinchState::~PinchState()
160+
{
161+
Braccio.lvgl_lock();
162+
lv_btnmatrix_clear_btn_ctrl(direction_btnm, BTN_UP, LV_BTNMATRIX_CTRL_HIDDEN);
163+
lv_btnmatrix_clear_btn_ctrl(direction_btnm, BTN_DOWN, LV_BTNMATRIX_CTRL_HIDDEN);
132164
Braccio.lvgl_unlock();
133165
}
134166

examples/Controlling_Manually_Braccio/AppState.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ class ElbowState : public State
6666
{
6767
public:
6868
ElbowState();
69-
virtual ~ElbowState() { }
69+
virtual ~ElbowState();
7070
protected:
7171
virtual State * handle_OnEnter() override;
7272
virtual State * handle_OnUp () override;
@@ -91,7 +91,7 @@ class PinchState : public State
9191
{
9292
public:
9393
PinchState();
94-
virtual ~PinchState() { }
94+
virtual ~PinchState();
9595
protected:
9696
virtual State * handle_OnEnter() override;
9797
virtual State * handle_OnLeft () override;

examples/Controlling_Manually_Braccio/Controlling_Manually_Braccio.ino

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ void updateButtons(uint32_t key)
144144
lv_btnmatrix_set_selected_btn(direction_btnm, NULL);
145145
Braccio.lvgl_unlock();
146146
}
147-
147+
/*
148148
if (state == ELBOW){
149149
Braccio.lvgl_lock();
150150
lv_btnmatrix_set_btn_ctrl(direction_btnm, BTN_LEFT, LV_BTNMATRIX_CTRL_HIDDEN);
@@ -165,6 +165,7 @@ void updateButtons(uint32_t key)
165165
lv_btnmatrix_clear_btn_ctrl(direction_btnm, BTN_RIGHT, LV_BTNMATRIX_CTRL_HIDDEN);
166166
Braccio.lvgl_unlock();
167167
}
168+
*/
168169
/*
169170
Braccio.lvgl_lock();
170171
lv_label_set_text(label, jointsPair[state]);
@@ -238,15 +239,14 @@ void setup()
238239

239240
void loop()
240241
{
241-
if (Braccio.isButtonPressed_ENTER()) {
242-
static auto prev_enter_event = millis();
243-
auto const now = millis();
244-
if ((now - prev_enter_event) > 200 && Braccio.isButtonPressed_ENTER())
245-
{
246-
prev_enter_event = now;
247-
app.update(Button::Enter);
248-
}
242+
/* ENTER */
243+
244+
static bool prev_joystick_pressed_enter = false;
245+
bool const curr_joystick_pressed_enter = Braccio.isButtonPressed_ENTER();
246+
if (!prev_joystick_pressed_enter && curr_joystick_pressed_enter) {
247+
app.update(Button::Enter);
249248
}
249+
prev_joystick_pressed_enter = curr_joystick_pressed_enter;
250250

251251
/* DOWN */
252252

0 commit comments

Comments
 (0)