graph TB
subgraph 开发环境
A[TypeScript 源代码]
A --> B[DeviceScript 编译器]
B --> C[字节码生成]
end
subgraph 部署环境
C --> D[DeviceScript 虚拟机]
D -->|硬件抽象接口| E[底层硬件]
E --> F[外部设备 <传感器、执行器>]
end
subgraph 硬件平台支持
E --> E_connector[硬件支持]
E_connector --> I[ESP32 系列]
E_connector --> J[RP2040 系列]
E_connector --> K[其他支持设备]
end
subgraph 调试与反馈
A --> G[Visual Studio Code 调试]
G -->|实时反馈| B
D -->|数据流传递| H[日志和状态反馈]
H --> G
end
架构说明:
开发者在高层使用 TypeScript 编写代码,避免了底层硬件细节的复杂性。
编译器将代码编译为精简的字节码,提高运行效率。
虚拟机负责解释字节码,并通过抽象接口控制设备。
DeviceScript 的主要功能
1. TypeScript 驱动的开发体验
与传统的 C/C++ 嵌入式开发语言相比,DeviceScript 提供了更现代化的开发语言支持:
静态类型检查:减少常见的运行时错误。
异步/等待编程:更容易实现复杂的事件驱动逻辑。
模块化设计:支持 npm 包的复用,提升开发效率。
例如,以下代码展示了如何控制一颗 LED 的闪烁:
import { delay } from "@devicescript/core";
import { setStatusLight } from "@devicescript/runtime";
setInterval(async () => {
await setStatusLight(0); // 关闭 LED
await delay(1000);
await setStatusLight(0x0f0f0f); // 打开 LED
await delay(1000);
}, 10);
执行与调试 设备启动后,DeviceScript 虚拟机开始解释执行字节码。开发者可以通过 Visual Studio Code 进行远程调试。
工作流程示意图
flowchart TD
A[TypeScript Code] --> B[DeviceScript Compiler]
B --> C[Bytecode]
C --> D[Deploy to Device]
D --> E[DeviceScript Virtual Machine]
E --> F[Hardware Execution]
F --> G[Real-World Actions]