【问题标题】:ruby script to read data over port 4001ruby 脚本通过端口 4001 读取数据
【发布时间】:2012-03-31 04:27:12
【问题描述】:

在工作中,我们购买了一套传感器,用于在物品通过传送带时对其进行计数。传感器的信息可通过以下协议访问:

XL 系列产品使用二进制协议进行以太网通信。 默认情况下,该协议在端口 4001 上可用。(这是 可配置的属性。)

我想编写一个 ruby​​ 脚本来定期读取这些数据,但到目前为止,我什至还没有弄清楚如何访问这些数据。

我使用 telnet 并在 ruby​​ 中测试了一个简单的客户端脚本,这两个都让我几乎从一开始就开始了。

有没有人可以提供帮助的信息?

【问题讨论】:

  • 你能多谈谈你用 telnet 和/或 ruby​​ 尝试过的东西吗?什么做了什么没用?您是否能够从端口获取二进制数据,或者您根本无法从端口获取任何内容?
  • 我试过这个:telnet 206.XXX.244.XXX 4001 但我没有得到任何二进制数据。
  • 我认为在尝试使用 ruby​​ 进行任何操作之前,您可能希望通过简单的 telnet 测试来确认您获得了成功的响应。似乎您需要调试为什么您没有从首先在端口 4001 侦听的任何响应中得到任何响应。
  • 我可以使用 telnet 连接到端口,但我不确定如何以十六进制发送命令。文档是这样说的:Example Command + Data (in hex) Command Description Response (in hex) 10 00 05 01 Read the User Number 1 value. 02 10 00 C8 00 00 00 ,但我不知道如何发送这些命令...
  • 那么我认为您的问题可以更准确地描述为“如何使用带有 ruby​​(或 telnet)的二进制协议发送命令”:)

标签: ruby sockets port telnet


【解决方案1】:

由于支持以太网通信,请尝试使用Ruby标准库中提供的Socket。

检查:http://www.ruby-doc.org/stdlib-1.9.3/libdoc/socket/rdoc/Socket.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 2011-05-31
    相关资源
    最近更新 更多