Files
SDR-Rover/docs/handoff/NEXT_RX_TASK.md
2026-09-18 13:09:09 +03:00

4.4 KiB

This file is the authoritative current task for the RX laptop. The RX assistant must read RX_NODE_STATE.md first, then execute this file. If chat history conflicts with these files and current Git HEAD, stop and report the conflict.

Current RX task

TASK = FINALIZE RX NODE SOFTWARE PREFLIGHT

  1. GIT. In the laptop project at C:\Users\Professional\Documents\Codex\SDR_Rover_Video, confirm video-development and record the starting HEAD and git status --short --untracked-files=no. If tracked files are modified, stop and report the conflict. Run git pull origin video-development. Verify that git branch --show-current is video-development, git rev-parse HEAD equals git rev-parse origin/video-development, and the tracked checkout is clean (git status --short --untracked-files=no has no output). Local RF-001 results outside Git are not a conflict. If the pull or any of these checks fails, stop and report it.

  2. VIDEO FIXTURE. Inspect data/raw/video001/udacity_project_video.mp4. Required size: 25268015 bytes. Required SHA256 from Get-FileHash -Algorithm SHA256: 651949922042c223375d40bf8929def97dbb62c6ade651d1f5b08eea47127d5f. The earlier laptop file had SHA256 bff9b28d0e1f5442cfdf9f2bd51251d66506ca518ad7dfe6074670859731a8fb and is not the fixture. If the file is absent, the size differs, or SHA256 differs, mark VIDEO FIXTURE = FAIL and do not run video_gate.py. Do not download or substitute a file, change the expected SHA256, or weaken the check. The user will transfer the correct file manually from the main PC.

  3. After both the fixture size and SHA256 match, run the complete python -B -X utf8 tools/video_gate.py. Then run targeted VIDEO/RF tests, targeted Ruff, Pyright, and git diff --check separately. On PowerShell, the targeted tests are:

$videoTests = @(Get-ChildItem -LiteralPath tests -Filter 'test_video*.py' -File | Select-Object -ExpandProperty FullName)
python -B -m pytest $videoTests tests/test_packet.py tests/test_bpsk_radio.py tests/test_rf001_preparation.py tests/test_clock001.py -q
python -B -c "import subprocess, sys; from tools.video_gate import STATIC_PATHS; sys.exit(subprocess.call([sys.executable, '-B', '-m', 'ruff', 'check', *STATIC_PATHS]))"
python -B -m pyright --project pyrightconfig.json
git diff --check

The Ruff paths are the same targeted paths used by video_gate.py. Record the result of each check separately.

  1. Repeat the software-only offline RF-001 round trip: 100 packets → IQ file → receiver. Use the qpsk_rf_tx.py dry run and qpsk_rf_rx.py file receiver commands in docs/rf/RF_001.md, with new local output paths so older results are preserved. Require 100/100 CRC-valid and 100/100 exact packets. Preserve stdout and the JSON report. Run hackrf_info and record its full output; it is identification only. No RF TX or hardware capture is authorized.

  2. FULL PYTEST is optional: python -B -m pytest tests/ -q. If its only failure is caused by the missing historical data/raw/lab064/tx_metadata.json, report FULL PYTEST = FAIL and LAB064 HISTORICAL FAILURE = HISTORICAL LAB064 FIXTURE MISSING; NON-BLOCKING FOR RF-001 RX NODE. Verify that there are no other failures before applying this exception. Do not create or simulate that fixture. Any other new test failure blocks readiness. If the full suite is not run, report FULL PYTEST = NOT_RUN and LAB064 HISTORICAL FAILURE = NOT_RUN.

  3. RX NODE READY FOR RX-ONLY HARDWARE TEST = YES only when the fixture size and SHA256 match, video gate passes, targeted VIDEO/RF tests pass, targeted Ruff passes, Pyright passes, git diff --check passes, offline RF-001 yields 100/100 CRC-valid and 100/100 exact packets, hackrf_info passes, and the Git checks in step 1 pass. The sole verified historical Lab064 fixture failure in the optional full suite does not change readiness to NO. Any other failure does.

  4. Do not perform RF TX, continuous RX, hackrf_transfer, firmware or CPLD updates, hackrf_spiflash, Zadig, USB driver changes, commit, or push on the RX laptop.

  5. Finish with this report. For checks not run, write NOT_RUN; for failures, state the concrete cause.

TASK = FINALIZE RX NODE SOFTWARE PREFLIGHT

BRANCH = HEAD =

VIDEO FIXTURE = VIDEO FIXTURE SIZE = VIDEO FIXTURE SHA256 =

VIDEO GATE =

TARGETED PYTEST = FULL PYTEST = LAB064 HISTORICAL FAILURE =

RUFF = PYRIGHT = GIT DIFF CHECK =

OFFLINE RF-001 = HACKRF INFO =

RX NODE READY FOR RX-ONLY HARDWARE TEST = YES / NO

RF TX = 0

STOP.