系统模式
概述
dejaOS 系统提供四种运行模式,每种模式具有不同的系统行为,模式之间可以相互切换:
- 安全模式(safe)
- 开发模式(dev)
- 生产模式(prod)
- 测试模式(test)
1. 安全模式
安全模式类似于 PC 电脑的 BIOS 模式。设备启动时,有 2 秒的延迟窗口,在此期间可以通过串口线连接 PC 工具进入安全模式。安全模式的主要功能是:
- 安装 DPK 应用程序:这是安全模式最重要的功能。
- 切换系统模式:可以使用工具将设备切换到其他模式。
- 获取系统信息:可以查看系统和已安装应用程序的基本信息。
2. 开发模式
开发模式是开发设备的默认模式。在开发模式下:
- 默认不启动应用程序:设备重启后不会自动启动任何应用程序。
- 无界面显示:如果设备有屏幕,不会显示应用程序相关界面。
- 调试应用程序:系统自动启动内置的调试应用程序,用于通过 USB 线缆与 VSCode 交互。此模式适合将开发中的 JavaScript 代码同步到设备。
您可以使用安全模式中的工具手动切换到开发模式。
3. 生产模式
生产模式是生产设备的默认模式。在生产模式下:
- 启动生产应用程序:设备重启后会自动启动对应的生产应用程序。
- 应用程序界面显示:如果设备有屏幕,会显示应用程序相关界面。
- 禁用调试:调试应用程序不会启动,无法通过 VSCode 同步代码到设备。
您可以使用安全模式中的工具切换到生产模式。
4. 测试模式
在测试模式下,生产应用程序和调试应用程序同时运行,通常用于特殊测试需求。在此模式下:
- 启动生产应用程序:设备重启后会自动启动对应的生产应用程序并显示应用程序界面(如果设备有屏幕)。
- 启动调试应用程序:设备启动后会自动启动调试应用程序,允许通过 VSCode 同步代码到设备。
您可以使用安全模式中的工具手动切换到测试模式。
通过代码切换模式
除了使用工具切换模式外,您还可以通过代码触发模式切换,例如在设备上扫描二维码或使用其他协议。您可以使用 dxCommon
模块的 setMode
函数进行切换:
import dxos from "../dxmodules/dxOs.js";
if (condition1) {
dxos.setMode("prod"); // 支持的参数包括:dev, test, prod
} else if (condition2) {
dxos.setMode("dev"); // 支持的参数包括:dev, test, prod
}
⚠️ 注意:
- 切换模式后,设备会自动重启。
- 最好有条件地触发模式更改,而不是在应用程序启动时,以防止连续重启。
- 切换到生产模式后,无法再通过 VSCode 修改代码,因此必须有方法切换回开发模式。
- 通常,这是通过外部命令触发的,如二维码或 MQTT。参考通过二维码触发更改的示例
模式行为对比表
模式 | 启动应用程序 | 显示界面 | 支持调试 | 应用场景 |
---|---|---|---|---|
安全模式 | 否 | 否 | 否 | 安装、模式切换、查看信息 |
开发模式 | 否 | 否 | ✅ | 开发和调试阶段 |
生产模式 | ✅ | ✅ | 否 | 商业部署、正式发布 |
测试模式 | ✅ | ✅ | ✅ | 集成测试、预发布验证 |
有关如何在批量设备中设置默认模式或进行出厂前模式烧录配置的信息,请联系 DejaOS 官方支持。