2010-01-29 222 views
5

我开发了一个嵌入式应用程序,它通过通信通道从设备请求状态信息。我的客户要求这些文件将在特定的时间段内发送,所以我正在寻找的是一个PC终端应用程序,它可以在一段时间内以设定的时间间隔重复发送文本字符串命令。我目前使用串口设备测试仪,可以在发送内容时立即发回设置的字符串,但我需要控制时间段和重复次数。COM端口终端程序

是否有任何应用程序(Windows)在那里可以实现这一目标?

回答

8

Docklight/Docklight Scripting 对于通过串口测试应用程序的通信,它是这项工作的最佳工具。 它监听用户在串行端口上定义的序列,然后可以使用脚本中的输入消息或函数派生参数来触发传输。

我编写了一个C++程序来测试嵌入式串行应用程序,它是+/- 1000行代码。我能够用Docklight脚本中的大约20行vb脚本替换它。

Docklight绝对物有所值。

+0

感谢您的链接,这看起来正是我之后 – droseman 2010-01-29 14:47:11

0

您可以使用内置在Windows任务调度程序来运行一个简单的批处理脚本写入文本到com端口有些人认为像

echo "Hell there" > COM1: 

但我没有这样做是Y一代,所以我的语法是生锈的。否则,你可以使用一个简单的'termulator'程序来支持脚本 - 我再也没有在十年内做到这一点。

0

我会写一个C#程序来做到这一点。他们有库可以打开COM端口和定时器来定时发送数据。

6

我倾向于实现一个短的python脚本来做到这一点(如果这是你所需要的,它可以编译为独立的可执行文件py2exe)。安装pythonpyserial。然后用这样的脚本:

#!/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脚本(可从同一站点)相结合。

5

串行终端仿真应用程序Tera Term具有可以设置定时循环的脚本语言。

http://ttssh2.sourceforge.jp/

http://en.wikipedia.org/wiki/Tera_Term

+0

这看起来像一个很好的解决方案(虽然没有看着docklight)。链接上的原始十六进制字符是否可以与ASCII文本同时显示? – droseman 2010-01-29 14:33:44

+0

不确定您是否能以两种格式在终端上显示收到的字符串/数据;但您可能能够将接收到的线路写出两次到日志文件。 – simon 2010-01-29 17:57:12

4

我用RealTerm。您可以为它编写脚本并让它重复发送该文件。您可以在字符之间添加延迟或在行之间延迟。有时候这是一辆小马车,但对于价格(免费)来说非常棒。

http://realterm.sourceforge.net/

+0

另一个优秀的程序,谢谢 - 我认为这个与嵌入式工作更相关。一个问题,你将如何发送一个以CR LF结尾的字符串多次并且具有特定的延迟(在这种情况下为90ms),它看起来像重复分隔符只是一个CR – droseman 2010-02-05 10:55:17

+0

创建一个包含你想发送的字符的文件在你的情况CR LF。您可能需要使用十六进制编辑器而不是文本编辑器来确保这些文件中只有8位字符。接下来在发送选项卡上实际选择刚刚在“转储文件到端口”框架中创建的文件。在文件名的右侧,您会看到字符和行延迟的框。在他们下面重复计数和重复延迟。 – mjh2007 2010-02-08 18:32:04

1

ScriptCommunicator(开放源代码,跨平台)是您正确的工具。它有很多功能和一个非常有用的脚本界面。

+0

超级。大多数功能程序。 – kyb 2017-10-24 13:17:08