nfc_polling.sh wraps blantons_nfc_validate.py in a background loop and keeps score: start/stop/status/tail/report/clear/fg. Script A takes a 30s baseline, Script B starts the poll for the soak, Script C stops it with the other monitors and reports. report only reads the log, so it can be run mid-soak without disturbing anything - and it says RUNNING so a snapshot is not read as the final answer. Each round appends a machine-readable RESULT line, which keeps the tally independent of the tool's wording. ERROR is counted apart from FAIL. A round where the tool printed neither [PASS] nor [FAIL] - crashed, missing, hung past the timeout - measured nothing, and that is a different fault from a tag that would not read. Rolling them together hides whichever one you are not looking for. Two habits from earlier bugs are baked in: tail does not follow (tail -f never returns and a macro waiting on the prompt hangs there), and the .py is called through python3 rather than ./ (it arrives mode 100644 and a USB copy carries no execute bit). Also fixes Script C copying "nfc_polling.log" to the job dir when the file is "nfc_poll.log". The cp failed, nothing checked it, and the run finished looking fine - you would find out at the desk, with a job archive that had no NFC log in it. Script A -> V1.1.2. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014RetWKFZFG1ZHcitQAyhwM
4.2 KiB
v1.1.2 — NFC tag reads are now watched for the whole soak, not sampled once
✨ New features
Background NFC polling
-
New
nfc_polling.shrunsblantons_nfc_validate.pyover and over in the background and keeps score.start/stop/status/tail/report/clear/fg. -
reportworks while the poll is still running. It only reads the log, so it never disturbs the run — and it labels itselfRUNNINGso a mid-soak snapshot is not mistaken for the final answer:state : RUNNING (pid=2240323) -- this is a snapshot, the count is still moving rounds : 240 PASS : 238 FAIL : 2 ERROR : 0 (tool did not produce a verdict) RESULT : FAIL --- tags seen --- 046F7BD2142290 238 -
ERRORis counted apart fromFAIL. A round where the tool printed neither[PASS]nor[FAIL]— it crashed, the file was missing, it hung past the timeout — did not measure anything. That is a different problem from a tag that would not read, and rolling the two together hides whichever one you are not looking for. -
reportalso lists which NFCID1s were seen and how often, and the last ten failures with their timestamps and reasons. -
startclears the log first, so a report always describes the run you just did rather than everything since the DUT was built. -
Script A takes a 30-second NFC baseline, Script B starts the poll for the soak, Script C stops it with the other monitors and reports.
🐛 Bug fixes
The NFC log never reached the USB stick
- Script C copied
nfc_polling.log; the file isnfc_poll.log. Thecpfailed, nothing checked it, and the run finished looking fine — you would only notice back at the desk with a job archive that had no NFC log in it.
📦 Downloads
| File | Contents |
|---|---|
Script_ABC_Blanton_V1.1.2.zip |
The full Tera Term working directory, including Blanton_Script/ to copy onto the DUT |
After copying to the DUT:
chmod +x ~/Blanton_Script/*.sh # see below
grep -rlU $'\r' ~/Blanton_Script # expect no output
blanton_ber.sh and nfc_polling.sh are invoked by the macros through ./ or ~/, so they need the execute bit along with bmc_monitor.sh and usb_target.sh — neither git nor a Windows/USB copy carries it reliably. blantons_nfc_validate.py does not need it: nfc_polling.sh calls it through python3 precisely so one more chmod cannot be forgotten.
⚠️ Before you run
nfc_polling.sh startclears the log. Script B starts a fresh poll for the soak, which wipes Script A's baseline log — the baseline numbers are already in the master console log by then, but the file is gone.- NFC log path is
~/Blanton_Script/log/nfc_poll.logand it is copied into the job directory by Script C for the USB archive. - These three tests cannot share the switch.
blanton_ber.sh,blanton_tr518.shandblanton_traffic_linespeedall take over port loopback and L2 learning. Script C already orders BER after the traffic report. - PRBS takes the links down while
blanton_ber.shis armed. That is the test working, not a fault. ce0keeps running until you stop it. An interrupted run leaves the 100G port saturated with nothing inshow interfaces statusto hint at it.- Two numbers must stay in step: Script C's
sleep 30andblanton_ber.sh'sBER_INTERVAL. FAN_SPEEDis 100 — the fans run flat out unless you changeconfig.ttl.- Declare the switch population with
SWB_UNIT0/SWB_UNIT1. - PRBS on the two 100G uplinks (
port_prbs_monitor.sh) is still not wired into the macros. - The three items listed as unverified in v1.1.0 are still unverified: the
ce0ingress mirror, the 120s settle inblanton_tr518.sh, andtest mode nr=noon stop. See v1.1.0 for the one-command check on each.
🔗 Links
- ARCHITECTURE.md — test flow, data models, constraints
- CLAUDE.md — commands and the bench gotchas
Full changelog: V1.1.1...V1.1.2