summaryrefslogtreecommitdiff
path: root/shared-bindings/supervisor
diff options
context:
space:
mode:
Diffstat (limited to 'shared-bindings/supervisor')
-rw-r--r--shared-bindings/supervisor/RunReason.c8
-rw-r--r--shared-bindings/supervisor/RunReason.h2
-rwxr-xr-xshared-bindings/supervisor/Runtime.c10
-rwxr-xr-xshared-bindings/supervisor/Runtime.h3
-rw-r--r--shared-bindings/supervisor/__init__.c1
5 files changed, 17 insertions, 7 deletions
diff --git a/shared-bindings/supervisor/RunReason.c b/shared-bindings/supervisor/RunReason.c
index ee08f6d71..7e7a74d2f 100644
--- a/shared-bindings/supervisor/RunReason.c
+++ b/shared-bindings/supervisor/RunReason.c
@@ -29,7 +29,7 @@
#include "shared-bindings/supervisor/RunReason.h"
MAKE_ENUM_VALUE(supervisor_run_reason_type, run_reason, STARTUP, RUN_REASON_STARTUP);
-MAKE_ENUM_VALUE(supervisor_run_reason_type, run_reason, AUTORELOAD, RUN_REASON_AUTORELOAD);
+MAKE_ENUM_VALUE(supervisor_run_reason_type, run_reason, AUTORELOAD, RUN_REASON_AUTO_RELOAD);
MAKE_ENUM_VALUE(supervisor_run_reason_type, run_reason, SUPERVISOR_RELOAD, RUN_REASON_SUPERVISOR_RELOAD);
MAKE_ENUM_VALUE(supervisor_run_reason_type, run_reason, REPL_RELOAD, RUN_REASON_REPL_RELOAD);
@@ -40,8 +40,8 @@ MAKE_ENUM_VALUE(supervisor_run_reason_type, run_reason, REPL_RELOAD, RUN_REASON_
//| """CircuitPython started the microcontroller started up. See `microcontroller.cpu.reset_reason`
//| for more detail on why the microcontroller was started."""
//|
-//| AUTORELOAD: object
-//| """CircuitPython restarted due to a USB write to the filesystem."""
+//| AUTO_RELOAD: object
+//| """CircuitPython restarted due to an external write to the filesystem."""
//|
//| SUPERVISOR_RELOAD: object
//| """CircuitPython restarted due to a call to `supervisor.reload()`."""
@@ -51,7 +51,7 @@ MAKE_ENUM_VALUE(supervisor_run_reason_type, run_reason, REPL_RELOAD, RUN_REASON_
//|
MAKE_ENUM_MAP(run_reason) {
MAKE_ENUM_MAP_ENTRY(run_reason, STARTUP),
- MAKE_ENUM_MAP_ENTRY(run_reason, AUTORELOAD),
+ MAKE_ENUM_MAP_ENTRY(run_reason, AUTO_RELOAD),
MAKE_ENUM_MAP_ENTRY(run_reason, SUPERVISOR_RELOAD),
MAKE_ENUM_MAP_ENTRY(run_reason, REPL_RELOAD),
};
diff --git a/shared-bindings/supervisor/RunReason.h b/shared-bindings/supervisor/RunReason.h
index 934c72fd8..391e6d306 100644
--- a/shared-bindings/supervisor/RunReason.h
+++ b/shared-bindings/supervisor/RunReason.h
@@ -28,7 +28,7 @@
typedef enum {
RUN_REASON_STARTUP,
- RUN_REASON_AUTORELOAD,
+ RUN_REASON_AUTO_RELOAD,
RUN_REASON_SUPERVISOR_RELOAD,
RUN_REASON_REPL_RELOAD,
} supervisor_run_reason_t;
diff --git a/shared-bindings/supervisor/Runtime.c b/shared-bindings/supervisor/Runtime.c
index 6500dadd5..67193e051 100755
--- a/shared-bindings/supervisor/Runtime.c
+++ b/shared-bindings/supervisor/Runtime.c
@@ -25,9 +25,13 @@
*/
#include <stdbool.h>
+#include "py/enum.h"
#include "py/objproperty.h"
+#include "shared-bindings/supervisor/RunReason.h"
#include "shared-bindings/supervisor/Runtime.h"
+STATIC supervisor_run_reason_t _run_reason;
+
//TODO: add USB, REPL to description once they're operational
//| class Runtime:
//| """Current status of runtime objects.
@@ -94,8 +98,7 @@ const mp_obj_property_t supervisor_serial_bytes_available_obj = {
//| """Returns why CircuitPython started running this particular time.
//|
STATIC mp_obj_t supervisor_get_run_reason(mp_obj_t self) {
- mp_raise_NotImplementedError(NULL);
- return mp_const_none;
+ return cp_enum_find(&supervisor_run_reason_type, _run_reason);
}
MP_DEFINE_CONST_FUN_OBJ_1(supervisor_get_run_reason_obj, supervisor_get_run_reason);
@@ -106,6 +109,9 @@ const mp_obj_property_t supervisor_run_reason_obj = {
(mp_obj_t)&mp_const_none_obj},
};
+void supervisor_set_run_reason(supervisor_run_reason_t run_reason) {
+ _run_reason = run_reason;
+}
STATIC const mp_rom_map_elem_t supervisor_runtime_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_serial_connected), MP_ROM_PTR(&supervisor_serial_connected_obj) },
diff --git a/shared-bindings/supervisor/Runtime.h b/shared-bindings/supervisor/Runtime.h
index 2dc59c3ab..51ed7604d 100755
--- a/shared-bindings/supervisor/Runtime.h
+++ b/shared-bindings/supervisor/Runtime.h
@@ -30,9 +30,12 @@
#include <stdbool.h>
#include "py/obj.h"
+#include "shared-bindings/supervisor/RunReason.h"
extern const mp_obj_type_t supervisor_runtime_type;
+void supervisor_set_run_reason(supervisor_run_reason_t run_reason);
+
bool common_hal_get_serial_connected(void);
bool common_hal_get_serial_bytes_available(void);
diff --git a/shared-bindings/supervisor/__init__.c b/shared-bindings/supervisor/__init__.c
index bc6fdbff5..4d2d6db30 100644
--- a/shared-bindings/supervisor/__init__.c
+++ b/shared-bindings/supervisor/__init__.c
@@ -88,6 +88,7 @@ MP_DEFINE_CONST_FUN_OBJ_1(supervisor_set_rgb_status_brightness_obj, supervisor_s
//|
STATIC mp_obj_t supervisor_reload(void) {
reload_requested = true;
+ supervisor_set_run_reason(RUN_REASON_SUPERVISOR_RELOAD);
mp_raise_reload_exception();
return mp_const_none;
}