【发布时间】:2016-03-26 22:51:57
【问题描述】:
我有一个具有 rs485 输出的设备和另一个连接到此输出的 gsm 设备。
我可以使用特殊的 IP 和端口访问 gsm 设备。 Gsm 设备透明地工作。将从 tcp 套接字接收到的所有数据发送到 rs485,并在 rs485 上检索数据,然后写入打开的 tcp 套接字。
gsm 设备和 rs485 现有设备之间的连接是有线的,并且将波特率固定为 300。
当我尝试用笔记本电脑读取 rs485 现有设备时,将 rs485 连接到我的 USB,设置串行参数,例如;
- 奇偶校验:偶数
- 数据位:7
- 停止位:1
- 波特率:300
(此配置是通用的,并使用标准文档进行描述)
有了这个配置,一切正常,我可以传输数据了。
当我尝试使用 gsm 设备时,我必须操作生成的字节数组以适应 rs485 现有设备。
例如;
我想以 UTF-8 格式发送 /?![CR][LF]。
当使用有线连接到设备时,基本上发送
"/?!\r\n".getBytes("UTF-8") 和设备应答。
使用gsm时,我通过wireshark进行监控,设备只回复字节数组:AF-3F-21-8D-A0
AF 是"/" - 2F 的签名格式
8D 也是[CR] - 0D 的签名格式
我认为,字节的差异是由我在串行连接上使用的配置引起的。
在使用 tcp/ip 套接字时,有没有办法设置此配置(奇偶校验、停止、数据位)?
感谢您的回复。
【问题讨论】:
标签: java sockets tcp network-programming serial-port