Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[bumpversion]
current_version = 4.1.4
current_version = 4.1.5
commit = True
tag = True
tag_name = v{new_version}
Expand All @@ -20,3 +20,7 @@ replace = version-{new_version}-blue
[bumpversion:file:plot_antenna/__init__.py]
search = __version__ = "{current_version}"
replace = __version__ = "{new_version}"

[bumpversion:file:installer.iss]
search = #define RFLECT_VERSION "{current_version}"
replace = #define RFLECT_VERSION "{new_version}"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ htmlcov/
build/
dist/
debug/
installer_output/
*.egg-info/
.eggs/

Expand Down
29 changes: 23 additions & 6 deletions AI_STATUS.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# RFlect AI Features - Status & Roadmap

**Last Updated**: February 7, 2026
**Current Version**: v4.0.0
**Last Updated**: February 11, 2026
**Current Version**: v4.1.5
**Status**: Beta / Enabled in GUI

---
Expand Down Expand Up @@ -158,7 +158,7 @@ If no provider is configured:

## Roadmap

### v4.0.0 (Current - February 2026)
### v4.0.0 (February 2026)
- Complete architecture refactoring (mixin-based GUI)
- Multi-provider AI support (OpenAI, Anthropic, Ollama)
- Secure API key management (Fernet encryption, OS keyring, machine-ID binding)
Expand All @@ -170,16 +170,33 @@ If no provider is configured:
- turbo colormap, DPI 300 for saved figures
- 227 tests, 22% code coverage

### v4.1+ (Planned)
### v4.1.0-4.1.4 (February 2026)
- Maritime / horizon antenna plots (5 plot types, configurable theta band)
- Horizon TRP, efficiency, and enhanced statistics
- Windows installer overhaul (icon, no console, upgrade handling)
- Non-blocking update checker (background thread)

### v4.1.5 (Current - February 2026)
- Advanced RF analysis suite with 5 new modules:
- Link Budget / Range Estimation (Friis, protocol presets)
- Indoor Propagation (ITU-R P.1238, wall penetration P.2040)
- Multipath Fading (Rayleigh/Rician CDF, Monte-Carlo)
- Enhanced MIMO (capacity curves, combining gain, MEG with XPR)
- Wearable/Medical (body-worn patterns, dense device SINR, SAR screening)
- Smart presets: protocol and environment dropdowns auto-populate parameters
- Scrollable settings dialogs for advanced analysis configuration
- Per-job bulk processing failure reporting
- 450 tests (302 passing), 26% code coverage

### v4.2+ (Planned)
- AI datasheet extraction (vision-based parameter extraction from PDF/images)
- Sidelobe detection and reporting
- Automated figure insertion in reports
- Complete branding integration
- Multi-frequency comparison tables
- Enhanced vision integration for all providers
- Simulation vs measurement comparison
- AI-powered anomaly detection
- Multi-antenna system analysis
- MIMO antenna analysis
- Integration with electromagnetic simulation tools

---
Expand Down
8 changes: 4 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ def sample_data():

### Test Coverage Goals

- **Current**: 227 tests passing, 22% overall coverage
- **Current**: 450 tests (302 passing, 148 skipped), 26% overall coverage
- **Target Overall**: ≥60% coverage
- **Core modules** (calculations, file_utils): ≥80% coverage
- **GUI modules**: Best effort (GUI testing is harder)
Expand Down Expand Up @@ -368,7 +368,7 @@ RFlect/
│ ├── templates/
│ │ └── default.yaml # Report template
│ └── README.md
├── tests/ # Test suite (227 tests)
├── tests/ # Test suite (450 tests)
│ ├── conftest.py # Pytest fixtures
│ ├── test_calculations.py
│ ├── test_ai_analysis.py
Expand All @@ -393,10 +393,10 @@ RFlect/

### Completed (v4.0.0)
- ~~HPBW and F/B ratio in pattern analysis~~ (implemented and verified with boundary wrapping fix)
- ~~Test coverage expansion~~ (227 tests achieved, up from 82; 22% overall coverage)
- ~~Test coverage expansion~~ (450 tests achieved, up from 82; 26% overall coverage)

### High Priority
- 🔴 Increase test coverage toward 60% target (currently 22% with 227 tests)
- 🔴 Increase test coverage toward 60% target (currently 26% with 450 tests)
- 🔴 Sidelobe detection and reporting in pattern analysis
- 🔴 Automated figure insertion in DOCX reports
- 🔴 System Fidelity Factor calculation (#31)
Expand Down
17 changes: 13 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
</p>

<p align="center">
<a href="https://github.com/RFingAdam/RFlect/releases"><img src="https://img.shields.io/badge/version-4.1.4-blue" alt="Version"></a>
<a href="https://github.com/RFingAdam/RFlect/releases"><img src="https://img.shields.io/badge/version-4.1.5-blue" alt="Version"></a>
<img src="https://img.shields.io/badge/python-3.11+-green" alt="Python">
<a href="LICENSE"><img src="https://img.shields.io/badge/license-GPL--3.0-orange" alt="License"></a>
<img src="https://img.shields.io/badge/tests-391%20passing-brightgreen" alt="Tests">
<img src="https://img.shields.io/badge/tests-450-brightgreen" alt="Tests">
</p>

---
Expand All @@ -23,6 +23,15 @@ RFlect takes raw antenna measurement data and turns it into publication-ready 2D
<img src="./assets/scan_type_selection.png" alt="RFlect Main Window" width="680">
</p>

## New in v4.1

- **Advanced RF analysis suite** — 5 new analysis modules: Link Budget/Range Estimation (Friis with protocol presets), Indoor Propagation (ITU-R P.1238/P.2040), Multipath Fading (Rayleigh/Rician CDF + Monte-Carlo), Enhanced MIMO (capacity curves, combining gain, MEG), and Wearable/Medical (body-worn patterns, dense device SINR, SAR screening).
- **Professional 3D antenna plots** — DUT orientation arrows (X=green, Y=red, Z=blue) matching the physical chamber marker, equal aspect ratio, and box-edge labels that are never occluded.
- **Maritime/horizon antenna plots** — 5 plot types for on-water antenna analysis: Mercator heatmap, conical cuts, gain-over-azimuth, horizon statistics table, and 3D pattern with horizon band highlighting.
- **Smart presets** — Protocol presets (BLE, WiFi, LoRa, Zigbee, LTE, NB-IoT) and environment presets (Office, Hospital, Industrial, etc.) auto-populate analysis parameters.
- **Non-blocking update checker** — Startup update check runs in a background thread instead of blocking the GUI.
- **450 tests** — Up from 346 in v4.0, with 55+ new tests for advanced analysis, maritime plots, and batch processing.

## New in v4.0

Ground-up overhaul from v3.x — new GUI, new analysis engine, new integrations, and corrected RF math throughout.
Expand Down Expand Up @@ -128,7 +137,7 @@ See [AI_STATUS.md](AI_STATUS.md) for provider details and supported models.

## MCP Server

RFlect ships with an [MCP](https://modelcontextprotocol.io/) server — 23 tools that let AI assistants like Claude Code import your measurements, run analysis, generate reports, and perform UWB characterization programmatically. No GUI required.
RFlect ships with an [MCP](https://modelcontextprotocol.io/) server — 25 tools that let AI assistants like Claude Code import your measurements, run analysis, generate reports, and perform UWB characterization programmatically. No GUI required.

See [rflect-mcp/README.md](rflect-mcp/README.md) for setup and the full tool reference.

Expand All @@ -148,7 +157,7 @@ RFlect/
api_keys.py # Secure key storage (keyring + Fernet)
save.py # DOCX report generation
rflect-mcp/ # MCP server for programmatic access
tests/ # 346 tests (pytest)
tests/ # 450 tests (pytest)
```

## Development
Expand Down
43 changes: 43 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,48 @@
# RFlect - Release Notes

## Version 4.1.5 (02/11/2026)

**Feature release — advanced RF analysis suite with 5 new analysis modules.**

### New Features: Advanced Antenna Analysis

- **Link Budget / Range Estimation**: Integrated Friis path-loss range calculator using measured antenna gain. Includes protocol presets (BLE, WiFi, LoRa, Zigbee, LTE, NB-IoT) that auto-populate Tx power and Rx sensitivity. Two-panel plot: waterfall bar chart + range-vs-azimuth polar plot with target range overlay.
- **Indoor Propagation Analysis**: ITU-R P.1238 indoor path loss model with ITU-R P.2040 wall penetration loss. Environment presets (Office, Residential, Hospital, etc.) auto-set path loss exponent, shadow fading, and fading model. Three-panel plot: path loss vs distance, received power heatmap, and coverage range contour.
- **Multipath Fading Assessment**: Rayleigh and Rician fading CDF models with Monte-Carlo pattern degradation. Four-panel plot: CDF curves, fade margin vs reliability, pattern with fading envelope (mean +/- 1 sigma), and outage probability polar map.
- **Enhanced MIMO Analysis**: Capacity-vs-SNR curves (SISO, 2x2 AWGN, Rayleigh, Rician), MRC/EGC/Selection combining gain comparison, and Mean Effective Gain with cross-polarization ratio (Taga model). Builds on existing ECC/diversity infrastructure.
- **Wearable / Medical Device Assessment**: Body-worn pattern analysis across configurable positions (wrist, chest, hip, head) using directional human shadow model. Dense device SINR estimation via Monte-Carlo random placement. SAR exposure screening with FCC/ICNIRP limits. IEEE 802.15.6 WBAN link budget.

### New Features: GUI & Settings

- **Scrollable settings dialogs**: Active and passive settings windows now scroll to accommodate the new analysis sections
- **Smart presets**: Protocol dropdown auto-fills Tx power, Rx sensitivity; environment dropdown auto-fills path loss exponent, shadow fading, wall count, and fading model
- **Cross-feature parameter sharing**: Shared parameters (Tx power, fading model, etc.) stay consistent across analysis modules

### Improvements

- **Professional 3D antenna pattern plots**: Shared `_setup_3d_axes()` helper across all 3D routines (active TRP, passive gain, masked horizon) with equal aspect ratio, symmetric limits, and transparent grid panes
- **DUT orientation markers**: Short coloured arrows (X=green, Y=red, Z=blue) on the negative axis side match the physical orientation marker used in the anechoic chamber, enabling correlation between 3D plots and measured antenna position
- **3D plot layout**: Tighter figure layout with suptitle, improved colorbar positioning, and max EIRP/gain annotation on the colorbar
- **Bulk processing failure reporting**: Per-job/per-file outcome tracking replaces blanket success-on-partial-failure messages
- **Non-blocking update checker**: Startup update check runs in a background thread — no more GUI freezes on slow networks
- **Matplotlib deprecation cleanup**: Replaced deprecated `cm.get_cmap` calls for forward compatibility

### Bug Fixes

- **Indoor propagation heatmap**: Vectorised `free_space_path_loss()` to accept distance arrays, fixing the indoor propagation heatmap calculation that previously failed on array inputs
- **Multipath fading outage plot**: Outage probability calculation now correctly includes path loss; previously the fading-only CDF produced unrealistic outage values
- **Shadow fading heatmap**: Shadow fading sigma is now applied to the indoor propagation heatmap colourmap; previously the shadow fading parameter was accepted but had no visible effect
- **Link budget margin row**: Fixed hardcoded row index for the margin annotation in the link budget waterfall chart

### Tests

- 450 tests collected (302 passing, 148 skipped), up from 391 in v4.1.0
- 45 new unit tests for advanced analysis functions (Friis, ITU, CDF, MIMO, wearable)
- 10 new batch failure regression integration tests
- Fixture-based parser tests replacing placeholder TODOs

---

## Version 4.1.4 (02/11/2026)

**Feature release — horizon band TRP, efficiency calculations, and enhanced maritime statistics.**
Expand Down
2 changes: 1 addition & 1 deletion installer.iss
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

#define MyAppName "RFlect"
#ifndef RFLECT_VERSION
#define RFLECT_VERSION "4.0.0"
#define RFLECT_VERSION "4.1.5"
#endif
#define MyAppVersion RFLECT_VERSION
#define MyAppPublisher "RFingAdam"
Expand Down
2 changes: 1 addition & 1 deletion plot_antenna/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
- Professional report generation
"""

__version__ = "4.1.4"
__version__ = "4.1.5"
__author__ = "Adam"
__license__ = "GPL-3.0"

Expand Down
Loading
Loading