@@ -524,15 +524,18 @@ std::vector<rtcm::Message> ReferenceStation::produce() NOEXCEPT {
524524//
525525
526526Generator::Generator () NOEXCEPT {
527+ FUNCTION_SCOPE ();
527528 mIodConsistencyCheck = false ;
528529 mUseReceptionTimeForOrbitAndClockCorrections = false ;
529530 mUseOrbitCorrectionInIteration = false ;
531+ mIgnoreBitmask = false ;
530532}
531533
532534Generator::~Generator () NOEXCEPT = default ;
533535
534536std::shared_ptr<ReferenceStation>
535537Generator::define_reference_station (ReferenceStationConfig const & config) NOEXCEPT {
538+ FUNCTION_SCOPE ();
536539 INFOF (" define reference station:" );
537540 INFOF (" ground position (itrf): (%f, %f, %f)" , config.itrf_ground_position .x ,
538541 config.itrf_ground_position .y , config.itrf_ground_position .z );
@@ -635,7 +638,26 @@ void Generator::find_correction_point_set(ProvideAssistanceData_r9_IEs const& me
635638 }
636639 correction_point_set.bitmask = bitmask;
637640
638- mCorrectionPointSet .reset (new CorrectionPointSet (correction_point_set));
641+ auto cps_ptr = new CorrectionPointSet (correction_point_set);
642+
643+ DEBUGF (" grid_point_count: %u" , grid_point_count);
644+ for (long i = 0 ; i < 64 ; i++) {
645+ CorrectionPointInfo cpi{};
646+ if (cps_ptr->array_to_index (i, &cpi)) {
647+ DEBUGF (" %2ld: %2ld/%2ld %ld/%ld %s %+18.14f %+18.14f %+18.14f" , i,
648+ cpi.absolute_index , cpi.array_index , cpi.latitude_index , cpi.longitude_index ,
649+ cpi.is_valid ? " ok" : " --" , cpi.position .x , cpi.position .y , cpi.position .z );
650+ } else {
651+ DEBUGF (" %2ld: invalid" , i);
652+ }
653+ }
654+
655+ if (mIgnoreBitmask ) {
656+ NOTICEF (" ignoring correction point bitmask" );
657+ cps_ptr->bitmask = 0xFFFFFFFFFFFFFFFF ;
658+ }
659+
660+ mCorrectionPointSet .reset (cps_ptr);
639661 } else {
640662 // TODO(ewasjon): [low-priority] Support list of correction points
641663 WARNF (" unsupported correction point type" );
0 commit comments