Skip to content

Commit a79304b

Browse files
committed
pbio/sys/hmi: Split to functional variants.
Systems with an LCD will have their own UI, so we shouldn't be trying to share everything across all systems.
1 parent b29ebb2 commit a79304b

File tree

17 files changed

+464
-272
lines changed

17 files changed

+464
-272
lines changed

bricks/_common/sources.mk

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,9 @@ PBIO_SRC_C = $(addprefix lib/pbio/,\
235235
sys/battery.c \
236236
sys/command.c \
237237
sys/core.c \
238-
sys/hmi.c \
238+
sys/hmi_lcd.c \
239+
sys/hmi_pup.c \
240+
sys/hmi_none.c \
239241
sys/host.c \
240242
sys/light_matrix.c \
241243
sys/light.c \

lib/pbio/platform/city_hub/pbsysconfig.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
#define PBSYS_CONFIG_FEATURE_PROGRAM_FORMAT_MULTI_MPY_V6_3_NATIVE (0)
1111
#define PBSYS_CONFIG_BATTERY_CHARGER (0)
1212
#define PBSYS_CONFIG_BLUETOOTH (1)
13+
#define PBSYS_CONFIG_HMI (1)
14+
#define PBSYS_CONFIG_HMI_PUP (1)
1315
#define PBSYS_CONFIG_HMI_NUM_SLOTS (0)
1416
#define PBSYS_CONFIG_HUB_LIGHT_MATRIX (0)
1517
#define PBSYS_CONFIG_HOST (1)

lib/pbio/platform/essential_hub/pbsysconfig.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
#define PBSYS_CONFIG_FEATURE_PROGRAM_FORMAT_MULTI_MPY_V6_3_NATIVE (1)
99
#define PBSYS_CONFIG_BATTERY_CHARGER (1)
1010
#define PBSYS_CONFIG_BLUETOOTH (1)
11+
#define PBSYS_CONFIG_HMI (1)
12+
#define PBSYS_CONFIG_HMI_PUP (1)
1113
#define PBSYS_CONFIG_HMI_NUM_SLOTS (0)
1214
#define PBSYS_CONFIG_HUB_LIGHT_MATRIX (0)
1315
#define PBSYS_CONFIG_HOST (1)

lib/pbio/platform/ev3/pbsysconfig.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
// SPDX-License-Identifier: MIT
2-
// Copyright (c) 2020-2024 The Pybricks Authors
2+
// Copyright (c) 2020-2025 The Pybricks Authors
33

44
#define PBSYS_CONFIG_FEATURE_BUILTIN_USER_PROGRAM_REPL (1)
55
#define PBSYS_CONFIG_FEATURE_BUILTIN_USER_PROGRAM_PORT_VIEW (0)
66
#define PBSYS_CONFIG_FEATURE_BUILTIN_USER_PROGRAM_IMU_CALIBRATION (0)
77
#define PBSYS_CONFIG_FEATURE_PROGRAM_FORMAT_MULTI_MPY_V6 (1)
88
#define PBSYS_CONFIG_FEATURE_PROGRAM_FORMAT_MULTI_MPY_V6_3_NATIVE (0)
99
#define PBSYS_CONFIG_BATTERY_TEMP_ESTIMATION (1)
10+
#define PBSYS_CONFIG_HMI (1)
11+
#define PBSYS_CONFIG_HMI_LCD (1)
1012
#define PBSYS_CONFIG_HMI_NUM_SLOTS (5)
1113
#define PBSYS_CONFIG_HOST (1)
1214
#define PBSYS_CONFIG_HOST_STDIN_BUF_SIZE (21)
@@ -22,5 +24,4 @@
2224
#define PBSYS_CONFIG_STATUS_LIGHT_STATE_ANIMATIONS (1)
2325
#define PBSYS_CONFIG_STATUS_LIGHT_STATE_ANIMATIONS_HUE (120)
2426
#define PBSYS_CONFIG_USER_PROGRAM (1)
25-
#define PBSYS_CONFIG_USER_PROGRAM_AUTO_START (0)
2627
#define PBSYS_CONFIG_PROGRAM_STOP (1)

lib/pbio/platform/move_hub/pbsysconfig.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
#define PBSYS_CONFIG_FEATURE_PROGRAM_FORMAT_MULTI_MPY_V6_3_NATIVE (0)
1111
#define PBSYS_CONFIG_BATTERY_CHARGER (0)
1212
#define PBSYS_CONFIG_BLUETOOTH (1)
13+
#define PBSYS_CONFIG_HMI (1)
14+
#define PBSYS_CONFIG_HMI_PUP (1)
1315
#define PBSYS_CONFIG_HMI_NUM_SLOTS (0)
1416
#define PBSYS_CONFIG_HUB_LIGHT_MATRIX (0)
1517
#define PBSYS_CONFIG_HOST (1)

lib/pbio/platform/nxt/pbsysconfig.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
// SPDX-License-Identifier: MIT
2-
// Copyright (c) 2020-2023 The Pybricks Authors
2+
// Copyright (c) 2020-2025 The Pybricks Authors
33

44
#define PBSYS_CONFIG_FEATURE_BUILTIN_USER_PROGRAM_REPL (1)
55
#define PBSYS_CONFIG_FEATURE_BUILTIN_USER_PROGRAM_PORT_VIEW (0)
66
#define PBSYS_CONFIG_FEATURE_BUILTIN_USER_PROGRAM_IMU_CALIBRATION (0)
77
#define PBSYS_CONFIG_FEATURE_PROGRAM_FORMAT_MULTI_MPY_V6 (1)
88
#define PBSYS_CONFIG_FEATURE_PROGRAM_FORMAT_MULTI_MPY_V6_3_NATIVE (0)
9-
#define PBSYS_CONFIG_HMI_NUM_SLOTS (1)
9+
#define PBSYS_CONFIG_HMI (1)
10+
#define PBSYS_CONFIG_HMI_NONE (1)
11+
#define PBSYS_CONFIG_HMI_NUM_SLOTS (0)
1012
#define PBSYS_CONFIG_HOST (1)
1113
#define PBSYS_CONFIG_HOST_STDIN_BUF_SIZE (64)
1214
#define PBSYS_CONFIG_MAIN (1)
@@ -18,5 +20,4 @@
1820
#define PBSYS_CONFIG_STATUS_LIGHT_BLUETOOTH (0)
1921
#define PBSYS_CONFIG_STATUS_LIGHT_STATE_ANIMATIONS (0)
2022
#define PBSYS_CONFIG_USER_PROGRAM (1)
21-
#define PBSYS_CONFIG_USER_PROGRAM_AUTO_START (1)
2223
#define PBSYS_CONFIG_PROGRAM_STOP (1)

lib/pbio/platform/prime_hub/pbsysconfig.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
// Copyright (c) 2020-2023 The Pybricks Authors
2+
// Copyright (c) 2020-2025 The Pybricks Authors
33

44
#define PBSYS_CONFIG_FEATURE_BUILTIN_USER_PROGRAM_REPL (1)
55
#define PBSYS_CONFIG_FEATURE_BUILTIN_USER_PROGRAM_PORT_VIEW (1)
@@ -9,8 +9,11 @@
99
#define PBSYS_CONFIG_BATTERY_CHARGER (1)
1010
#define PBSYS_CONFIG_BLUETOOTH (1)
1111
#define PBSYS_CONFIG_BLUETOOTH_TOGGLE (1)
12-
#define PBSYS_CONFIG_BLUETOOTH_TOGGLE_BUTTON (512) // PBIO_BUTTON_RIGHT_UP, but enum value cannot be used here.
12+
#define PBSYS_CONFIG_HMI (1)
1313
#define PBSYS_CONFIG_HMI_NUM_SLOTS (5)
14+
#define PBSYS_CONFIG_HMI_PUP (1)
15+
#define PBSYS_CONFIG_HMI_PUP_LEFT_RIGHT_BUTTONS (1)
16+
#define PBSYS_CONFIG_HMI_PUP_BLUETOOTH_BUTTON (512) // PBIO_BUTTON_RIGHT_UP, but enum value cannot be used here.
1417
#define PBSYS_CONFIG_HUB_LIGHT_MATRIX (1)
1518
#define PBSYS_CONFIG_HUB_LIGHT_MATRIX_LED_ARRAY (1)
1619
#define PBSYS_CONFIG_HOST (1)

lib/pbio/platform/technic_hub/pbsysconfig.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: MIT
2-
// Copyright (c) 2020-2023 The Pybricks Authors
2+
// Copyright (c) 2020-2025 The Pybricks Authors
33

44
#include "pbdrvconfig.h"
55

@@ -10,6 +10,8 @@
1010
#define PBSYS_CONFIG_FEATURE_PROGRAM_FORMAT_MULTI_MPY_V6_3_NATIVE (0)
1111
#define PBSYS_CONFIG_BATTERY_CHARGER (0)
1212
#define PBSYS_CONFIG_BLUETOOTH (1)
13+
#define PBSYS_CONFIG_HMI (1)
14+
#define PBSYS_CONFIG_HMI_PUP (1)
1315
#define PBSYS_CONFIG_HMI_NUM_SLOTS (0)
1416
#define PBSYS_CONFIG_HUB_LIGHT_MATRIX (0)
1517
#define PBSYS_CONFIG_HOST (1)

lib/pbio/sys/hmi.c

Lines changed: 0 additions & 253 deletions
This file was deleted.

lib/pbio/sys/hmi.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,18 @@
77
#include <pbsys/config.h>
88
#include <pbsys/status.h>
99

10+
#define PBSYS_CONFIG_HMI_IDLE_TIMEOUT_MS (3 * 60000)
11+
12+
#if PBSYS_CONFIG_HMI
13+
1014
pbio_error_t pbsys_hmi_await_program_selection(void);
1115

16+
#else
17+
18+
static inline pbio_error_t pbsys_hmi_await_program_selection(void) {
19+
return PBIO_ERROR_NOT_SUPPORTED;
20+
}
21+
22+
#endif
23+
1224
#endif // _PBSYS_SYS_HMI_H_

0 commit comments

Comments
 (0)