Терминальная программа COM порта - PullRequest
5 голосов
/ 29 января 2010

Я разработал встроенное приложение, которое запрашивает информацию о состоянии устройства по каналу связи. Мой клиент требует, чтобы они отправлялись с определенным периодом времени, поэтому я ищу приложение для ПК, которое может отправлять команду текстовой строки несколько раз с заданным интервалом в течение определенного периода времени. В настоящее время я использую тестер последовательных устройств, который может немедленно отправить заданную строку при отправке чего-либо, но мне нужно контролировать период времени и количество повторений.

Существуют ли какие-либо приложения (для Windows), которые могут это сделать?

Ответы [ 9 ]

8 голосов
/ 29 января 2010

Docklight / Docklight Scripting Для тестирования связи приложений через последовательный порт это лучший инструмент для работы. Он прослушивает определенные пользователем последовательности на последовательном порту и затем может инициировать передачу с параметрами, полученными из входного сообщения или функции в сценарии.

Я написал программу на C ++ для тестирования встроенного последовательного приложения, и это было +/- 1000 строк кода. Мне удалось заменить это примерно на 20 строк сценария vb в Docklight Scripting.

Docklight определенно стоит денег.

6 голосов
/ 29 января 2010

Я бы предпочел реализовать короткий сценарий 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 (доступно с того же сайта).

5 голосов
/ 29 января 2010

Приложение эмуляции последовательного терминала Tera Term имеет язык сценариев, который будет способен устанавливать синхронизированные циклы.

http://ttssh2.sourceforge.jp/

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

4 голосов
/ 04 февраля 2010

Я использую RealTerm. Вы можете написать для него сценарии и заставить его отправлять этот файл повторно. Вы можете добавить задержки между символами или задержки между строками. Иногда это немного глючит, но это здорово за цену (бесплатно).

http://realterm.sourceforge.net/

2 голосов
/ 15 марта 2012

Хотя я уже ответил, я использую http://www.hw -group.com / products / hercules / index_de.html . Их приложение бесплатно, и на вкладке серийный я могу отправлять и получать данные из RS232. работает как шарм.

1 голос
/ 28 февраля 2015

ScriptCommunicator (с открытым исходным кодом, кроссплатформенный) - подходящий инструмент для вас У него много функций и очень полезный интерфейс скриптов.

0 голосов
/ 20 сентября 2014

GModLab - кроссплатформенный, скриптовый (JS) терминал: https://github.com/tardigrade888/gmodlab Вы можете писать сценарии, которые делают что угодно.

0 голосов
/ 29 января 2010

Я бы написал программу на C # для этого. У них есть библиотеки для открытия COM-портов и таймеры на время отправки данных.

0 голосов
/ 29 января 2010

Вы можете использовать встроенный планировщик задач Windows, чтобы запустить простой пакетный сценарий, который записывает тексты в com-порт, некоторые считают, что

echo "Hell there" > COM1:  

Но я не сделал этого в годах, поэтому мой синтаксис ржавый. В противном случае вы могли бы использовать простую «программу-терминатор», которая поддерживает скрипты - опять же, я думаю, я этого не делал уже десять лет.

...