【发布时间】:2016-05-15 04:12:00
【问题描述】:
我正在编写一个到临床实验室机器的接口,它使用 ASTM 协议进行通信 (http://makecircuits.com/blog/2010-06-25-astm-protocol.html)。
首先,我尝试使用 golang 的 TCP Server 来接收数据。但无法弄清楚如何将 ACK 发送回实验室机器。我是golang的新手。有人可以建议我如何进行吗?
【问题讨论】:
-
你确定
ENQ和ACK在这个上下文中指的是TCP数据包的类型吗? (ASTM E-1394 似乎没有任何开放规范)。该摘要使它看起来好像是基于 tcp 的文本协议,您只需将这些 ascii 代码写在行上,但没有描述物理层或传输层应该是什么。 -
其实看那个页面上的示例顺序,
<ENQ>、<STX>、<ETX>、<EOT>等代码都是ASCII字符。您只需要知道如何将它们写入网络连接吗? -
谢谢。那应该写。还需要通过实际的机器集成来检查它。但是我找到了一个ruby测试代码client.putc(0x06.chr),我们已经写了很久,这表明它只是ASCII字符。
-
好的,你还有问题吗?如果是这样,请用一个例子来编辑这个,显示你遇到问题的地方。
-
抱歉延迟回复。像这样发送 HEX ACK 效果很好。 c := &serial.Config{Name: "/dev/ttyUSB0", Baud: 9600, Size: 8} conn, err := serial.OpenPort(c) conn.Write([]byte{0x06})