Changeset 3078 in ntrip for trunk/BNC/combination


Ignore:
Timestamp:
Mar 6, 2011, 6:15:50 PM (14 years ago)
Author:
mervart
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/combination/bnccomb.cpp

    r3064 r3078  
    347347  co.SatRefDatum       = DATUM_ITRF;
    348348
     349  struct Bias bias;
     350  memset(&bias, 0, sizeof(bias));
     351  bias.GPSEpochTime      = (int)GPSweeks;
     352  bias.GLONASSEpochTime  = (int)fmod(GPSweeks, 86400.0)
     353                         + 3 * 3600 - gnumleap(year, month, day);
     354
    349355  QMapIterator<QString, t_corr*> it(resCorr);
    350356  while (it.hasNext()) {
     
    374380    }
    375381   
     382    struct Bias::BiasSat* biasSat = 0;
     383    if      (corr->prn[0] == 'G') {
     384      biasSat = bias.Sat + bias.NumberOfGPSSat;
     385      ++bias.NumberOfGPSSat;
     386    }
     387    else if (corr->prn[0] == 'R') {
     388      biasSat = bias.Sat + CLOCKORBIT_NUMGPS + bias.NumberOfGLONASSSat;
     389      ++bias.NumberOfGLONASSSat;
     390    }
     391
     392    // Coefficient of Ionosphere-Free LC
     393    // ---------------------------------
     394    const static double a_L1_GPS =  2.54572778;
     395    const static double a_L2_GPS = -1.54572778;
     396    const static double a_L1_Glo =  2.53125000;
     397    const static double a_L2_Glo = -1.53125000;
     398
     399    if (biasSat) {
     400      biasSat->ID = corr->prn.mid(1).toInt();
     401      biasSat->NumberOfCodeBiases = 3;
     402      if      (corr->prn[0] == 'G') {
     403        biasSat->Biases[0].Type = CODETYPEGPS_L1_Z;
     404        biasSat->Biases[0].Bias = - a_L2_GPS * 0.0; // xx(10);
     405        biasSat->Biases[1].Type = CODETYPEGPS_L1_CA;
     406        biasSat->Biases[1].Bias = - a_L2_GPS * 0.0; // xx(10) + xx(9);
     407        biasSat->Biases[2].Type = CODETYPEGPS_L2_Z;
     408        biasSat->Biases[2].Bias = a_L1_GPS * 0.0; // xx(10);
     409      }
     410      else if (corr->prn[0] == 'R') {
     411        biasSat->Biases[0].Type = CODETYPEGLONASS_L1_P;
     412        biasSat->Biases[0].Bias = - a_L2_Glo * 0.0; // xx(10);
     413        biasSat->Biases[1].Type = CODETYPEGLONASS_L1_CA;
     414        biasSat->Biases[1].Bias = - a_L2_Glo * 0.0; // xx(10) + xx(9);
     415        biasSat->Biases[2].Type = CODETYPEGLONASS_L2_P;
     416        biasSat->Biases[2].Bias = a_L1_Glo * 0.0; // xx(10);
     417      }
     418    }
     419
    376420    // SP3 Output
    377421    // ----------
     
    413457    char obuffer[CLOCKORBIT_BUFFERSIZE];
    414458    int len = MakeClockOrbit(&co, COTYPE_AUTO, 0, obuffer, sizeof(obuffer));
     459    if (len > 0) {
     460      _caster->write(obuffer, len);
     461    }
     462  }
     463
     464  if ( _caster->usedSocket() &&
     465       (bias.NumberOfGPSSat > 0 || bias.NumberOfGLONASSSat > 0) ) {
     466    char obuffer[CLOCKORBIT_BUFFERSIZE];
     467    int len = MakeBias(&bias, BTYPE_AUTO, 0, obuffer, sizeof(obuffer));
    415468    if (len > 0) {
    416469      _caster->write(obuffer, len);
Note: See TracChangeset for help on using the changeset viewer.