RS485总线通信服务

通过Model Context Protocol暴露RS485串行总线连接功能,使AI助手能够与RS485设备交互。

  • by daedalus
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 daedalus/mcp-rs485

使用说明

mcp-rs485

MCP服务器,暴露RS485总线连接,用于读取和写入串行数据。

mcp名称:io.github.daedalus/mcp-rs485

安装

pip install mcp-rs485

配置

{
  "mcpServers": {
    "mcp-rs485": {
      "command": "mcp-rs485",
      "env": {},
      "name": "io.github.daedalus/mcp-rs485"
    }
  }
}

用法

此MCP服务器通过模型上下文协议公开RS485串行总线连接。它允许AI助手与RS485设备进行交互。

工具

  • list_ports:列出系统上所有可用的串行端口
  • connect_rs485:打开与RS485设备的连接
  • disconnect_rs485:关闭RS485连接
  • read_rs485:从打开的RS485连接读取数据
  • write_rs485:将数据写入RS485连接
  • get_connection_status:获取RS485连接的状态

示例

from mcp_rs485.server import connect_rs485, write_rs485, read_rs485

# Connect to a device
conn_id = connect_rs485("/dev/ttyUSB0", baudrate=9600)

# Write data (Modbus RTU example)
write_rs485(conn_id, "01 03 00 00 00 0A")

# Read response
response = read_rs485(conn_id)

# Cleanup
disconnect_rs485(conn_id)

发展

git clone https://github.com/daedalus/mcp-rs485.git
cd mcp-rs485
pip install -e ".[test]"

# run tests
pytest

# format
ruff format src/ tests/

# lint
ruff check src/ tests/

# type check
mypy src/

API

list_ports()

列出所有可用的串行端口。

退货: 端口字典列表 port, description,以及 hwid.

connect_rs485(端口,波特率=9600,奇偶校验=“N”,停止位=1,字节大小=8,超时=1.0)

打开与RS485设备的连接。

参数:

  • port:串行端口路径(例如“/dev/ttyUSB0”)
  • baudrate:通信速度(默认值:9600)
  • parity:“N”(无),“E”(偶数),“O”(奇数)
  • stopbits:停止位数
  • bytesize:每帧数据位
  • timeout:读取超时时间(秒)

退货: 连接ID字符串。

read_rs485(connection_id,长度=1024)

从打开的RS485连接读取数据。

参数:

  • connection_id:来自connect_rs485的连接ID
  • length:要读取的最大字节数

退货: 接收到的数据的十六进制字符串。

write_rs485(连接id,数据)

将数据写入RS485连接。

参数:

  • connection_id:来自connect_rs485的连接ID
  • data:十六进制字符串(例如“01 03 00 00 0A”)

退货: 写入的字节数。

get_connection_status(connection_id)

获取连接状态和统计信息。

退货: 包含连接状态和统计信息的词典。