Files
ETTerms/docs/release-notes/v0.7.1.md
T

2.7 KiB

v0.7.1 — sendlnretry: stop losing commands to a booting device

🐛 Bug fixes

Scripts no longer hang forever when a device swallows a command

  • A device that is still booting can silently discard console input the moment its shell takes over the tty. The line you sent is gone — the device never echoes it and never runs it — so the wait that follows blocks forever and your test rig sits dead until someone notices.
  • This is a race, not a delay: adding pause before sendln only lowers the odds of hitting the window, it can never close it. In a 45-cycle overnight power-cycle run, 3 cycles hung this way — and the sends that got swallowed landed at exactly the same moment as the ones that worked.

New features

New TTL command: sendlnretry

sendlnretry '<text>' '<confirm keyword>' [max attempts]
  • Sends the text, then waits for proof the device actually ran it — and resends if that proof doesn't arrive. Omit the attempt count and it retries until it gets through.
  • On success result = 1. If it runs out of attempts, result = 0 and the script keeps going, so you can handle it yourself:
wait 'root@(none):/#'
sendlnretry 'tpm2' 'TPM 2p0'      ; retry until the DUT really runs it
wait 'PASS'

sendlnretry 'tpm2' 'TPM 2p0' 3    ; or cap it and handle failure
if result = 0 then
    dispstr 'tpm2 got no response after 3 tries'
endif
  • Pick a confirm keyword from the command's output (TPM 2p0), not its echo (tpm2) — a tty echo comes from the kernel and doesn't prove the shell ever read the line.
  • Each send clears the receive buffer first, so a match can only come from this send; on a hit it consumes only up to the first occurrence, leaving the rest for your next wait.
  • Per-attempt timeout follows timeout / mtimeout if you set them, otherwise 3 seconds. (Unlike wait, 0 doesn't mean "wait forever" here — that would mean never retrying.)

Full command reference: TTL Script Reference → 送出並確認

📦 Downloads

Build Needs .NET Runtime? Notes
ETTerms_v0.7.1 (Standard) Requires .NET 8 Desktop Runtime Smaller download
ETTerms_v0.7.1_portable (Portable) Runtime included Unzip and run anywhere, no admin

Run ETTerms v0.7.1.exe.

Full changelog: v0.7.0...v0.7.1