Skip to content

feat(galileo_e1b): support the E1B BOC(1,1) signal#69

Merged
siebc merged 1 commit into
masterfrom
sc/boc11
Jul 3, 2026
Merged

feat(galileo_e1b): support the E1B BOC(1,1) signal#69
siebc merged 1 commit into
masterfrom
sc/boc11

Conversation

@giove-a

@giove-a giove-a commented Jul 3, 2026

Copy link
Copy Markdown

Summary

Adds decoder support for GalileoE1B_BOC11, the BOC(1,1) approximation of Galileo E1B introduced in GNSSSignals.jl 2.6.

Software receivers commonly substitute a pure BOC(1,1) replica for the full CBOC(6,1,1/11) spec (lower sampling rate, ~0.45 dB correlation loss). The two are distinct signal types in GNSSSignals.jl, but they carry the identical I/NAV navigation message — same 4092-chip primary code, same 250 bps data rate, same page/word structure. The difference is purely in the RF modulation, which is a tracking/acquisition concern, not a navigation-message decoding one.

Accordingly, GNSSDecoderState(::GalileoE1B_BOC11, prn) dispatches to the existing E1B decoder unchanged, rather than duplicating the Constants/Data/Cache/parsing stack.

Changes

  • src/galileo/e1b.jl — add GNSSDecoderState(::GalileoE1B_BOC11, prn) mapping to GalileoE1BDecoderState, with a comment explaining why the decoder is shared.
  • test/galileo_e1b.jl — add a constructor testset asserting the BOC(1,1) state equals both the direct constructor and the full-CBOC E1B state.
  • README.md — note the BOC(1,1) approximation under supported signals.

Notes

  • No compat bump needed — GalileoE1B_BOC11 is present in the already-required GNSSSignals 2.6.
  • With this change, GNSSDecoder covers every data-bearing signal GNSSSignals.jl 2.6 defines. The remaining uncovered signals (GPSL1C_P, GPSL2CL, GPSL5Q, GalileoE1C, GalileoE1C_BOC11, GalileoE5aQ) are all dataless pilot components (get_data_frequency == 0 Hz) with no navigation message to decode.

Testing

Galileo E1B test suite passes (16/16), including the 2 new BOC(1,1) constructor tests.

🤖 Generated with Claude Code

GNSSSignals.jl 2.6 defines GalileoE1B_BOC11, the BOC(1,1) approximation
of Galileo E1B that software receivers substitute for the full
CBOC(6,1,1/11) spec. It carries the identical I/NAV navigation message
(same 4092-chip primary code, 250 bps data rate, page/word structure);
only the RF modulation differs, which is a tracking/acquisition concern.

Dispatch GNSSDecoderState(::GalileoE1B_BOC11, prn) to the existing E1B
decoder unchanged, add a constructor test, and note the support in the
README.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@giove-a giove-a changed the title Support the Galileo E1B BOC(1,1) signal feat(galileo_e1b): support the E1B BOC(1,1) signal Jul 3, 2026
@codecov

codecov Bot commented Jul 3, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.15%. Comparing base (e7e8767) to head (dca98d3).

Additional details and impacted files
@@           Coverage Diff           @@
##           master      #69   +/-   ##
=======================================
  Coverage   98.15%   98.15%           
=======================================
  Files          14       14           
  Lines        1515     1517    +2     
=======================================
+ Hits         1487     1489    +2     
  Misses         28       28           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@siebc
siebc merged commit ec2c597 into master Jul 3, 2026
9 checks passed
@siebc
siebc deleted the sc/boc11 branch July 3, 2026 11:47
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.

2 participants