如何在 AutoIt 中发送数据包?
我想发送一些数据包到 modbus/tcp 设备来控制它。 我在 python 中取得了成功,如下所示:
sdata = struct.pack('BBBBBBBBBBBBBBB',0x00,0x00,0x00,0x00,0x00,0x09,0x01,0x10,0x00,0x08,0x00,0x01,0x02,0x00,0x01)
sock.send(sdata)
而且效果很好;
但现在我不知道如何在 Autoit 中这样做。
我尝试这样做:
$szData = Binary("0x00,0x00,0x00,0x00,0x00,0x09,0x01,0x10,0x00,0x08,0x00,0x01,0x02,0x00,0x01");
TCPSend($ConnectedSocket, $szData)
但这不像上面的 python 源代码那样工作。
I'd like to send a some packet to modbus/tcp device to control it.
I do success in python as follow:
sdata = struct.pack('BBBBBBBBBBBBBBB',0x00,0x00,0x00,0x00,0x00,0x09,0x01,0x10,0x00,0x08,0x00,0x01,0x02,0x00,0x01)
sock.send(sdata)
And it works well;
But now I don't know how to do like this in Autoit.
I try to do like this:
$szData = Binary("0x00,0x00,0x00,0x00,0x00,0x09,0x01,0x10,0x00,0x08,0x00,0x01,0x02,0x00,0x01");
TCPSend($ConnectedSocket, $szData)
But this does not work like above python source.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
AutoIt 不是 Python。 AutoIt Binary 函数的工作方式与 Python 中的 struct.pack 不同。 AutoIt 期望这样的输入:
如果您仍然想输入这样的数据:“0x00,0x00,0x00,0x00”,那么您将必须发明自己的二进制函数。一个简单的“黑客”是:
AutoIt is not Python. The AutoIt Binary function does not work the same as struct.pack in Python. AutoIt expects input like this:
If you still want to input your data like this: "0x00,0x00,0x00,0x00" then you will have to invent your own Binary function. A simple "hack" is: