Jamming Detection
The library reports RF interference and jamming information per frequency band via UBX-MON-RF.
| State | Meaning |
|---|---|
Unknown |
Jamming detection not available |
OK — No Significant Jamming |
Clean signal, no interference |
Warning — Interference Visible But Fix OK |
Some interference, positioning still works |
Critical — Interference Visible And No Fix |
Severe jamming, fix lost |
auto nav = hat->waitAndGetFreshNavigation();
for (const auto& rf : nav.rfBlocks)
{
printf("Band: %s\n", Utils::eBand2string(rf.gnssBand).c_str());
printf(" Jamming: %s\n", Utils::jammingState2string(rf.jammingState).c_str());
printf(" Antenna: %s (power: %s)\n",
Utils::antennaStatus2string(rf.antennaStatus).c_str(),
Utils::antennaPower2string(rf.antennaPower).c_str());
printf(" Noise: %u/ms, AGC: %.1f%%, CW: %.1f dB\n",
rf.noisePerMS, rf.agcMonitor, rf.cwInterferenceSuppressionLevel);
}
nav = hat.wait_and_get_fresh_navigation()
for rf in nav.rf_blocks:
print(f"Jamming: {rf.jamming_state}")
print(f"Antenna: {rf.antenna_status} (power: {rf.antenna_power})")
print(f"Noise: {rf.noise_per_ms}/ms, AGC: {rf.agc_monitor:.1f}%")
- Normal: ~50–70% — healthy signal levels
- Low (<30%): Strong signal or interference saturating the front end
- High (>80%): Weak signal, possible antenna issue
| Status | Meaning | Action |
|---|---|---|
OK |
Antenna connected and working | Normal |
Open |
No antenna detected | Check connector |
Short |
Short circuit on antenna line | Replace cable/antenna |
Init / DontKnow |
Detection not complete | Wait for fix |