问题描述
目前,我正在尝试了解控制软件如何通过串行端口与调制解调器/ DCE通信。
我为此目的在Python中使用PySerial。
我设法被动地听了两者的通信,并确实有一个字节字符串列表(例如b'\\x1d\\x10\\xff'
),该软件在执行几个单一操作时就发送了。
为了完全理解命令结构和响应,我想使用试错法,并通过发送命令扩展“仅侦听”脚本并随后侦听响应,从而在自己的PC上模仿控制软件。 现在,我将这些命令定义为函数,例如:
def Testcommand1():
if serial.isOpen() == True:
serial.write(b'\x1d\x10\xff')
print('Testcommand1 to do some specific stuff sent, awaiting response.')
else:
print('ERROR: Serial port is closed')
最后,我将有20-30个不同的命令。 我计划在另一个文件中定义它们,然后从那里调用它们。 据我了解,为了调用它们,我需要分别导入每个函数,例如
from commandfile import Testcommand1()
from commandfile import Testcommand2()
from commandfile import Testcommand3()
...
这就是我开始怀疑我的方法的地方(因为在开始我的实际“听”程序之前,我将有20-30行):这真的是最好的方法吗?
还是有一些纤细而精巧的def function()
来定义我要发送的命令?
1楼
from commandfile import Testcommand1()
将不起作用。
from commandfile import Testcommand1
将。
您也可以将它们全部导入
from commandfile import *