我开发了一个嵌入式应用程序,通过通信通道从设备请求状态信息。我的客户要求这些信息在特定时间段内发送,因此我正在寻找一款PC终端应用程序,可以按照设定的时间间隔重复发送文本字符串命令一段时间。目前,我使用串行设备测试器可以立即返回设置的字符串消息,但我需要控制时间间隔和重复次数。请问有没有任何(适用于 Windows 的)应用程序可以实现此功能?
Docklight / Docklight Scripting用于测试串口通信应用程序,是完成工作的最佳工具。它在串口上监听用户定义的序列,然后可以触发一个传输并使用输入消息中的参数或脚本中的函数派生参数。
我编写了一个C++程序来测试嵌入式串行应用程序,大约有1000行代码。我能够用Docklight Scripting中的约20行vb脚本替换它。
Docklight绝对物有所值。
我倾向于使用一个简短的Python脚本来实现这个功能(如果需要,可以用py2exe编译成可独立执行的文件)。安装Python和PySerial。然后使用如下的脚本:
#!/usr/bin/python
import time
import serial
# Interval in seconds
interval = 2.5
# Number of times to send
repetitions = 10
# Simple Command string
command_string = "Hello World"
# Or if it's a binary-type command:
command_bytes = [0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64]
command_string = "".join([chr(c) for c in command_bytes])
# Open the serial port - most of these settings have
# defaults in case you want to be lazy
ser = serial.Serial(
port=0, # This is COM1, use 1 for COM2 etc
baudrate=115200,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
xonxoff=0,
rtscts=0,
timeout=0)
# Loop 'repetitions' times
for i in range(repetitions):
# Send the string
ser.write(command_string)
# Go to sleep for "interval" seconds
time.sleep(interval)
然而,如果你想要一款更传统的Windows应用程序,那么你可能可以使用Docklight,可能还需要与同一网站提供的Docklight Scripting结合使用。
您可以使用内置的Windows任务计划程序来运行一个简单的批处理脚本,将文本写入到类似于COM端口的某些地方。
echo "Hell there" > COM1:
但我已经好几年没有做过这个了,所以我的语法有点生疏。否则,您可以使用一个支持脚本的简单“终端”程序 - 再次说明,我大约十年没有做过这个了。