Changeset 8905 in ntrip for trunk/BNC/src/pppMain.cpp
- Timestamp:
- Mar 18, 2020, 11:13:50 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/src/pppMain.cpp
r8773 r8905 109 109 } 110 110 delete pppThread; 111 111 } 112 112 #endif 113 113 } 114 114 _pppThreads.clear(); 115 115 } 116 116 117 117 _running = false; … … 183 183 opt->_corrWaitTime = 0; 184 184 } 185 opt->_obsModelType = t_pppOptions::IF; 186 opt->_pseudoObsIono = false; 187 opt->_refSatRequired = false; 188 #ifdef USE_PPP 189 // Pseudo Observations 190 if (settings.value("PPP/pseudoObs").toString() == "Ionosphere") { 191 opt->_pseudoObsIono = true; 192 } 193 else if (settings.value("PPP/pseudoObs").toString() == "no") { 194 opt->_pseudoObsIono = false; 195 } 196 // Observation Model 197 if (settings.value("PPP/modelObs").toString() == "Ionosphere-free PPP") { 198 opt->_obsModelType = t_pppOptions::IF; 199 opt->_pseudoObsIono = false; 200 } 201 else if (settings.value("PPP/modelObs").toString() == "PPP-RTK") { 202 opt->_obsModelType = t_pppOptions::PPPRTK; 203 opt->_pseudoObsIono = false; 204 } 205 else if (settings.value("PPP/modelObs").toString() == "Uncombined PPP") { 206 opt->_obsModelType = t_pppOptions::UncombPPP; 207 if (opt->_pseudoObsIono) { 208 opt->_refSatRequired = true; 209 } 210 } 211 else if (settings.value("PPP/modelObs").toString() == "DCM with Code Biases") { 212 opt->_obsModelType = t_pppOptions::DCMcodeBias; 213 opt->_refSatRequired = true; 214 } 215 else if (settings.value("PPP/modelObs").toString() == "DCM with Phase Biases") { 216 opt->_obsModelType = t_pppOptions::DCMphaseBias; 217 opt->_refSatRequired = true; 218 } 219 #endif 185 220 // GPS 186 if (settings.value("PPP/lcGPS").toString() == "Pi") { 187 opt->_LCsGPS.push_back(t_lc::c1); 188 opt->_LCsGPS.push_back(t_lc::c2); 221 if (settings.value("PPP/lcGPS").toString() == "Pi") { 222 if (opt->_obsModelType == t_pppOptions::IF) { 223 opt->_LCsGPS.push_back(t_lc::cIF); 224 } 225 else { 226 opt->_LCsGPS.push_back(t_lc::c1); 227 opt->_LCsGPS.push_back(t_lc::c2); 228 if (opt->_pseudoObsIono) { 229 opt->_LCsGPS.push_back(t_lc::GIM); 230 } 231 } 189 232 } 190 233 else if (settings.value("PPP/lcGPS").toString() == "Li") { 191 opt->_LCsGPS.push_back(t_lc::l1); 192 opt->_LCsGPS.push_back(t_lc::l2); 234 if (opt->_obsModelType == t_pppOptions::IF) { 235 opt->_LCsGPS.push_back(t_lc::lIF); 236 } 237 else { 238 opt->_LCsGPS.push_back(t_lc::l1); 239 opt->_LCsGPS.push_back(t_lc::l2); 240 if (opt->_pseudoObsIono) { 241 opt->_LCsGPS.push_back(t_lc::GIM); 242 } 243 } 193 244 } 194 245 else if (settings.value("PPP/lcGPS").toString() == "Pi&Li") { 195 opt->_LCsGPS.push_back(t_lc::c1); 196 opt->_LCsGPS.push_back(t_lc::c2); 197 opt->_LCsGPS.push_back(t_lc::l1); 198 opt->_LCsGPS.push_back(t_lc::l2); 199 } 200 if (settings.value("PPP/lcGPS").toString() == "P3") { 201 opt->_LCsGPS.push_back(t_lc::cIF); 202 } 203 else if (settings.value("PPP/lcGPS").toString() == "L3") { 204 opt->_LCsGPS.push_back(t_lc::lIF); 205 } 206 else if (settings.value("PPP/lcGPS").toString() == "P3&L3") { 207 opt->_LCsGPS.push_back(t_lc::cIF); 208 opt->_LCsGPS.push_back(t_lc::lIF); 246 if (opt->_obsModelType == t_pppOptions::IF) { 247 opt->_LCsGPS.push_back(t_lc::cIF); 248 opt->_LCsGPS.push_back(t_lc::lIF); 249 } 250 else { 251 opt->_LCsGPS.push_back(t_lc::c1); 252 opt->_LCsGPS.push_back(t_lc::c2); 253 opt->_LCsGPS.push_back(t_lc::l1); 254 opt->_LCsGPS.push_back(t_lc::l2); 255 if (opt->_pseudoObsIono) { 256 opt->_LCsGPS.push_back(t_lc::GIM); 257 } 258 } 209 259 } 210 260 // GLONASS 211 if (settings.value("PPP/lcGLONASS").toString() == "Pi") { 212 opt->_LCsGLONASS.push_back(t_lc::c1); 213 opt->_LCsGLONASS.push_back(t_lc::c2); 261 if (settings.value("PPP/lcGLONASS").toString() == "Pi") { 262 if (opt->_obsModelType == t_pppOptions::IF) { 263 opt->_LCsGLONASS.push_back(t_lc::cIF); 264 } 265 else { 266 opt->_LCsGLONASS.push_back(t_lc::c1); 267 opt->_LCsGLONASS.push_back(t_lc::c2); 268 if (opt->_pseudoObsIono) { 269 opt->_LCsGLONASS.push_back(t_lc::GIM); 270 } 271 } 214 272 } 215 273 else if (settings.value("PPP/lcGLONASS").toString() == "Li") { 216 opt->_LCsGLONASS.push_back(t_lc::l1); 217 opt->_LCsGLONASS.push_back(t_lc::l2); 274 if (opt->_obsModelType == t_pppOptions::IF) { 275 opt->_LCsGLONASS.push_back(t_lc::lIF); 276 } 277 else { 278 opt->_LCsGLONASS.push_back(t_lc::l1); 279 opt->_LCsGLONASS.push_back(t_lc::l2); 280 if (opt->_obsModelType == t_pppOptions::IF) { 281 opt->_LCsGLONASS.push_back(t_lc::GIM); 282 } 283 } 218 284 } 219 285 else if (settings.value("PPP/lcGLONASS").toString() == "Pi&Li") { 220 opt->_LCsGLONASS.push_back(t_lc::c1); 221 opt->_LCsGLONASS.push_back(t_lc::c2); 222 opt->_LCsGLONASS.push_back(t_lc::l1); 223 opt->_LCsGLONASS.push_back(t_lc::l2); 224 } 225 if (settings.value("PPP/lcGLONASS").toString() == "P3") { 226 opt->_LCsGLONASS.push_back(t_lc::cIF); 227 } 228 else if (settings.value("PPP/lcGLONASS").toString() == "L3") { 229 opt->_LCsGLONASS.push_back(t_lc::lIF); 230 } 231 else if (settings.value("PPP/lcGLONASS").toString() == "P3&L3") { 232 opt->_LCsGLONASS.push_back(t_lc::cIF); 233 opt->_LCsGLONASS.push_back(t_lc::lIF); 286 if (opt->_obsModelType == t_pppOptions::IF) { 287 opt->_LCsGLONASS.push_back(t_lc::cIF); 288 opt->_LCsGLONASS.push_back(t_lc::lIF); 289 } 290 else { 291 opt->_LCsGLONASS.push_back(t_lc::c1); 292 opt->_LCsGLONASS.push_back(t_lc::c2); 293 opt->_LCsGLONASS.push_back(t_lc::l1); 294 opt->_LCsGLONASS.push_back(t_lc::l2); 295 if (opt->_pseudoObsIono) { 296 opt->_LCsGLONASS.push_back(t_lc::GIM); 297 } 298 } 234 299 } 235 300 // Galileo 236 if (settings.value("PPP/lcGalileo").toString() == "Pi") { 237 opt->_LCsGalileo.push_back(t_lc::c1); 238 opt->_LCsGalileo.push_back(t_lc::c2); 301 if (settings.value("PPP/lcGalileo").toString() == "Pi") { 302 if (opt->_obsModelType == t_pppOptions::IF) { 303 opt->_LCsGalileo.push_back(t_lc::cIF); 304 } 305 else { 306 opt->_LCsGalileo.push_back(t_lc::c1); 307 opt->_LCsGalileo.push_back(t_lc::c2); 308 if (opt->_pseudoObsIono) { 309 opt->_LCsGalileo.push_back(t_lc::GIM); 310 } 311 } 239 312 } 240 313 else if (settings.value("PPP/lcGalileo").toString() == "Li") { 241 opt->_LCsGalileo.push_back(t_lc::l1); 242 opt->_LCsGalileo.push_back(t_lc::l2); 314 if (opt->_obsModelType == t_pppOptions::IF) { 315 opt->_LCsGalileo.push_back(t_lc::lIF); 316 } 317 else { 318 opt->_LCsGalileo.push_back(t_lc::l1); 319 opt->_LCsGalileo.push_back(t_lc::l2); 320 if (opt->_pseudoObsIono) { 321 opt->_LCsGalileo.push_back(t_lc::GIM); 322 } 323 } 243 324 } 244 325 else if (settings.value("PPP/lcGalileo").toString() == "Pi&Li") { 245 opt->_LCsGalileo.push_back(t_lc::c1); 246 opt->_LCsGalileo.push_back(t_lc::c2); 247 opt->_LCsGalileo.push_back(t_lc::l1); 248 opt->_LCsGalileo.push_back(t_lc::l2); 249 } 250 if (settings.value("PPP/lcGalileo").toString() == "P3") { 251 opt->_LCsGalileo.push_back(t_lc::cIF); 252 } 253 else if (settings.value("PPP/lcGalileo").toString() == "L3") { 254 opt->_LCsGalileo.push_back(t_lc::lIF); 255 } 256 else if (settings.value("PPP/lcGalileo").toString() == "P3&L3") { 257 opt->_LCsGalileo.push_back(t_lc::cIF); 258 opt->_LCsGalileo.push_back(t_lc::lIF); 326 if (opt->_obsModelType == t_pppOptions::IF) { 327 opt->_LCsGalileo.push_back(t_lc::cIF); 328 opt->_LCsGalileo.push_back(t_lc::lIF); 329 } 330 else { 331 opt->_LCsGalileo.push_back(t_lc::c1); 332 opt->_LCsGalileo.push_back(t_lc::c2); 333 opt->_LCsGalileo.push_back(t_lc::l1); 334 opt->_LCsGalileo.push_back(t_lc::l2); 335 if (opt->_pseudoObsIono) { 336 opt->_LCsGalileo.push_back(t_lc::GIM); 337 } 338 } 259 339 } 260 340 // BDS 261 if (settings.value("PPP/lcBDS").toString() == "Pi") { 262 opt->_LCsBDS.push_back(t_lc::c1); 263 opt->_LCsBDS.push_back(t_lc::c2); 341 if (settings.value("PPP/lcBDS").toString() == "Pi") { 342 if (opt->_obsModelType == t_pppOptions::IF) { 343 opt->_LCsBDS.push_back(t_lc::cIF); 344 } 345 else { 346 opt->_LCsBDS.push_back(t_lc::c1); 347 opt->_LCsBDS.push_back(t_lc::c2); 348 if (opt->_pseudoObsIono) { 349 opt->_LCsBDS.push_back(t_lc::GIM); 350 } 351 } 264 352 } 265 353 else if (settings.value("PPP/lcBDS").toString() == "Li") { 266 opt->_LCsBDS.push_back(t_lc::l1); 267 opt->_LCsBDS.push_back(t_lc::l2); 354 if (opt->_obsModelType == t_pppOptions::IF) { 355 opt->_LCsBDS.push_back(t_lc::lIF); 356 } 357 else { 358 opt->_LCsBDS.push_back(t_lc::l1); 359 opt->_LCsBDS.push_back(t_lc::l2); 360 if (opt->_pseudoObsIono) { 361 opt->_LCsBDS.push_back(t_lc::GIM); 362 } 363 } 268 364 } 269 365 else if (settings.value("PPP/lcBDS").toString() == "Pi&Li") { 270 opt->_LCsBDS.push_back(t_lc::c1); 271 opt->_LCsBDS.push_back(t_lc::c2); 272 opt->_LCsBDS.push_back(t_lc::l1); 273 opt->_LCsBDS.push_back(t_lc::l2); 274 } 275 if (settings.value("PPP/lcBDS").toString() == "P3") { 276 opt->_LCsBDS.push_back(t_lc::cIF); 277 } 278 else if (settings.value("PPP/lcBDS").toString() == "L3") { 279 opt->_LCsBDS.push_back(t_lc::lIF); 280 } 281 else if (settings.value("PPP/lcBDS").toString() == "P3&L3") { 282 opt->_LCsBDS.push_back(t_lc::cIF); 283 opt->_LCsBDS.push_back(t_lc::lIF); 366 if (opt->_obsModelType == t_pppOptions::IF) { 367 opt->_LCsBDS.push_back(t_lc::cIF); 368 opt->_LCsBDS.push_back(t_lc::lIF); 369 } 370 else { 371 opt->_LCsBDS.push_back(t_lc::c1); 372 opt->_LCsBDS.push_back(t_lc::c2); 373 opt->_LCsBDS.push_back(t_lc::l1); 374 opt->_LCsBDS.push_back(t_lc::l2); 375 if (opt->_pseudoObsIono) { 376 opt->_LCsBDS.push_back(t_lc::GIM); 377 } 378 } 284 379 } 285 380 … … 316 411 // Some default values 317 412 // ------------------- 318 opt->_aprSigAmb = 1000.0; 319 opt->_noiseClk = 1000.0; 413 opt->_aprSigAmb = 1000.0; 414 opt->_aprSigIon = 1000.0; 415 opt->_noiseClk = 1000.0; 416 opt->_aprSigCodeBias = 1000.0; 417 opt->_aprSigPhaseBias = 1000.0; 418 opt->_noiseIon = 1.0; 419 opt->_noiseCodeBias = 1.0; 420 opt->_noisePhaseBias = 0.1; 421 opt->_sigmaGIMdiff = 0.05; // pseudo observation GIM: STEC(ref_sat) - STEC(sat) 320 422 321 423 _options << opt;
Note:
See TracChangeset
for help on using the changeset viewer.