驱动程序开发指南
本指南提供了如何在 Rayforge 中创建驱动程序以添加对您的激光切割机或雕刻机支持的高层概述。通过创建驱动程序,您可以将机器的独特通信协议和命令语言集成到 Rayforge 生态系统中。
驱动程序概述
驱动程序是 Rayforge 核心逻辑与您的物理硬件之间的桥梁。它负责三个主要任务:
- 管理连接: 处理低级通信协议(串口、WebSocket、HTTP 等)。
- 执行作业: 将预编码的机器代码(例如 G-code)发送到设备并跟踪执行进度。
- 报告状态: 发出信号以用激光的实时位置、状态(
IDLE、RUN)和日志消息更新 UI。
为了简化这一点,Rayforge 提供了基于可组合部分的架构:
OpsEncoder: 将Ops翻译为特定的命令语言(例如 G-code)。被流水线(用于作业编码)和驱动程序(用于 move_to、home 等单个命令)使用。Pipeline: 编排编码并生成最终机器代码。Transport: 管理连接和数据传输。Driver: 执行机器代码、处理设备状态并与 UI 通信。
所有驱动程序操作都是 异步的,以确保用户界面保持响应 。
Ops 语言
Rayforge 将激光作业描述为存储在 Ops 对象中的高级操作序列。这是 Rayforge 内用于描述机器运动的通用语言,独立于任何特定硬件。
Ops 方法 | 签名 | 描述 |
|---|---|---|
move_to | (x, y, z=0.0) | 快速移动(不切割) |
line_to | (x, y, z=0.0) | 切割/雕刻移动 |
arc_to | (x, y, i, j, cw=True, z=0.0) | 切割/雕刻弧形移动 |
set_power | (power) | 设置激光功率(0-100%) |
set_cut_speed | (speed) | 设置切割移动速度(mm/min) |
set_travel_speed | (speed) | 设置快速移动速度(mm/min) |
enable_air_assist | () | 开启气助 |
disable_air_assist | () | 关闭气助 |
您的驱动程序接收预编码的机器代码(例如 G-code 字符串)和一个跟踪哪些机器代码命令对应哪些操作的操作映射。流水线在调用驱动程序的 run() 方法之前处理将 Ops 编码为机器代码。
# Rayforge 如何构建 Ops 对象的示例
ops = Ops()
ops.set_travel_speed(3000)
ops.set_cut_speed(800)
ops.set_power(80)
ops.move_to(10, 10) # 快速移动到起点
ops.enable_air_assist()
ops.line_to(50, 10) # 用气助切割一条线
ops.disable_air_assist()
ops.line_to(50, 50) # 不用气助切割一条线