RuleGo RuleGo
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • RuleGo-MCP-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 流式计算
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • 🌊StreamSQL
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • RuleGo-MCP-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 流式计算
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • 🌊StreamSQL
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文

广告采用随机轮播方式显示 ❤️成为赞助商
  • 快速入门

  • 规则链

  • 标准组件

  • 扩展组件

    • 扩展组件概述
    • 过滤器

    • 转换器

    • 外部的

    • AI

    • CI

    • IoT

      • OPC_UA订阅
      • OPC_UA Read
      • OPC_UA Write
      • Modbus Node
      • 串口通信
        • 组件列表
        • 公共配置
        • 1. 串口读 (x/serialIn)
          • 特有配置
        • 2. 串口写 (x/serialOut)
          • 特有配置
          • 输入消息
        • 3. 串口请求 (x/serialRequest)
          • 特有配置
        • 4. 串口控制 (x/serialControl)
          • 特有配置
          • 输入消息
        • 典型场景
    • 流式计算

    • 文件

  • 自定义组件

  • 组件市场

  • 可视化

  • AOP

  • 触发器

  • 高级主题

  • RuleGo-Server

  • 问题

  • 指南
  • 扩展组件
  • IoT
rulego-team
2026-01-29
目录

串口通信

# 串口通信组件

RuleGo IoT 组件库提供了串口通信支持,允许规则链与串口设备进行交互,提供了读取、写入、请求和控制四个功能组件。

需要额外引入扩展库: rulego-components-iot (opens new window)

# 组件列表

组件名 类型 (Type) 描述
串口读 x/serialIn 从串口读取数据。支持按字符、超时或固定长度拆分数据。
串口写 x/serialOut 向串口写入数据。支持自动追加尾部字符。
串口请求 x/serialRequest 写入数据并等待响应(阻塞式)。支持超时和响应拆分逻辑。
串口控制 x/serialControl 控制串口连接状态(打开/关闭)。

# 公共配置

所有串口组件共享以下连接配置:

字段 说明 示例
port 串口名,如 COM1 (Windows) 或 /dev/ttyUSB0 (Linux) COM3
baudRate 波特率 9600
dataBits 数据位 8
stopBits 停止位 ("1", "1.5", "2") 1
parity 校验位 (N: None, O: Odd, E: Even, M: Mark, S: Space) N
dtr DTR 控制 (true, false) true
rts RTS 控制 (true, false) false

注意:同一 port 的多个节点会共享同一个底层连接实例。

# 1. 串口读 (x/serialIn)

用于从串口读取数据。当接收到输入消息时触发读取操作(通常配合定时器使用)。

# 特有配置

字段 说明 默认值
startChar 起始字符。若设置,会丢弃数据直到匹配到此字符。 -
splitType 拆分方式:char (按字符), timeout (按超时), fixed (按长度) timeout
splitKey 拆分参数。若按字符拆分则为分隔符(如 \n);若按长度拆分则为字节数。 -
splitTimeout 读取分段超时(ms)。超过此时间无数据则视为一段结束。 100
dataType 数据类型:text (UTF-8字符串), binary (二进制), hex (16进制字符串), base64 (Base64字符串) text

# 2. 串口写 (x/serialOut)

用于向串口发送数据。

# 特有配置

字段 说明 默认值
data 发送内容,支持动态变量替换(如 ${data})。如果为空,则使用 msg.Data -
addChar 追加字符。发送数据时自动追加到尾部(支持 \n, \r 等转义)。 \r\n
dataType 输入数据类型:text (默认), hex (16进制字符串), base64 (Base64字符串)。若非text,则会将数据解码后发送。 text

# 输入消息

如果 data 配置为空,则使用 msg.Data 将作为发送内容。

# 3. 串口请求 (x/serialRequest)

用于"请求-响应"模式。先发送数据,然后阻塞等待响应。

# 特有配置

包含 串口写 的 data, addChar, dataType 配置和 串口读 的所有拆分配置 (startChar, splitType, dataType 等),以及:

字段 说明 默认值
requestTimeout 请求总超时时间 (ms)。 10000

# 4. 串口控制 (x/serialControl)

用于手动控制串口连接。

# 特有配置

字段 说明 默认值
action 控制指令,支持动态变量替换(如 ${msg.action})。如果为空,则使用 msg.Data 作为指令。 close

# 输入消息

如果 action 配置为空,则使用 msg.Data 内容作为控制指令:

  • open: 打开串口连接(通常组件会自动打开,此指令用于手动重连)。
  • close: 关闭串口连接。
  • dtr=1: 将 DTR 信号置为高电平。
  • dtr=0: 将 DTR 信号置为低电平。
  • rts=1: 将 RTS 信号置为高电平。
  • rts=0: 将 RTS 信号置为低电平。
  • flush: 清空输入和输出缓冲区。
  • flush_in: 清空输入缓冲区。
  • flush_out: 清空输出缓冲区。

# 典型场景

  1. 定时采集数据:
    • endpoint/schedule (定时器) -> x/serial-in (读取) -> Log (打印)
  2. 控制设备:
    • endpoint/mqtt (接收指令) -> x/serial-out (发送指令)
  3. 查询设备状态:
    • endpoint/http (接收请求) -> x/serial-request (查询并等待) -> Http Response (返回结果)
在 GitHub 上编辑此页 (opens new window)
上次更新: 2026/02/05, 02:43:11
Modbus Node
流式计算

← Modbus Node 流式计算→

Theme by Vdoing | Copyright © 2023-2026 RuleGo Team | Apache 2.0 License

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式