Skip to content

Handle missing satellite objects and extend BDS satellite identifiers#8

Open
JianquanLu wants to merge 2 commits into
GREAT-WHU:mainfrom
JianquanLu:fix/null-satellite-object
Open

Handle missing satellite objects and extend BDS satellite identifiers#8
JianquanLu wants to merge 2 commits into
GREAT-WHU:mainfrom
JianquanLu:fix/null-satellite-object

Conversation

@JianquanLu

Copy link
Copy Markdown

Summary

  • extend the static BDS satellite identifier list from C01-C46/C59-C60 through C01-C63
  • guard against a missing satellite object before accessing its antenna calibration
  • warn and skip an observation safely if an unknown satellite identifier is encountered

Problem

The static BDS satellite list omits C47-C58 and C61-C63. When an observation contains one of these satellites, such as C56, t_gallobj::obj() returns an empty shared_ptr even when the ANTEX file contains a calibration record for that satellite.

great::t_gpvtflt::_preprocess() then dereferences it unconditionally:

shared_ptr<t_gobj> sat_obj = this->_gallobj->obj(satname);
shared_ptr<t_gpcv> sat_pcv = sat_obj->pcv(_epoch);

This causes a segmentation fault/access violation at the first epoch containing C56.

Fix

  1. Add C47-C58 and C61-C63 to the BDS satellite identifier list, allowing valid current BDS satellites to be initialized normally.
  2. Retain a null check in _preprocess() so a future unknown or unavailable satellite object produces a warning and is removed from that epoch instead of crashing the process.

Verification

Tested from commit 3b4f383a2724c1b0c4748cb0b0cb80e0bc430740 using an ANTEX file containing a C56 record:

  • before the fix, processing stops with a segmentation fault when C56 first appears
  • after the fix, C56 is resolved as a normal satellite object rather than skipped
  • all nine previously failing observation datasets pass their original trigger epochs and complete with exit 0
  • two delayed failures were reproduced at the exact epochs where C56 first appeared and both complete after the fix
  • a good-environment static observation regression also completes successfully
  • MSVC Release build and git diff --check pass

No observation data, generated products, binaries, or local paths are included in this PR.

🤖 Generated with Claude Code

JianquanLu and others added 2 commits July 15, 2026 17:57
Skip observations whose satellite object is unavailable before querying antenna PCV data, avoiding a null pointer dereference.

Co-Authored-By: Claude <noreply@anthropic.com>
Allocate satellite objects for BDS PRNs C47 through C58 and C61 through C63 so valid observations such as C56 can use their ANTEX records.

Co-Authored-By: Claude <noreply@anthropic.com>
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