Tera Term Language: ожидание не дожидается окончания тайм-аута

Пытаюсь написать макрос для ускорения настройки теста.

Что мне нужно сделать, так это отправить кучу команд конфигурации на мою доску и ждать «ОК» после каждой. Последняя команда запускает тест, и после этого я хочу подождать до 30 секунд для определенного ответа. Проблема в том, что даже если я установил тайм-аут, все команды отправляются одна за другой, не дожидаясь тайм-аута, и тест заканчивается, как только он начинается. Я что-то пропустил?

Вот мой код:

      send 'command 1'

timeout = 5             ;timeout set to 5 seconds
wait 'ok'

send 'command 2'

timeout = 5             ;timeout set to 5 seconds
wait 'ok'

send 'command 3'

timeout = 5             ;timeout set to 5 seconds
wait 'ok'

send 'command 4'

timeout = 5             ;timeout set to 5 seconds
wait 'ok'

send 'command 5'

timeout = 5             ;timeout set to 5 seconds
wait 'ok'

send 'command 6'

timeout = 5             ;timeout set to 5 seconds
wait 'ok'

send 'test start'

timeout = 30                ;timeout set to 30 seconds
wait 'the response I want'

if result = 1 goto pass
if result = 0 goto fail

1 ответ

Наткнулся на ваш вопрос, ища другую проблему.

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

В вашем случае это было бы

      Timeout = 5
Send 'Command'
Wait 'OK'
Send 'Command'
Wait 'OK'
Timeout = 30
Send 'Command'
Wait 'OK'

Вы также можете добавить небольшую паузу между ними с помощью MPause, чтобы они не споткнулись друг о друга, как это обычно делают старые модемы.

      Send 'Command'
Wait 'OK'
MPause 50
Send 'Command'
Wait 'OK'

В зависимости от того, что вы делаете, может также стоить изменить Sends и Waits на SendLn и WaitLn, они будут отправлять новую строку с командами и ждать ответа с новой строкой, и это довольно часто.

Предупреждение, однако, TeraTerm немного беспорядок и немного ограничен. Если вы можете использовать настоящий язык, я бы так и сделал.

Другие вопросы по тегам