Skip to content

v4.1.5: Advanced analysis suite, professional 3D plots, DUT orientation#54

Closed
RFingAdam wants to merge 7 commits intomainfrom
refactor
Closed

v4.1.5: Advanced analysis suite, professional 3D plots, DUT orientation#54
RFingAdam wants to merge 7 commits intomainfrom
refactor

Conversation

@RFingAdam
Copy link
Owner

Summary

  • 5 new advanced analysis modules: Link Budget/Range Estimation, Indoor Propagation (ITU-R P.1238), Multipath Fading Assessment, Enhanced MIMO Analysis, and Wearable/Medical Device Assessment
  • Professional 3D antenna plots: Shared _setup_3d_axes() helper with equal aspect ratio, box-edge labels, and short coloured DUT orientation arrows (X=green, Y=red, Z=blue) matching the physical chamber marker
  • Bug fixes: Indoor propagation heatmap FSPL vectorisation, multipath fading outage path loss, shadow fading heatmap application, link budget margin row index
  • Infrastructure: Bulk processing failure reporting, non-blocking update checker, matplotlib deprecation cleanup
  • Tests: 302 passing (148 skipped), 55 new tests for advanced analysis and batch processing

Test plan

  • All 302 tests pass (python -m pytest tests/ -q)
  • PyInstaller exe builds successfully
  • Inno Setup installer builds (v4.1.5)
  • Real TRP data (ANT1 2440 MHz BT Ch17) renders correctly in all 3D views (total, hpol, vpol)
  • DUT orientation arrows visible in both default and rotated 3D views
  • Advanced analysis plots verified with real antenna data (link budget, indoor, fading)

🤖 Generated with Claude Code

RFingAdam and others added 7 commits February 11, 2026 20:00
…g, MIMO, wearable)

Implements 5 new analysis features integrated into both active and passive
workflows with GUI settings, batch processing, and 45 validation tests:

- Link Budget: Friis range estimation, range-vs-azimuth polar, link margin
  with protocol presets (BLE, WiFi, LoRa, Zigbee, LTE, NB-IoT)
- Indoor Propagation: ITU-R P.1238 path loss, P.2040 wall penetration,
  environment presets (Office, Hospital, Industrial, etc.)
- Multipath Fading: Rayleigh/Rician CDF, fade margin for target reliability,
  Monte-Carlo fading envelope with outage analysis
- Enhanced MIMO: MRC/EGC/SC combining gain, capacity-vs-SNR curves,
  Mean Effective Gain (Taga model with XPR)
- Wearable/Medical: Body-worn pattern analysis across positions, dense device
  SINR modeling, SAR exposure screening, IEEE 802.15.6 WBAN link budget

GUI: Scrollable settings dialog with collapsible LabelFrame sections,
protocol/environment dropdown presets with auto-populated parameters,
cross-feature parameter sharing between Link Budget and Indoor/Fading.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…lib compat

- Bulk processing now reports per-job/per-file outcomes instead of blanket success
- Update checker runs in background thread (startup-safe, non-blocking)
- Replace deprecated cm.get_cmap with plt.get_cmap for matplotlib compat
- Add fixture-based parser tests replacing skipped TODOs
- Add batch failure regression integration tests
- Add Rician fading test coverage

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- RELEASE_NOTES.md: Add v4.1.5 section (advanced analysis suite)
- README.md: Update "New in v4.1" section, test badge (450), MCP tools (25)
- AI_STATUS.md: Update version, roadmap with v4.1.5 milestone
- CONTRIBUTING.md: Fix stale test counts (227→450) and coverage (22%→26%)
- .bumpversion.cfg: Add installer.iss to auto-update on version bump
- .gitignore: Add installer_output/
- installer.iss: Update default version to 4.1.5

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Refactored all three 3D plot routines (active, passive, masked) to share a
common _setup_3d_axes() helper that provides:
- Equal aspect ratio via set_box_aspect([1,1,1])
- Symmetric limits centred on the origin
- Box-edge axis labels (X/Y/Z) rendered in the 2D overlay layer so they
  are never occluded by the surface
- Short coloured orientation arrows (X=green, Y=red, Z=blue) on the
  negative side of each axis, matching the physical DUT marker used in the
  anechoic chamber
- Tighter figure layout (10×8, subplots_adjust) with suptitle and colorbar
  max-value annotation

Also vectorised free_space_path_loss() so it accepts arrays for distance,
fixing the indoor propagation heatmap calculation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@RFingAdam RFingAdam closed this Feb 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant