2010-01-29 203 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