supervisor
– 主管设置¶
在这些板上可用
-
supervisor.
runtime
:Runtime¶ 运行时信息,例如
runtime.serial_connected
(USB 串行连接状态)。此对象是 的唯一实例supervisor.Runtime
。
-
supervisor.
disable_autoreload
() → None¶ 禁用基于 USB 文件写入活动的自动重新加载,直到
enable_autoreload
被调用。
-
supervisor.
set_rgb_status_brightness
(brightness: int) → None¶ 调用从 0-255 设置状态 neopixel 的亮度
set_rgb_status_brightness
is called.
-
supervisor.
set_next_code_file
(filename: Optional[str], *, reload_on_success: bool = False, reload_on_error: bool = False, sticky_on_success: bool = False, sticky_on_error: bool = False, sticky_on_reload: bool = False) → None¶ 设置在下一次虚拟机运行时运行的文件。
当不是
None
,则将给定filename
插入到通常的 ['code.py', 'main.py'] 搜索序列的前面。可选的关键字参数指定指定文件运行后会发生什么:
sticky_on_…
确定新设置的文件名和选项是否仍然有效:如果为 True,则进一步运行将继续运行该文件(除非它通过调用set_next_code_filename()
自身来说明)。如果为 False,则设置只会影响一次运行并在之后恢复到标准 code.py/main.py。reload_on_…
确定如何继续:如果为 False,则在通常的“代码完成运行”中等待。等待重新加载。/ 按任意键进入 REPL。使用 CTRL-D 重新加载。” 状态。如果为 True,则立即重新加载,就像按下 CTRL-D 一样。…_on_success
当程序运行完成或调用sys.exit()
.…_on_error
程序异常退出时生效,包括CTRL-C引起的KeyboardInterrupt。…_on_reload
当程序被写入 USB 驱动器的文件(自动重新加载)或调用supervisor.reload()
.这些设置存储在 RAM 中,而不是永久内存中,因此只会影响软重新加载。关闭或重置设备将始终恢复为标准设置。
在同一次运行中多次调用时,只有最后一次调用生效,替换之前所做的任何设置。这是
None
作为文件名传递的主要用途:重置为标准搜索序列。
-
supervisor.
ticks_ms
() → int¶ 返回自未指定参考点以来的时间(以毫秒为单位),在 2**29 毫秒后回绕。
该值被初始化,以便在上电后大约 65 秒发生第一次溢出,从而可以检查您的程序是否在溢出时正常工作。
选择 wrap 值是为了
ticks_ms
在没有长整数的板上(或在具有长整数的板上不分配任何长整数对象)上,始终可以添加或减去两个值而不会溢出。该滴答值来自微控制器内部的低精度时钟,就像
time.monotonic
. 由于其准确性低且每隔几天“环绕”一次,它旨在处理短期事件,例如推进 LED 动画,而不是长期事件,例如倒计时直到假期。滴答值的加法、减法和比较可以使用如下例程完成:
_TICKS_PERIOD = const(1<<29) _TICKS_MAX = const(_TICKS_PERIOD-1) _TICKS_HALFPERIOD = const(_TICKS_PERIOD//2) def ticks_add(ticks, delta): "Add a delta to a base number of ticks, performing wraparound at 2**29ms." return (a + b) % _TICKS_PERIOD def ticks_diff(ticks1, ticks2): "Compute the signed difference between two ticks values, assuming that they are within 2**28 ticks" diff = (ticks1 - ticks2) & _TICKS_MAX diff = ((diff + _TICKS_HALFPERIOD) & _TICKS_MAX) - _TICKS_HALFPERIOD return diff def ticks_less(ticks1, ticks2): "Return true iff ticks1 is less than ticks2, assuming that they are within 2**28 ticks" return ticks_diff(ticks1, ticks2) < 0
-
supervisor.
get_previous_traceback
() → Optional[str]¶ 如果最后一次 vm 运行以异常结束(包括由 CTRL-C 引起的 KeyboardInterrupt),则将回溯作为字符串返回。否则,返回
None
.异常回溯仅在软重新加载时保留,硬重置将清除它。
只考虑代码(主或引导)运行,而不是 REPL 运行。
-
class
supervisor.
RunReason
¶ CircuitPython 开始运行的原因。
-
STARTUP
:object¶ CircuitPython启动了微控制器启动了。有关
microcontroller.Processor.reset_reason
启动微控制器的原因的更多详细信息,请参阅。
-
AUTO_RELOAD
:object¶ 由于对文件系统的外部写入,CircuitPython 重新启动。
-
SUPERVISOR_RELOAD
:object¶ 由于调用 .CircuitPython 重新启动
supervisor.reload()
.
-
REPL_RELOAD
:object¶ 由于用户在 REPL 中键入 CTRL-D,CircuitPython 启动。
-
-
class
supervisor.
Runtime
¶ 运行时对象的当前状态。
用法:
import supervisor if supervisor.runtime.serial_connected: print("Hello World!")
您不能创建 的实例
supervisor.Runtime
。使用supervisor.runtime
访问的唯一实例可用。-
usb_connected
:bool¶ 返回 USB 枚举状态(只读)。
-
serial_connected
:bool¶ 返回 USB 串行通信状态(只读)。
-
serial_bytes_available
:int¶ 返回是否有任何字节可在 USB 串行输入上读取。允许轮询以查看是调用内置 input() 还是等待。(只读)
-
run_reason
:RunReason¶ 返回 CircuitPython 在这个特定时间开始运行的原因。
-