Wait и waitln работают только один раз, даже при использовании flushrecv - PullRequest
0 голосов
/ 11 июня 2019

Я пишу макрос для Tera Term для тестирования микроконтроллера, подключенного к COM-порту. Я хочу, чтобы макрос приостанавливал и ждал приглашения пользователя, но когда я использую команду ожидания, он работает для первого приглашения, но не работает для второго.

Я пытался использовать разные клавиши, CR, F1, даже буквенные клавиши, чтобы вызвать приглашение, но оно не будет ждать вообще.

clearscreen 0
dispstr 'INSTRUCTIONS_1'
dispstr #13
flushrecv
dispstr 'INSTRUCTIONS_2'
wait #13
flushrecv

sendln 'COMMAND_1'
mpause 250
sendln 'COMMAND_2'
mpause 250
sendln 'COMMAND_3'
mpause 250
sendln 'COMMAND_4'

dispstr 'INSTRUCTIONS_3'
wait #13
flushrecv

sendln 'COMMAND_5'
sendln 'COMMAND_6'

dispstr 'INSTRUCTIONS_4'
wait #13

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

На самом деле происходит то, что первые два набора инструкций появляются и ждут возврата каретки. Затем остальная часть макроса выполняется без остановки.

РЕДАКТИРОВАТЬ: я нашел обходной путь, используя yesnobox и окно сообщения вместо ожидания нажатия клавиши.

...