33 #include <QtCore/QCoreApplication>
34 #include <QtCore/QFile>
35 #include <QtCore/QList>
36 #include <QtCore/QSettings>
38 #if QT_VERSION >= 0x050000
39 # include <QtWidgets/QApplication>
40 # include <QtWidgets/QMessageBox>
42 # include <QtGui/QApplication>
43 # include <QtGui/QMessageBox>
46 #include <QtGui/QFont>
47 #include <QtGui/QIcon>
106 static int parse_opt(
int key,
char *arg,
struct argp_state *state)
123 ": parse_opt(): it is dangerous to use a string \"" + options->
altSetupName +
124 "\" as an alternative config name");
126 ": parse_opt(): you can overwrite another file (un)intentionally");
137 ": parse_opt(): using default setup");
140 if (strcmp(arg,
"dbh") == 0)
142 else if (strcmp(arg,
"vgos") == 0)
147 ": parse_opt(): the data storage format \"" + arg +
"\" is unrecognized");
155 ": parse_opt(): will not interrupt signals");
189 options->
args << QString(arg);
198 return ARGP_ERR_UNKNOWN;
242 QString str(
"Signal handler: catched the \"");
245 std::cout << qPrintable(str) <<
"; saving the Log...\n";
250 QString(
"An internal error occurred.\n\n") + str +
251 ".\n\nThe application will now exit.");
283 std::cout <<
"got an unexpected signal, setting handler to default.\n";
287 std::cout <<
"Signal handler: processing default handler..\n";
299 int main(
int argc,
char** argv)
301 struct sigaction act;
306 const QString path2SystemWideConfig(SWCONFIG
"/xdg");
308 const QString path2SystemWideConfig(
"");
326 options.
args.clear();
334 QCoreApplication::setOrganizationName(
origOrgName);
335 QCoreApplication::setOrganizationDomain(
origDmnName);
339 QSettings::setPath(QSettings::NativeFormat, QSettings::SystemScope, path2SystemWideConfig);
352 for (
int i=0; i<argc; i++)
353 command += QString(argv[i]) +
" ";
363 struct argp_option argp_options[] =
365 {0, 0, 0, 0,
"Configuration control:", 10},
366 {
"alt",
'a',
"STRING", 0,
367 "Use an alternative configuration STRING"},
368 {
"default-setup",
'd', 0, 0,
369 "Use default setup (WARNING: existing configuration will be overwriten)"},
371 {0, 0, 0, 0,
"Script mode:", 11},
372 {
"script",
't',
"STRING", 0,
373 "Execute a script STRING. "},
375 {0, 0, 0, 0,
"Automatic processing (GUI mode):", 12},
376 {
"force-automatic",
'm', 0, 0,
377 "Force executing of automatic processing"},
378 {
"no-automatic",
'n', 0, 0,
379 "Do not run automatic processing even if a session is eligible for it"},
381 {0, 0, 0, 0,
"Input control:", 13},
382 {
"catalog",
'c', 0, 0,
383 "Force run in the catalog aware mode (opposite to '-s')"},
384 {
"format",
'f',
"STRING", 0,
385 "Set the data storage format of the provided session to STRING (either \"dbh\" or \"vgos\")"},
386 {
"read-all",
'l', 0, 0,
387 "Read all databases, even that that lack of essential information"},
388 {
"standalone",
's', 0, 0,
389 "Force run in the standalone mode (opposite to '-c')"},
391 {0, 0, 0, 0,
"Invocation of startup wizard:", 14},
392 {
"sys-wide-wizard",
'W', 0, 0,
393 "Run startup wizard for the system-wide settings"},
394 {
"wizard",
'w', 0, 0,
395 "Force call of the startup wizard"},
397 {0, 0, 0, 0,
"Execution control:", 15},
398 {
"no-interruptions",
'i', 0, 0,
399 "Do not catch interruptions"},
401 {0, 0, 0, 0,
"Operation modes:", -1},
402 {
"version",
'V', 0, 0,
403 "Print program version"},
408 QString salute(
"A program to make preliminary analysis of a geodetic "
416 QString(
"\n\nThe program nuSolve is a part of nuSolve package. For datails see "
417 "\"nuSolve User Guide\", a part of nuSolve distribution. You can get the latest version of "
418 "nuSolve at\n\t\thttps://sourceforge.net/projects/nusolve");
420 struct argp argp={argp_options,
parse_opt,
421 "\n\nDATABASE\nSCRIPT [SCRIPT OPTIONS]", salute.toLatin1()};
423 argp_parse (&argp, argc, argv, 0, 0, &options);
431 sigemptyset(&act.sa_mask);
444 isFirstRun = options.
settings->allKeys().size()>0 ? false :
true;
454 ": using alternative config name \"" + options.
altSetupName +
"\"");
471 ": combination of -c and -s options has no effect");
477 ": combination of -m and -n options has no effect");
487 ": forced run in the catalog aware mode");
495 ": forced run in the standalone mode");
501 ": the automatic process mode is supressed");
507 ": forced call the automatic processing");
516 if (options.
settings->contains(
"Version/LibraryName"))
544 bool hasDisplay=
false;
545 const char* envDisplay=NULL;
546 if ((envDisplay=getenv(
"DISPLAY")) && strlen(envDisplay))
551 QApplication app(argc, argv);
556 QCoreApplication app(argc, argv);
571 ": cannot proccess the database \"" + options.
databaseName +
"\": no config found");
578 QString sessionName(
"");
585 if (QFile::exists(sTmp))
590 ": cannot proccess the database \"" + options.
databaseName +
"\": file does not exist");
596 QRegExp reDbName(
".*([0-9]{2}[A-Z]{3}[0-9]{2}[A-Z0-9]{1,2}).*");
597 QRegExp reDbVerName(
".*([0-9]{2}[A-Z]{3}[0-9]{2}[A-Z0-9]{1,2})_V([0-9]{3}).*");
601 sessionName = reDbVerName.cap(1);
602 sVer = reDbVerName.cap(2);
605 sessionName = reDbName.cap(1);
609 ": cannot proccess the database \"" + options.
databaseName +
"\": does not look like a "
617 QString path2wrapperFile(
"");
618 QString wrapperFileName(
"");
620 QRegExp reDatabaseName(
"^[0-9]{2}[A-Z]{3}[0-9]{2}[A-Z0-9]{1,2}$");
621 QRegExp reDatabaseVersionName(
"^[0-9]{2}[A-Z]{3}[0-9]{2}[A-Z0-9]{1,2}_V[0-9]{3}$");
628 path2wrapperFile, wrapperFileName, sessionName, version);
634 path2wrapperFile, wrapperFileName, sessionName, version);
639 ": cannot proccess the database \"" + options.
databaseName +
"\": file does not exist");
643 options.
databaseName = path2wrapperFile +
"/" + wrapperFileName;
647 ": cannot proccess the database \"" + options.
databaseName +
"\": file does not exist");
654 QApplication app(argc, argv,
false);
695 ": starting command line version");
712 ": User command: \"" + command +
"\"");
723 ": the elapsed time to process the session " + sessionName +
" is: " +
725 QString(
"").sprintf(
"%.2f", (finisEpoch - startEpoch)*86400.0) +
" sec)");
729 ": processing of the database " + options.
databaseName +
" has failed");
744 QApplication app(argc, argv);
745 QIcon appIcon(QPixmap(
":/images/icon_2.5.png"));
746 app.setWindowIcon(appIcon);
748 if (options.
settings->contains(
"Setup/GuiStyle"))
750 QString appStyle(options.
settings->value(
"Setup/GuiStyle").toString());
751 if (!appStyle.contains(
"GTK"))
753 QApplication::setStyle(appStyle);
754 QFont font(
"Sans Serif", 10);
755 if (options.
settings->contains(
"Setup/GuiFont"))
756 font = options.
settings->value(
"Setup/GuiFont").value<QFont>();
757 QApplication::setFont(font);
769 QSettings *swSettings =
771 if (!swSettings->isWritable())
774 ": cannot write system wide config");
783 ": using an alternative config name, system wide config edit request ignored");
787 if ((rc=startup.exec())==0)
826 if (settings.contains(
"Version/LibraryName"))
828 QString savedSoftName;
829 QString savedCodeName;
830 int savedMajorNum, savedMinorNum, savedTeenyNum, savedSettingsVersion;
832 savedSoftName = settings.value(
"Version/LibraryName",
"N/A").toString();
833 savedCodeName = settings.value(
"Version/LibraryComments",
"N/A").toString();
834 savedMajorNum = settings.value(
"Version/LibraryMajor", 0).toInt();
835 savedMinorNum = settings.value(
"Version/LibraryMinor", 0).toInt();
836 savedTeenyNum = settings.value(
"Version/LibraryTeeny", 0).toInt();
843 savedSoftName = settings.value(
"Version/nuSolveName",
"N/A").toString();
844 savedCodeName = settings.value(
"Version/nuSolveComments",
"N/A").toString();
845 savedMajorNum = settings.value(
"Version/nuSolveMajor", 0).toInt();
846 savedMinorNum = settings.value(
"Version/nuSolveMinor", 0).toInt();
847 savedTeenyNum = settings.value(
"Version/nuSolveTeeny", 0).toInt();
860 ": you are using an obsolete version, " +
nuSolveVersion.
name() +
", of the software "
863 savedSettingsVersion = settings.value(
"Version/nuSolveSettings", 0).toInt();
869 if (savedSettingsVersion == 0)
872 iMode = settings.value(
"Config/EstimatorPwlMode",
config.
getPwlMode()).toInt();
883 ": unrecognized PWL mode: " + QString(
"").setNum(iMode));
886 ": the PWL mode has been adjusted");
907 settings.value(
"Identities/UserName",
910 settings.value(
"Identities/UserEmailAddress",
913 settings.value(
"Identities/UserDefaultInitials",
916 settings.value(
"Identities/AcFullName",
919 settings.value(
"Identities/AcAbbreviatedName",
922 settings.value(
"Identities/AcShortAbbreviatedName",
928 settings.value(
"Setup/Path2Home",
931 settings.value(
"Setup/Path2CatalogInterfaceExec",
934 settings.value(
"Setup/Path2DbhFiles",
937 settings.value(
"Setup/Path2OpenDbFiles",
940 settings.value(
"Setup/Path2VgosDaFiles",
943 settings.value(
"Setup/Path2APrioriFiles",
946 settings.value(
"Setup/Path2MasterFiles",
949 settings.value(
"Setup/Path2SpoolfileOutput",
952 settings.value(
"Setup/Path2NotUsedObsFileOutput",
955 settings.value(
"Setup/Path2ReportsOutput",
958 settings.value(
"Setup/Path2NgsFilesOutput",
961 settings.value(
"Setup/Path2PlotterFilesOutput",
964 settings.value(
"Setup/Path2IntermediateResults",
967 settings.value(
"Setup/AutoSavingMode",
970 settings.value(
"Setup/Have2UpdateCatalog",
973 settings.value(
"Setup/Have2AlterSessionCode",
976 settings.value(
"Setup/Have2KeepSpoolfileReports",
979 settings.value(
"Setup/Have2WarnClosingWindow",
982 settings.value(
"Setup/IsShortScreen",
985 settings.value(
"Setup/MainWinWidth",
988 settings.value(
"Setup/MainWinHeight",
991 settings.value(
"Setup/MainWinPosX",
994 settings.value(
"Setup/MainWinPosY",
998 settings.value(
"Setup/SeWinWidth",
1001 settings.value(
"Setup/SeWinHeight",
1004 settings.value(
"Setup/Have2AutoloadAllBands",
1007 settings.value(
"Setup/IsBandPlotPerSrcView",
1010 settings.value(
"Setup/PlotterOutputFormat",
1013 settings.value(
"Setup/LnfsFileName",
1016 settings.value(
"Setup/LnfsOriginType",
1019 settings.value(
"Setup/LnfsIsThroughCatalog",
1022 settings.value(
"Setup/Path2AuxLogs",
1025 settings.value(
"Setup/Have2SavePerSessionLog",
1028 settings.value(
"Setup/ExecExternalCommand",
1031 settings.value(
"Setup/ExternalCommand",
1037 settings.value(
"Config/QualityCodeThreshold",
1040 settings.value(
"Config/GoodQualityCodeAtStartup",
1043 settings.value(
"Config/UseGoodQualityCodeAtStartup",
1046 settings.value(
"Config/DoWeightCorrection",
1049 settings.value(
"Config/UseQualityCodeG",
1052 settings.value(
"Config/UseQualityCodeH",
1055 settings.value(
"Config/IsSolveCompatible",
1058 settings.value(
"Config/UseDynamicClockBreaks",
1061 settings.value(
"Config/UseSolveObsSuppresionFlags",
1064 settings.value(
"Config/UseExternalWeights",
1067 settings.value(
"Config/WeightCorrectionMode",
1070 settings.value(
"Config/ExternalWeightsFileName",
1073 settings.value(
"Config/InitAuxSigma4Delay",
1076 settings.value(
"Config/InitAuxSigma4Rate",
1079 settings.value(
"Config/MinAuxSigma4Delay",
1082 settings.value(
"Config/MinAuxSigma4Rate",
1085 settings.value(
"Config/EstimatorPwlMode",
1088 settings.value(
"Config/OutlierProcessingMode",
1091 settings.value(
"Config/OutlierProcessingAction",
1094 settings.value(
"Config/OutlierProcessingThreshold",
1097 settings.value(
"Config/OutlierProcessingIterationsLimit",
1100 settings.value(
"Config/OutlierProcessingSuppressWC",
1103 settings.value(
"Config/OutlierProcessingIsSolveCompatible",
1106 settings.value(
"Config/OutlierProcessingHave2NormalizeResiduals",
1109 settings.value(
"Config/DoIono4Sbd",
1112 settings.value(
"Config/DoClockBreakDetectionMode_1",
1115 settings.value(
"Config/DoOutlierEliminationMode_1",
1118 settings.value(
"Config/IsActiveBandFollowsTab",
1121 settings.value(
"Config/IsObservableFollowsPlot",
1124 settings.value(
"Config/UseExternalAPrioriSitePostions",
1127 settings.value(
"Config/UseExternalAPrioriSiteVelocities",
1130 settings.value(
"Config/UseExternalAPrioriSourcePostions",
1133 settings.value(
"Config/UseExternalAPrioriSourceSsm",
1136 settings.value(
"Config/UseExternalAPrioriEop",
1139 settings.value(
"Config/UseExternalAPrioriAxisOffsets",
1142 settings.value(
"Config/UseExternalAPrioriHighFrequencyErp",
1145 settings.value(
"Config/UseExternalAPrioriMeanGradients",
1148 settings.value(
"Config/ExternalAPrioriSitePostionsFileName",
1151 settings.value(
"Config/ExternalAPrioriSiteVelocitiesFileName",
1154 settings.value(
"Config/ExternalAPrioriSourcePostionsFileName",
1157 settings.value(
"Config/ExternalAPrioriSourceSsmFileName",
1160 settings.value(
"Config/ExternalAPrioriEopFileName",
1163 settings.value(
"Config/ExternalAPrioriAxisOffsetFileName",
1166 settings.value(
"Config/ExternalAPrioriHighFrequencyErpFileName",
1169 settings.value(
"Config/ExternalAPrioriMeanGradientsFileName",
1172 settings.value(
"Config/EccentricitiesFileName",
1175 settings.value(
"Config/Have2ApplySourceSsm",
1179 settings.value(
"Config/FlybyTropZenithMap",
1183 settings.value(
"Config/Have2ApplyOceanTidesContribution",
1186 settings.value(
"Config/Have2ApplyPoleTideContribution",
1189 settings.value(
"Config/Have2ApplyEarthTideContribution",
1192 settings.value(
"Config/Have2ApplyWobblePxContribution",
1195 settings.value(
"Config/Have2ApplyWobblePyContribution",
1198 settings.value(
"Config/Have2ApplyAxisOffsetContribution",
1201 settings.value(
"Config/Have2ApplyNutationHighFrequencyContribution",
1204 settings.value(
"Config/Have2ApplyPolarMotionHighFrequencyContribution",
1207 settings.value(
"Config/Have2ApplyUT1HighFrequencyContribution",
1210 settings.value(
"Config/Have2ApplyFeedCorrectionContribution",
1213 settings.value(
"Config/Have2ApplyTiltRemvrContribution",
1216 settings.value(
"Config/Have2ApplyNielHydrostaticTroposphereContribution",
1219 settings.value(
"Config/Have2ApplyNielWetTroposphereContribution",
1222 settings.value(
"Config/Have2ApplyUnphaseCalibrationContribution",
1225 settings.value(
"Config/Have2ApplyOceanPoleTideContribution",
1228 settings.value(
"Config/Have2ApplyGpsIonoContrib",
1231 settings.value(
"Config/Have2ApplyPolarMotionLibrationContribution",
1234 settings.value(
"Config/Have2ApplyUT1LibrationContribution",
1237 settings.value(
"Config/Have2ApplyOldOceanTidesContribution",
1240 settings.value(
"Config/Have2ApplyOldPoleTideContribution",
1243 settings.value(
"Config/IsNoviceUser",
1246 settings.value(
"Config/LastModifiedNetId",
1256 ": loadSettings(): using troposphere correction contributions were turned off, "
1257 "use flyby values instead");
1265 ": loadSettings(): the flyby troposphere mapping function is not set, "
1266 "the contributions were turned on");
1272 int size=settings.beginReadArray(
"Config/AutomaticProcessingByNetId");
1277 for (
int i=0; i<size; ++i)
1279 settings.setArrayIndex(i);
1283 netId = settings.value(
"networkId").toString();
1305 settings.endArray();
1316 settings.value(
"Identities/User name",
1319 settings.value(
"Identities/User email address",
1322 settings.value(
"Identities/User default initials",
1325 settings.value(
"Identities/Analysis center full name",
1328 settings.value(
"Identities/Analysis center abbreviated name",
1331 settings.value(
"Identities/Analysis center short abbreviated name",
1337 settings.value(
"Setup/Path to catalog interface exec",
1340 settings.value(
"Setup/Path to DBH files",
1343 settings.value(
"Setup/Path to a priori files",
1346 settings.value(
"Setup/Path to master files",
1349 settings.value(
"Setup/Path to spoolfile output",
1352 settings.value(
"Setup/Path to reports output",
1355 settings.value(
"Setup/Path to NGS files output",
1358 settings.value(
"Setup/Have to update catalog",
1361 settings.value(
"Setup/Have to alter session code",
1364 settings.value(
"Setup/Have to keep spoolfile reports",
1368 settings.value(
"Setup/Have to warn closing window",
1373 settings.value(
"Config/Do weight correction",
1376 settings.value(
"Config/Is SOLVE compatible",
1379 settings.value(
"Config/Use external weights",
1382 settings.value(
"Config/Weight correction mode",
1385 settings.value(
"Config/External weights file name",
1388 settings.value(
"Config/EstimatorPwlMode",
1391 settings.value(
"Config/Outlier processing mode",
1394 settings.value(
"Config/Outlier processing action",
1397 settings.value(
"Config/Outlier processing threshold",
1400 settings.value(
"Config/Outlier processing iterations limit",
1403 settings.value(
"Config/Outlier processing WC suppresion",
1406 settings.value(
"Config/Do iono 4SBD",
1409 settings.value(
"Config/Do CB Mode 1",
1412 settings.value(
"Config/Do OP Mode 1",
1415 settings.value(
"Config/Is active band follows tab",
1418 settings.value(
"Config/Is observable follows plotter",
1421 settings.value(
"Config/Use external a priori sites postions",
1424 settings.value(
"Config/Use external a priori sites velocities",
1427 settings.value(
"Config/Use external a priori sources positions",
1430 settings.value(
"Config/Use external a priori axis offsets",
1433 settings.value(
"Config/Use external a priori high frequency ERP",
1436 settings.value(
"Config/Use external a priori mean gradients",
1439 settings.value(
"Config/External a priori sites postions file name",
1442 settings.value(
"Config/External a priori sites velocities file name",
1445 settings.value(
"Config/External a priori sources positions file name",
1448 settings.value(
"Config/External a priori axis offsets file name",
1451 settings.value(
"Config/External a priori high frequency ERP file name",
1454 settings.value(
"Config/External a priori mean gradients file name",
1457 settings.value(
"Config/Have to apply ocean tides contribution",
1460 settings.value(
"Config/Have to apply pole tide contribution",
1463 settings.value(
"Config/Have to apply earth tide contribution",
1466 settings.value(
"Config/Have to apply wobble Px contribution",
1469 settings.value(
"Config/Have to apply wobble Py contribution",
1472 settings.value(
"Config/Have to apply axis offset contribution",
1475 settings.value(
"Config/Have to apply nutation high frequency contribution",
1478 settings.value(
"Config/Have to apply polar motion high frequency contribution",
1481 settings.value(
"Config/Have to apply UT1 high frequency contribution",
1484 settings.value(
"Config/Have to apply feed correction contribution",
1487 settings.value(
"Config/Have to apply tilt remvr contribution",
1490 settings.value(
"Config/Have to apply Niel hydrostatic troposphere contribution",
1493 settings.value(
"Config/Have to apply Niel wet troposphere contribution",
1496 settings.value(
"Config/Have to apply unphase calibration contribution",
1506 settings.remove(
"Identities/User name");
1507 settings.remove(
"Identities/User email address");
1508 settings.remove(
"Identities/User default initials");
1509 settings.remove(
"Identities/Analysis center full name");
1510 settings.remove(
"Identities/Analysis center abbreviated name");
1511 settings.remove(
"Identities/Analysis center short abbreviated name");
1515 settings.remove(
"Setup/Path to catalog interface exec");
1516 settings.remove(
"Setup/Path to DBH files");
1517 settings.remove(
"Setup/Path to a priori files");
1518 settings.remove(
"Setup/Path to master files");
1519 settings.remove(
"Setup/Path to spoolfile output");
1520 settings.remove(
"Setup/Path to reports output");
1521 settings.remove(
"Setup/Path to NGS files output");
1522 settings.remove(
"Setup/Have to update catalog");
1523 settings.remove(
"Setup/Have to alter session code");
1524 settings.remove(
"Setup/Have to keep spoolfile reports");
1526 settings.remove(
"Setup/Have to warn closing window");
1529 settings.remove(
"Config/Do weight correction");
1530 settings.remove(
"Config/Is SOLVE compatible");
1531 settings.remove(
"Config/Use external weights");
1532 settings.remove(
"Config/Weight correction mode");
1533 settings.remove(
"Config/External weights file name");
1534 settings.remove(
"Config/Outlier processing mode");
1535 settings.remove(
"Config/Outlier processing action");
1536 settings.remove(
"Config/Outlier processing threshold");
1537 settings.remove(
"Config/Outlier processing iterations limit");
1538 settings.remove(
"Config/Outlier processing WC suppresion");
1539 settings.remove(
"Config/Do iono 4SBD");
1540 settings.remove(
"Config/Do CB Mode 1");
1541 settings.remove(
"Config/Do OP Mode 1");
1542 settings.remove(
"Config/Is active band follows tab");
1543 settings.remove(
"Config/Is observable follows plotter");
1544 settings.remove(
"Config/Use external a priori sites postions");
1545 settings.remove(
"Config/Use external a priori sites velocities");
1546 settings.remove(
"Config/Use external a priori sources positions");
1547 settings.remove(
"Config/Use external a priori axis offsets");
1548 settings.remove(
"Config/Use external a priori high frequency ERP");
1549 settings.remove(
"Config/Use external a priori mean gradients");
1550 settings.remove(
"Config/External a priori sites postions file name");
1551 settings.remove(
"Config/External a priori sites velocities file name");
1552 settings.remove(
"Config/External a priori sources positions file name");
1553 settings.remove(
"Config/External a priori axis offsets file name");
1554 settings.remove(
"Config/External a priori high frequency ERP file name");
1555 settings.remove(
"Config/External a priori mean gradients file name");
1556 settings.remove(
"Config/Have to apply ocean tides contribution");
1557 settings.remove(
"Config/Have to apply pole tide contribution");
1558 settings.remove(
"Config/Have to apply earth tide contribution");
1559 settings.remove(
"Config/Have to apply wobble Px contribution");
1560 settings.remove(
"Config/Have to apply wobble Py contribution");
1561 settings.remove(
"Config/Have to apply axis offset contribution");
1562 settings.remove(
"Config/Have to apply nutation high frequency contribution");
1563 settings.remove(
"Config/Have to apply polar motion high frequency contribution");
1564 settings.remove(
"Config/Have to apply UT1 high frequency contribution");
1565 settings.remove(
"Config/Have to apply feed correction contribution");
1566 settings.remove(
"Config/Have to apply tilt remvr contribution");
1567 settings.remove(
"Config/Have to apply Niel hydrostatic troposphere contribution");
1568 settings.remove(
"Config/Have to apply Niel wet troposphere contribution");
1569 settings.remove(
"Config/Have to apply unphase calibration contribution");
1578 if (!shouldInvokeSystemWideWizard)
1580 settings.setValue(
"Identities/UserName",
1582 settings.setValue(
"Identities/UserEmailAddress",
1584 settings.setValue(
"Identities/UserDefaultInitials",
1587 settings.setValue(
"Identities/AcFullName",
1589 settings.setValue(
"Identities/AcAbbreviatedName",
1591 settings.setValue(
"Identities/AcShortAbbreviatedName",
1595 if (!shouldInvokeSystemWideWizard)
1597 settings.setValue(
"Setup/Path2Home",
1600 settings.setValue(
"Setup/Path2CatalogInterfaceExec",
1602 settings.setValue(
"Setup/Path2DbhFiles",
1604 settings.setValue(
"Setup/Path2OpenDbFiles",
1606 settings.setValue(
"Setup/Path2VgosDaFiles",
1608 settings.setValue(
"Setup/Path2APrioriFiles",
1610 settings.setValue(
"Setup/Path2MasterFiles",
1612 settings.setValue(
"Setup/Path2SpoolfileOutput",
1614 settings.setValue(
"Setup/Path2NotUsedObsFileOutput",
1616 settings.setValue(
"Setup/Path2ReportsOutput",
1618 settings.setValue(
"Setup/Path2NgsFilesOutput",
1620 settings.setValue(
"Setup/Path2PlotterFilesOutput",
1622 settings.setValue(
"Setup/Path2IntermediateResults",
1625 if (!shouldInvokeSystemWideWizard)
1627 settings.setValue(
"Setup/AutoSavingMode",
1629 settings.setValue(
"Setup/Have2UpdateCatalog",
1631 settings.setValue(
"Setup/Have2AlterSessionCode",
1633 settings.setValue(
"Setup/Have2KeepSpoolfileReports",
1635 settings.setValue(
"Setup/Have2WarnClosingWindow",
1637 settings.setValue(
"Setup/IsShortScreen",
1639 settings.setValue(
"Setup/MainWinWidth",
1641 settings.setValue(
"Setup/MainWinHeight",
1643 settings.setValue(
"Setup/MainWinPosX",
1645 settings.setValue(
"Setup/MainWinPosY",
1648 settings.setValue(
"Setup/SeWinWidth",
1650 settings.setValue(
"Setup/SeWinHeight",
1652 settings.setValue(
"Setup/Have2AutoloadAllBands",
1654 settings.setValue(
"Setup/IsBandPlotPerSrcView",
1656 settings.setValue(
"Setup/PlotterOutputFormat",
1658 settings.setValue(
"Setup/LnfsFileName",
1660 settings.setValue(
"Setup/LnfsOriginType",
1662 settings.setValue(
"Setup/LnfsIsThroughCatalog",
1665 settings.setValue(
"Setup/Path2AuxLogs",
1667 if (!shouldInvokeSystemWideWizard)
1669 settings.setValue(
"Setup/Have2SavePerSessionLog",
1671 settings.setValue(
"Setup/ExecExternalCommand",
1673 settings.setValue(
"Setup/ExternalCommand",
1678 if (!shouldInvokeSystemWideWizard)
1680 settings.setValue(
"Config/QualityCodeThreshold",
1682 settings.setValue(
"Config/GoodQualityCodeAtStartup",
1684 settings.setValue(
"Config/UseGoodQualityCodeAtStartup",
1686 settings.setValue(
"Config/DoWeightCorrection",
1688 settings.setValue(
"Config/UseQualityCodeG",
1690 settings.setValue(
"Config/UseQualityCodeH",
1692 settings.setValue(
"Config/IsSolveCompatible",
1694 settings.setValue(
"Config/UseDynamicClockBreaks",
1696 settings.setValue(
"Config/UseSolveObsSuppresionFlags",
1698 settings.setValue(
"Config/UseExternalWeights",
1700 settings.setValue(
"Config/WeightCorrectionMode",
1702 settings.setValue(
"Config/ExternalWeightsFileName",
1704 settings.setValue(
"Config/InitAuxSigma4Delay",
1706 settings.setValue(
"Config/InitAuxSigma4Rate",
1708 settings.setValue(
"Config/MinAuxSigma4Delay",
1710 settings.setValue(
"Config/MinAuxSigma4Rate",
1712 settings.setValue(
"Config/EstimatorPwlMode",
1714 settings.setValue(
"Config/OutlierProcessingMode",
1716 settings.setValue(
"Config/OutlierProcessingAction",
1718 settings.setValue(
"Config/OutlierProcessingThreshold",
1720 settings.setValue(
"Config/OutlierProcessingIterationsLimit",
1722 settings.setValue(
"Config/OutlierProcessingSuppressWC",
1724 settings.setValue(
"Config/OutlierProcessingIsSolveCompatible",
1726 settings.setValue(
"Config/OutlierProcessingHave2NormalizeResiduals",
1728 settings.setValue(
"Config/DoIono4Sbd",
1730 settings.setValue(
"Config/DoClockBreakDetectionMode_1",
1732 settings.setValue(
"Config/DoOutlierEliminationMode_1",
1734 settings.setValue(
"Config/IsActiveBandFollowsTab",
1736 settings.setValue(
"Config/IsObservableFollowsPlot",
1738 settings.setValue(
"Config/UseExternalAPrioriSitePostions",
1740 settings.setValue(
"Config/UseExternalAPrioriSiteVelocities",
1742 settings.setValue(
"Config/UseExternalAPrioriSourcePostions",
1744 settings.setValue(
"Config/UseExternalAPrioriSourceSsm",
1746 settings.setValue(
"Config/UseExternalAPrioriEop",
1748 settings.setValue(
"Config/UseExternalAPrioriAxisOffsets",
1750 settings.setValue(
"Config/UseExternalAPrioriHighFrequencyErp",
1752 settings.setValue(
"Config/UseExternalAPrioriMeanGradients",
1754 settings.setValue(
"Config/ExternalAPrioriSitePostionsFileName",
1756 settings.setValue(
"Config/ExternalAPrioriSiteVelocitiesFileName",
1758 settings.setValue(
"Config/ExternalAPrioriSourcePostionsFileName",
1760 settings.setValue(
"Config/ExternalAPrioriSourceSsmFileName",
1762 settings.setValue(
"Config/ExternalAPrioriEopFileName",
1764 settings.setValue(
"Config/ExternalAPrioriAxisOffsetFileName",
1766 settings.setValue(
"Config/ExternalAPrioriHighFrequencyErpFileName",
1768 settings.setValue(
"Config/ExternalAPrioriMeanGradientsFileName",
1770 settings.setValue(
"Config/EccentricitiesFileName",
1772 settings.setValue(
"Config/Have2ApplySourceSsm",
1775 settings.setValue(
"Config/FlybyTropZenithMap",
1778 settings.setValue(
"Config/Have2ApplyOceanTidesContribution",
1780 settings.setValue(
"Config/Have2ApplyPoleTideContribution",
1782 settings.setValue(
"Config/Have2ApplyEarthTideContribution",
1784 settings.setValue(
"Config/Have2ApplyWobblePxContribution",
1786 settings.setValue(
"Config/Have2ApplyWobblePyContribution",
1788 settings.setValue(
"Config/Have2ApplyAxisOffsetContribution",
1790 settings.setValue(
"Config/Have2ApplyNutationHighFrequencyContribution",
1792 settings.setValue(
"Config/Have2ApplyPolarMotionHighFrequencyContribution",
1794 settings.setValue(
"Config/Have2ApplyUT1HighFrequencyContribution",
1796 settings.setValue(
"Config/Have2ApplyFeedCorrectionContribution",
1798 settings.setValue(
"Config/Have2ApplyTiltRemvrContribution",
1800 settings.setValue(
"Config/Have2ApplyNielHydrostaticTroposphereContribution",
1802 settings.setValue(
"Config/Have2ApplyNielWetTroposphereContribution",
1804 settings.setValue(
"Config/Have2ApplyUnphaseCalibrationContribution",
1806 settings.setValue(
"Config/Have2ApplyOceanPoleTideContribution",
1808 settings.setValue(
"Config/Have2ApplyGpsIonoContrib",
1810 settings.setValue(
"Config/Have2ApplyPolarMotionLibrationContribution",
1812 settings.setValue(
"Config/Have2ApplyUT1LibrationContribution",
1814 settings.setValue(
"Config/Have2ApplyOldOceanTidesContribution",
1816 settings.setValue(
"Config/Have2ApplyOldPoleTideContribution",
1818 settings.setValue(
"Config/IsNoviceUser",
1835 if (!shouldInvokeSystemWideWizard)
1840 if (!shouldInvokeSystemWideWizard)
1842 settings.remove(
"Config/AutomaticProcessingByNetId");
1843 settings.beginWriteArray(
"Config/AutomaticProcessingByNetId",
config.
apByNetId().size());
1845 for (QMap<QString, SgTaskConfig::AutomaticProcessing>::const_iterator it=
config.
apByNetId().begin();
1848 settings.setArrayIndex(idx);
1851 const QString &
id=it.key();
1852 settings.setValue(
"networkId",
id);
1859 settings.setValue(
"doWeights", ap.
doWeights_);
1863 settings.endArray();
1874 ": processing " + databaseName +
" session");
NsMainWindow * mainWindow
int executeScript(const QString &scriptFileName, const QList< QString > args, bool hasDisplay)
SgVersion nuSolveVersion("nuSolve", 0, 8, 2, "Dark Hollow Falls (rc2)", SgMJD(2023, 4, 3, 10, 59))
QString interval2Str(double days)
double signum(const double x)
SgVersion libraryVersion("SgLib", 0, 8, 2, "Compton Peak (rc2)", SgMJD(2023, 4, 3, 10, 59))
bool importSession(bool guiExpected)
void setExecExternalCommand(bool b)
void setPath2APrioriFiles(const QString &)
const QString & getPath2AuxLogs() const
void setPath2NgsOutput(const QString &)
int getMainWinHeight() const
void setPath2DbhFiles(const QString &)
void setUpBinaryIdentities(const QString &)
void setHave2LoadImmatureSession(bool)
QString path2(const QString &) const
AutoSaving getAutoSavingMode() const
const QString & getPath2ReportOutput() const
const QString & getPath2CatNuInterfaceExec() const
void setPath2SpoolFileOutput(const QString &)
const QString & getPath2MasterFiles() const
void setPath2VgosDaFiles(const QString &path)
bool getExecExternalCommand() const
bool getHave2SavePerSessionLog() const
const QString & getPath2SpoolFileOutput() const
bool getHave2AutoloadAllBands() const
const QString & getExternalCommand() const
void setPath2IntermediateResults(const QString &)
void setLnfsOriginType(SgVlbiSessionInfo::OriginType)
void setHave2SavePerSessionLog(bool)
bool getHave2MaskSessionCode() const
SgPlot::OutputFormat getPlotterOutputFormat() const
const QString & getPath2Home() const
void setHave2ForceAutomaticProcessing(bool)
void setPath2CatNuInterfaceExec(const QString &)
void setPath2Home(const QString &)
void setPath2ReportOutput(const QString &)
int getMainWinWidth() const
SgIdentities & identities()
bool getHave2KeepSpoolFileReports() const
void setHave2WarnCloseWindow(bool)
int getSeWinWidth() const
void setPath2NotUsedObsFileOutput(const QString &)
const QString & getPath2APrioriFiles() const
void setPlotterOutputFormat(SgPlot::OutputFormat)
void setMainWinWidth(int)
bool getIsShortScreen() const
const QString & getPath2VgosDaFiles() const
bool getHave2UpdateCatalog() const
const QString & getLnfsFileName() const
const QString & getPath2DbhFiles() const
void setIsBandPlotPerSrcView(bool)
int getMainWinPosX() const
int getSeWinHeight() const
void setPath2PlotterOutput(const QString &)
const QString & getPath2PlotterOutput() const
void setHave2KeepSpoolFileReports(bool)
void setPath2VgosDbFiles(const QString &)
const QString & getPath2VgosDbFiles() const
bool getHave2WarnCloseWindow() const
void setPath2MasterFiles(const QString &)
void setHave2AutoloadAllBands(bool)
void setLnfsFileName(const QString &)
bool getLnfsIsThroughCatalog() const
void setLnfsIsThroughCatalog(bool)
SgVlbiSessionInfo::OriginType getLnfsOriginType() const
void setHave2SkipAutomaticProcessing(bool)
int getMainWinPosY() const
const QString & getPath2NgsOutput() const
bool getIsBandPlotPerSrcView() const
void setHave2MaskSessionCode(bool)
void setHave2UpdateCatalog(bool)
void setIsShortScreen(bool)
void setPath2AuxLogs(const QString &)
const QString & getPath2NotUsedObsFileOutput() const
const QString & getPath2IntermediateResults() const
void setAutoSavingMode(AutoSaving)
void setExternalCommand(const QString &command)
void setMainWinHeight(int)
static int serialNumber()
const QString & getAcAbbrevName() const
const QString & getAcAbbName() const
void setAcAbbrevName(const QString &)
void setAcFullName(const QString &)
const QString & getUserEmailAddress() const
void setAcAbbName(const QString &)
const QString & getMachineMachineName() const
const QString & getMachineRelease() const
const QString & getMachineNodeName() const
const QString & getUserDefaultInitials() const
const QString & getAcFullName() const
void setUserDefaultInitials(const QString &)
void setUserEmailAddress(const QString &)
void setUserName(const QString &)
const QString & getUserName() const
const QString & getMachineSysName() const
virtual void write(LogLevel, quint32, const QString &, bool=false)
bool getIsStoreInFile() const
void attachSupplementLog(const QString &name, SgLogger *auxLogger)
void setIsStoreInFile(bool isStoreInFile)
void setLogFacility(LogLevel lvl, quint32 f)
void setFileName(const QString &fileName)
void setIsNeedTimeMark(bool isNeedTimeMark)
quint32 getLogFacility(LogLevel lvl) const
void setDirName(const QString &dirName)
virtual void clearSpool()
void setCapacity(int capacity)
bool getIsNeedTimeMark() const
bool getUseFullDateFormat() const
void detachSupplementLog(const QString &name)
void setUseFullDateFormat(bool useFullDateFormat)
@ F_DDMonYYYY
Date: 2010 Apr 02.
QString toString(Format format=F_Verbose) const
static SgMJD currentMJD()
void setUseExtAPrioriHiFyErp(bool)
const QString & getEccentricitiesFileName() const
void setHave2ApplyUt1OceanTideHFContrib(bool b)
bool getUseQualityCodeH() const
bool getHave2ApplyNutationHFContrib() const
const QString & getExtAPrioriSitesVelocitiesFileName() const
bool getDoIonoCorrection4SBD() const
bool getIsObservableFollowsPlot() const
const QString & getExtWeightsFileName() const
bool getUseExtAPrioriSitesVelocities() const
void setUseGoodQualityCodeAtStartup(bool)
void setHave2ApplyGpsIonoContrib(bool b)
bool getHave2ApplyOldPoleTideContrib() const
void setHave2ApplySourceSsm(bool b)
void setName(const QString &)
void setExtAPrioriMeanGradientsFileName(const QString &)
void setInitAuxSigma4Rate(double s)
void setUseExtAPrioriSitesVelocities(bool)
void setDoIonoCorrection4SBD(bool)
void setUseExtAPrioriAxisOffsets(bool)
void setDoWeightCorrection(bool)
bool getUseExtAPrioriSourceSsm() const
void setExtAPrioriHiFyErpFileName(const QString &)
void setUseQualityCodeG(bool)
OutliersProcessingMode getOpMode() const
bool getUseExtAPrioriHiFyErp() const
double getMinAuxSigma4Rate() const
void setUseExternalWeights(bool)
void setHave2ApplyEarthTideContrib(bool b)
bool getUseExtAPrioriSitesPositions() const
bool getUseExtAPrioriErp() const
bool getOpIsSolveCompatible() const
void setWcMode(WeightCorrectionMode)
bool getIsSolveCompatible() const
void setIsObservableFollowsPlot(bool)
void setHave2ApplyOceanPoleTideContrib(bool b)
void setHave2ApplyTiltRemvrContrib(bool b)
bool getDoWeightCorrection() const
bool getUseExtAPrioriMeanGradients() const
void setExtWeightsFileName(const QString &)
bool getHave2ApplyEarthTideContrib() const
EstimatorPwlMode getPwlMode() const
bool getDoClockBreakDetectionMode1() const
void setDoClockBreakDetectionMode1(bool)
WeightCorrectionMode getWcMode() const
void setOpThreshold(double)
void setIsNoviceUser(bool is)
int getGoodQualityCodeAtStartup() const
void setGoodQualityCodeAtStartup(int)
bool getHave2ApplyPyContrib() const
const QString & getExtAPrioriSitesPositionsFileName() const
void setDoOutliersEliminationMode1(bool)
const QString & getExtAPrioriHiFyErpFileName() const
void setExtAPrioriSourcesPositionsFileName(const QString &)
QMap< QString, AutomaticProcessing > & apByNetId()
void setFlybyTropZenithMap(TropZenithMap m)
bool getUseExternalWeights() const
void setInitAuxSigma4Delay(double s)
bool getHave2ApplyOceanTideContrib() const
int getQualityCodeThreshold() const
bool getUseExtAPrioriSourcesPositions() const
void setEccentricitiesFileName(const QString &)
double getMinAuxSigma4Delay() const
void setIsActiveBandFollowsTab(bool)
double getInitAuxSigma4Delay() const
void setIsSolveCompatible(bool)
bool getHave2ApplyNdryContrib() const
void setUseExtAPrioriMeanGradients(bool)
bool getHave2ApplyUt1OceanTideHFContrib() const
bool getIsNoviceUser() const
bool getUseQualityCodeG() const
void setUseQualityCodeH(bool)
bool getHave2ApplyPxyOceanTideHFContrib() const
void setUseExtAPrioriSourceSsm(bool)
void setPwlMode(EstimatorPwlMode)
const QString & getLastModifiedNetId() const
void setHave2ApplyOceanTideContrib(bool b)
bool getDoOutliersEliminationMode1() const
bool getHave2ApplyOldOceanTideContrib() const
void setUseSolveObsSuppresionFlags(bool)
void setOpIsSolveCompatible(bool)
void setExtAPrioriSourceSsmFileName(const QString &)
bool getHave2ApplyPoleTideContrib() const
bool getUseExtAPrioriAxisOffsets() const
void setHave2ApplyPoleTideContrib(bool b)
void setExtAPrioriSitesVelocitiesFileName(const QString &)
bool getHave2ApplyGpsIonoContrib() const
void setHave2ApplyOldPoleTideContrib(bool b)
bool getIsActiveBandFollowsTab() const
void setOpHave2SuppressWeightCorrection(bool)
bool getHave2ApplyPxyLibrationContrib() const
void setHave2ApplyNdryContrib(bool b)
void setHave2ApplyPxyOceanTideHFContrib(bool b)
bool getUseSolveObsSuppresionFlags() const
bool getHave2ApplyTiltRemvrContrib() const
TropZenithMap getFlybyTropZenithMap() const
bool getUseDynamicClockBreaks() const
void setMinAuxSigma4Rate(double s)
void setOpMode(OutliersProcessingMode)
int getOpIterationsLimit() const
void setUseExtAPrioriErp(bool)
bool getOpHave2NormalizeResiduals() const
void setOpIterationsLimit(int)
void setExtAPrioriErpFileName(const QString &)
void setUseExtAPrioriSourcesPositions(bool)
void setExtAPrioriAxisOffsetsFileName(const QString &)
const QString & getExtAPrioriMeanGradientsFileName() const
void setHave2ApplyNwetContrib(bool b)
void setQualityCodeThreshold(int)
void setOpHave2NormalizeResiduals(bool)
void setHave2ApplyOldOceanTideContrib(bool b)
const QString & getExtAPrioriSourcesPositionsFileName() const
bool getHave2ApplySourceSsm() const
bool getHave2ApplyPxContrib() const
bool getHave2ApplyOceanPoleTideContrib() const
double getOpThreshold() const
void setHave2ApplyPxyLibrationContrib(bool b)
void setMinAuxSigma4Delay(double s)
void setHave2ApplyPyContrib(bool b)
bool getUseGoodQualityCodeAtStartup() const
double getInitAuxSigma4Rate() const
void setHave2ApplyPxContrib(bool b)
void setHave2ApplyFeedCorrContrib(bool b)
const QString & getExtAPrioriAxisOffsetsFileName() const
void setUseDynamicClockBreaks(bool)
void setHave2ApplyNutationHFContrib(bool b)
void setHave2ApplyUt1LibrationContrib(bool b)
void setHave2ApplyAxisOffsetContrib(bool b)
void setUseExtAPrioriSitesPositions(bool)
void setHave2ApplyUnPhaseCalContrib(bool b)
bool getHave2ApplyFeedCorrContrib() const
bool getHave2ApplyNwetContrib() const
bool getOpHave2SuppressWeightCorrection() const
const QString & getExtAPrioriErpFileName() const
void setLastModifiedNetId(const QString &netId)
bool getHave2ApplyUt1LibrationContrib() const
bool getHave2ApplyUnPhaseCalContrib() const
void setOpAction(OutliersProcessingAction)
void setExtAPrioriSitesPositionsFileName(const QString &)
OutliersProcessingAction getOpAction() const
bool getHave2ApplyAxisOffsetContrib() const
const QString & getExtAPrioriSourceSsmFileName() const
void setCodeName(const QString &)
int getMinorNumber() const
const SgMJD & getReleaseEpoch() const
const QString & getSoftwareName() const
QString name(NameFormat fmt=NF_Human) const
int getTeenyNumber() const
const QString & getCodeName() const
void setSoftwareName(const QString &)
int getMajorNumber() const
@ OT_DBH
observations are from database files provided by correlators;
@ OT_VDB
observations are from vgosDb data tree;
static bool guessSessionByWrapperFileName(const QString &inputArg, const QString &path2VgosDb, QString &path2wrapperFile, QString &wrapperFileName, QString &sessionName, int &version)
static bool guessWrapperFileNameBySession(const QString &inputArg, const QString &path2VgosDb, const QString &acAbbName, QString &path2wrapperFile, QString &wrapperFileName, QString &sessionName, int &version, bool noYears=false)
const QString origAppName("nuSolve")
struct sigaction saveSIGHUP
void loadSettings(QSettings &)
const QString origOrgName("NASA GSFC")
int main(int argc, char **argv)
void checkSettings(QSettings &)
void loadSettingsOldStyle(QSettings &)
const QString origDmnName("gsfc.nasa.gov")
struct sigaction saveSIGDFL
struct sigaction saveSIGABRT
struct sigaction saveSIGBUS
const int currentSettingsVersion(20170328)
struct sigaction saveSIGFPE
SgVersion storedLibraryVersion
struct sigaction saveSIGILL
const char * argp_program_bug_address
static int parse_opt(int key, char *arg, struct argp_state *state)
struct sigaction saveSIGSEGV
struct sigaction saveSIGINT
struct sigaction saveSIGTERM
SgVersion storedNuSolveVersion
void rmOldStyleSettings(QSettings &)
int processSession(const QString &databaseName, SgVlbiSessionInfo::OriginType fmt)
void handlerSIGs(int signum)
SgParametersDescriptor parametersDescriptor
void saveSettings(QSettings &, bool shouldInvokeSystemWideWizard)
bool doClockBreaksDetection_
bool doIonoCorrection4SBD_
FinalSolution finalSolution_
bool doIonoCorrection4All_
bool doReportNotUsedData_
bool have2LoadImmatureSession
bool have2SkipAutomaticProcessing
bool have2ForceAutomaticProcessing
bool shouldInvokeSystemWideWizard
SgVlbiSessionInfo::OriginType ofFmt
bool isForcedStandaloneMode