Skip to content

Commit 0014948

Browse files
committed
pybricks.common.system.info(): Add program_id.
Fixes pybricks/support#2538.
1 parent 1549c65 commit 0014948

4 files changed

Lines changed: 13 additions & 6 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
- Added preliminary BTstack support for EV3 ([pybricks-micropython#405]).
1111
- Enabled NXT Light Sensor, NXT Touch Sensor, NXT Sound Sensor on NXT.
1212
- Added `host_connected_usb` to `hub.system.info()` dictionary.
13+
- Added `program_id` to `hub.system.info()` dictionary ([support#2538]).
1314

1415
### Changed
1516
- Make 3D orientation default for heading and drivebase heading control ([support#1962]).
@@ -48,6 +49,7 @@
4849
[support#2500]: https://github.com/pybricks/support/issues/2500
4950
[support#2521]: https://github.com/pybricks/support/issues/2521
5051
[support#2522]: https://github.com/pybricks/support/issues/2522
52+
[support#2538]: https://github.com/pybricks/support/issues/2538
5153
[support#2550]: https://github.com/pybricks/support/issues/2550
5254
[pybricks-micropython#405]: https://github.com/pybricks/pybricks-micropython/pull/405
5355
[pybricks-micropython#421]: https://github.com/pybricks/pybricks-micropython/pull/421

lib/pbio/include/pbsys/main.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ typedef struct _pbsys_main_program_t {
7676

7777
#if PBSYS_CONFIG_MAIN
7878

79-
pbsys_main_program_start_request_type_t pbsys_main_program_get_start_request_type(void);
79+
void pbsys_main_program_get_info(pbio_pybricks_user_program_id_t *id, pbsys_main_program_start_request_type_t *start_type);
8080

8181
/**
8282
* Requests a program to be started soon.
@@ -154,8 +154,7 @@ const char *pbsys_main_get_application_version_hash(void);
154154

155155
#else // PBSYS_CONFIG_MAIN
156156

157-
static inline pbsys_main_program_start_request_type_t pbsys_main_program_get_start_request_type(void) {
158-
return PBSYS_MAIN_PROGRAM_START_REQUEST_TYPE_NONE;
157+
static inline void pbsys_main_program_get_info(pbio_pybricks_user_program_id_t *id, pbsys_main_program_start_request_type_t *start_type) {
159158
}
160159

161160
static inline pbio_error_t pbsys_main_program_request_start(pbio_pybricks_user_program_id_t id, pbsys_main_program_start_request_type_t start_request_type) {

lib/pbio/sys/main.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ bool pbsys_main_program_start_is_requested() {
3838
* @param [in] program A pointer to the main program structure.
3939
* @returns The type of start request.
4040
*/
41-
pbsys_main_program_start_request_type_t pbsys_main_program_get_start_request_type(void) {
42-
return program.start_request_type;
41+
void pbsys_main_program_get_info(pbio_pybricks_user_program_id_t *id, pbsys_main_program_start_request_type_t *start_type) {
42+
*id = program.id;
43+
*start_type = program.start_request_type;
4344
}
4445

4546
/**

pybricks/common/pb_type_system.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ static MP_DEFINE_CONST_FUN_OBJ_0(pb_type_System_reset_reason_obj, pb_type_System
4343
static mp_obj_t pb_type_System_info(void) {
4444
const char *hub_name = pbdrv_bluetooth_get_hub_name();
4545

46+
pbio_pybricks_user_program_id_t program_id;
47+
pbsys_main_program_start_request_type_t program_start_type;
48+
pbsys_main_program_get_info(&program_id, &program_start_type);
49+
4650
mp_map_elem_t info[] = {
4751
{MP_OBJ_NEW_QSTR(MP_QSTR_name), mp_obj_new_str(hub_name, strlen(hub_name))},
4852
#if PBDRV_CONFIG_RESET
@@ -54,7 +58,8 @@ static mp_obj_t pb_type_System_info(void) {
5458
#if PBDRV_CONFIG_USB
5559
{MP_OBJ_NEW_QSTR(MP_QSTR_host_connected_usb), mp_obj_new_bool(pbsys_status_test(PBIO_PYBRICKS_STATUS_USB_HOST_CONNECTED))},
5660
#endif // PBDRV_CONFIG_USB
57-
{MP_OBJ_NEW_QSTR(MP_QSTR_program_start_type), mp_obj_new_int(pbsys_main_program_get_start_request_type())},
61+
{MP_OBJ_NEW_QSTR(MP_QSTR_program_id), mp_obj_new_int(program_id)},
62+
{MP_OBJ_NEW_QSTR(MP_QSTR_program_start_type), mp_obj_new_int(program_start_type)},
5863
};
5964
mp_obj_t info_dict = mp_obj_new_dict(MP_ARRAY_SIZE(info));
6065

0 commit comments

Comments
 (0)