系统 API
概述
Matrix OS 中的系统 API 提供核心系统函数,包括计时、应用程序管理、设备控制和系统实用程序。系统 API 可通过 MatrixOS.SYS 访问,默认已导入。
Python 系统 API 实现位于 Applications/Python/PikaPython/MatrixOS_SYS.py,类型提示位于 Applications/Python/PikaPython/_MatrixOS_SYS.pyi。
版本信息
MatrixOS.SYS.GetVersion
def GetVersion() -> tuple
返回当前 Matrix OS 版本,以主版本号、次版本号和补丁版本号的元组形式。
返回值:
tuple:包含 (major, minor, patch) 版本号的元组
示例:
version = MatrixOS.SYS.GetVersion()
major, minor, patch = version
print(f"Matrix OS 版本:{major}.{minor}.{patch}")
# 示例:检查是否至少是 3.0.0 版本
if version >= (3, 0, 0):
print("检测到 3.0.0 或更新版本")
设备控制
MatrixOS.SYS.Reboot
def Reboot() -> None
重启 Matrix OS 设备。设备将重启并正常启动。
示例:
MatrixOS.SYS.Reboot() # 设备将重启
MatrixOS.SYS.Bootloader
def Bootloader() -> None
将设备重启到 bootloader 模式以进行固件更新。
示例:
MatrixOS.SYS.Bootloader() # 进入 bootloader 进行固件更新
计时函数
MatrixOS.SYS.DelayMs
def DelayMs(ms: int) -> None
按指定的毫秒数延迟执行。
参数:
ms(int):延迟时间(毫秒)
示例:
MatrixOS.SYS.DelayMs(1000) # 等待 1 秒
print("一秒已经过去")
MatrixOS.SYS.Millis
def Millis() -> int
返回设备启动以来的毫秒数。
返回值:
int:启动以来的毫秒数
示例:
start_time = MatrixOS.SYS.Millis()
# ... 执行一些工作 ...
elapsed = MatrixOS.SYS.Millis() - start_time
print(f"操作耗时 {elapsed} 毫秒")
MatrixOS.SYS.Micros
def Micros() -> int
返回设备启动以来的微秒数。
返回值:
int:启动以来的微秒数
示例:
start_time = MatrixOS.SYS.Micros()
# ... 精确计时操作 ...
elapsed = MatrixOS.SYS.Micros() - start_time
print(f"精确计时:{elapsed} 微秒")
应用程序管理
MatrixOS.SYS.OpenSetting
def OpenSetting() -> None
打开系统设 置应用程序。
示例:
MatrixOS.SYS.OpenSetting() # 启动设置应用
MatrixOS.SYS.ExecuteAPP
def ExecuteAPP(author: str, app_name: str, args: list = []) -> None
通过作者和名称启动应用程序,可选择传递参数。
参数:
author(str):应用程序作者名称app_name(str):应用程序名称args(list,可选):传递给应用程序的参数(默认为空列表)
示例:
# 启动特定应用程序
MatrixOS.SYS.ExecuteAPP("203 Systems", "Performance")
# 带参数启动
MatrixOS.SYS.ExecuteAPP("MyAuthor", "MyApp", ["demo_mode"])
MatrixOS.SYS.ExecuteAPPByID
def ExecuteAPPByID(app_id: int, args: list = []) -> None
通过 ID 启动应用程序,可选择传递参数。
参数:
app_id(int) :应用程序 ID 号args(list,可选):传递给应用程序的参数(默认为空列表)
示例:
# 启动应用程序 ID 0xDEADBEED
MatrixOS.SYS.ExecuteAPPByID(0xDEADBEED)
# 带参数启动
MatrixOS.SYS.ExecuteAPPByID(0xDEADBEED, ["parameter1", "parameter2"])
计时和性能示例
精确计时循环
def precise_timing_demo():
"""演示具有微秒精度的精确计 时"""
interval_us = 10000 # 10毫秒(以微秒计)
last_time = MatrixOS.SYS.Micros()
for i in range(100):
current_time = MatrixOS.SYS.Micros()
# 等待精确间隔
while (current_time - last_time) < interval_us:
current_time = MatrixOS.SYS.Micros()
print(f"节拍 {i}: {current_time - last_time} 微秒")
last_time = current_time
precise_timing_demo()