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>
104 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);
350 for (
int i=0; i<argc; i++)
351 command += QString(argv[i]) +
" ";
361 struct argp_option argp_options[] =
363 {0, 0, 0, 0,
"Configuration control:", 10},
364 {
"alt",
'a',
"STRING", 0,
365 "Use an alternative configuration STRING"},
366 {
"default-setup",
'd', 0, 0,
367 "Use default setup (WARNING: existing configuration will be overwriten)"},
369 {0, 0, 0, 0,
"Script mode:", 11},
370 {
"script",
't',
"STRING", 0,
371 "Execute a script STRING. "},
373 {0, 0, 0, 0,
"Automatic processing (GUI mode):", 12},
374 {
"force-automatic",
'm', 0, 0,
375 "Force executing of automatic processing"},
376 {
"no-automatic",
'n', 0, 0,
377 "Do not run automatic processing even if a session is eligible for it"},
379 {0, 0, 0, 0,
"Input control:", 13},
380 {
"catalog",
'c', 0, 0,
381 "Force run in the catalog aware mode (opposite to '-s')"},
382 {
"format",
'f',
"STRING", 0,
383 "Set the data storage format of the provided session to STRING (either \"dbh\" or \"vgos\")"},
384 {
"read-all",
'l', 0, 0,
385 "Read all databases, even that that lack of essential information"},
386 {
"standalone",
's', 0, 0,
387 "Force run in the standalone mode (opposite to '-c')"},
389 {0, 0, 0, 0,
"Invocation of startup wizard:", 14},
390 {
"sys-wide-wizard",
'W', 0, 0,
391 "Run startup wizard for the system-wide settings"},
392 {
"wizard",
'w', 0, 0,
393 "Force call of the startup wizard"},
395 {0, 0, 0, 0,
"Execution control:", 15},
396 {
"no-interruptions",
'i', 0, 0,
397 "Do not catch interruptions"},
399 {0, 0, 0, 0,
"Operation modes:", -1},
400 {
"version",
'V', 0, 0,
401 "Print program version"},
406 QString salute(
"A program to make preliminary analysis of a geodetic "
414 QString(
"\n\nThe program nuSolve is a part of nuSolve package. For datails see "
415 "\"nuSolve User Guide\", a part of nuSolve distribution. You can get the latest version of "
416 "nuSolve at\n\t\thttps://sourceforge.net/projects/nusolve");
418 struct argp argp={argp_options,
parse_opt,
419 "\n\nDATABASE\nSCRIPT [SCRIPT OPTIONS]", salute.toLatin1()};
421 argp_parse (&argp, argc, argv, 0, 0, &options);
429 sigemptyset(&act.sa_mask);
442 isFirstRun = options.
settings->allKeys().size()>0 ? false :
true;
452 ": using alternative config name \"" + options.
altSetupName +
"\"");
469 ": combination of -c and -s options has no effect");
475 ": combination of -m and -n options has no effect");
485 ": forced run in the catalog aware mode");
493 ": forced run in the standalone mode");
499 ": the automatic process mode is supressed");
505 ": forced call the automatic processing");
514 if (options.
settings->contains(
"Version/LibraryName"))
542 bool hasDisplay=
false;
543 const char* envDisplay=NULL;
544 if ((envDisplay=getenv(
"DISPLAY")) && strlen(envDisplay))
549 QApplication app(argc, argv);
554 QCoreApplication app(argc, argv);
569 ": cannot proccess the database \"" + options.
databaseName +
"\": no config found");
576 QString sessionName(
"");
583 if (QFile::exists(sTmp))
588 ": cannot proccess the database \"" + options.
databaseName +
"\": file does not exist");
594 QRegExp reDbName(
".*([0-9]{2}[A-Z]{3}[0-9]{2}[A-Z0-9]{1,2}).*");
595 QRegExp reDbVerName(
".*([0-9]{2}[A-Z]{3}[0-9]{2}[A-Z0-9]{1,2})_V([0-9]{3}).*");
599 sessionName = reDbVerName.cap(1);
600 sVer = reDbVerName.cap(2);
603 sessionName = reDbName.cap(1);
607 ": cannot proccess the database \"" + options.
databaseName +
"\": does not look like a "
615 QString path2wrapperFile(
"");
616 QString wrapperFileName(
"");
618 QRegExp reDatabaseName(
"^[0-9]{2}[A-Z]{3}[0-9]{2}[A-Z0-9]{1,2}$");
619 QRegExp reDatabaseVersionName(
"^[0-9]{2}[A-Z]{3}[0-9]{2}[A-Z0-9]{1,2}_V[0-9]{3}$");
626 path2wrapperFile, wrapperFileName, sessionName, version);
632 path2wrapperFile, wrapperFileName, sessionName, version);
637 ": cannot proccess the database \"" + options.
databaseName +
"\": file does not exist");
641 options.
databaseName = path2wrapperFile +
"/" + wrapperFileName;
645 ": cannot proccess the database \"" + options.
databaseName +
"\": file does not exist");
652 QApplication app(argc, argv,
false);
693 ": starting command line version");
710 ": User command: \"" + command +
"\"");
721 ": the elapsed time to process the session " + sessionName +
" is: " +
723 QString(
"").sprintf(
"%.2f", (finisEpoch - startEpoch)*86400.0) +
" sec)");
727 ": processing of the database " + options.
databaseName +
" has failed");
742 QApplication app(argc, argv);
743 QIcon appIcon(QPixmap(
":/images/icon_2.5.png"));
744 app.setWindowIcon(appIcon);
746 if (options.
settings->contains(
"Setup/GuiStyle"))
748 QString appStyle(options.
settings->value(
"Setup/GuiStyle").toString());
749 if (!appStyle.contains(
"GTK"))
751 QApplication::setStyle(appStyle);
752 QFont font(
"Sans Serif", 10);
753 if (options.
settings->contains(
"Setup/GuiFont"))
754 font = options.
settings->value(
"Setup/GuiFont").value<QFont>();
755 QApplication::setFont(font);
767 QSettings *swSettings =
769 if (!swSettings->isWritable())
772 ": cannot write system wide config");
781 ": using an alternative config name, system wide config edit request ignored");
785 if ((rc=startup.exec())==0)
824 if (settings.contains(
"Version/LibraryName"))
826 QString savedSoftName;
827 QString savedCodeName;
828 int savedMajorNum, savedMinorNum, savedTeenyNum, savedSettingsVersion;
830 savedSoftName = settings.value(
"Version/LibraryName",
"N/A").toString();
831 savedCodeName = settings.value(
"Version/LibraryComments",
"N/A").toString();
832 savedMajorNum = settings.value(
"Version/LibraryMajor", 0).toInt();
833 savedMinorNum = settings.value(
"Version/LibraryMinor", 0).toInt();
834 savedTeenyNum = settings.value(
"Version/LibraryTeeny", 0).toInt();
841 savedSoftName = settings.value(
"Version/nuSolveName",
"N/A").toString();
842 savedCodeName = settings.value(
"Version/nuSolveComments",
"N/A").toString();
843 savedMajorNum = settings.value(
"Version/nuSolveMajor", 0).toInt();
844 savedMinorNum = settings.value(
"Version/nuSolveMinor", 0).toInt();
845 savedTeenyNum = settings.value(
"Version/nuSolveTeeny", 0).toInt();
858 ": you are using an obsolete version, " +
nuSolveVersion.
name() +
", of the software "
861 savedSettingsVersion = settings.value(
"Version/nuSolveSettings", 0).toInt();
867 if (savedSettingsVersion == 0)
870 iMode = settings.value(
"Config/EstimatorPwlMode",
config.
getPwlMode()).toInt();
881 ": unrecognized PWL mode: " + QString(
"").setNum(iMode));
884 ": the PWL mode has been adjusted");
905 settings.value(
"Identities/UserName",
908 settings.value(
"Identities/UserEmailAddress",
911 settings.value(
"Identities/UserDefaultInitials",
914 settings.value(
"Identities/AcFullName",
917 settings.value(
"Identities/AcAbbreviatedName",
920 settings.value(
"Identities/AcShortAbbreviatedName",
926 settings.value(
"Setup/Path2Home",
929 settings.value(
"Setup/Path2CatalogInterfaceExec",
932 settings.value(
"Setup/Path2DbhFiles",
935 settings.value(
"Setup/Path2OpenDbFiles",
938 settings.value(
"Setup/Path2VgosDaFiles",
941 settings.value(
"Setup/Path2APrioriFiles",
944 settings.value(
"Setup/Path2MasterFiles",
947 settings.value(
"Setup/Path2SpoolfileOutput",
950 settings.value(
"Setup/Path2NotUsedObsFileOutput",
953 settings.value(
"Setup/Path2ReportsOutput",
956 settings.value(
"Setup/Path2NgsFilesOutput",
959 settings.value(
"Setup/Path2PlotterFilesOutput",
962 settings.value(
"Setup/Path2IntermediateResults",
965 settings.value(
"Setup/AutoSavingMode",
968 settings.value(
"Setup/Have2UpdateCatalog",
971 settings.value(
"Setup/Have2AlterSessionCode",
974 settings.value(
"Setup/Have2KeepSpoolfileReports",
977 settings.value(
"Setup/Have2WarnClosingWindow",
980 settings.value(
"Setup/IsShortScreen",
983 settings.value(
"Setup/MainWinWidth",
986 settings.value(
"Setup/MainWinHeight",
989 settings.value(
"Setup/MainWinPosX",
992 settings.value(
"Setup/MainWinPosY",
996 settings.value(
"Setup/SeWinWidth",
999 settings.value(
"Setup/SeWinHeight",
1002 settings.value(
"Setup/Have2AutoloadAllBands",
1005 settings.value(
"Setup/IsBandPlotPerSrcView",
1008 settings.value(
"Setup/PlotterOutputFormat",
1011 settings.value(
"Setup/LnfsFileName",
1014 settings.value(
"Setup/LnfsOriginType",
1017 settings.value(
"Setup/LnfsIsThroughCatalog",
1020 settings.value(
"Setup/Path2AuxLogs",
1023 settings.value(
"Setup/Have2SavePerSessionLog",
1026 settings.value(
"Setup/ExecExternalCommand",
1029 settings.value(
"Setup/ExternalCommand",
1035 settings.value(
"Config/QualityCodeThreshold",
1038 settings.value(
"Config/GoodQualityCodeAtStartup",
1041 settings.value(
"Config/UseGoodQualityCodeAtStartup",
1044 settings.value(
"Config/DoWeightCorrection",
1047 settings.value(
"Config/UseQualityCodeG",
1050 settings.value(
"Config/UseQualityCodeH",
1053 settings.value(
"Config/IsSolveCompatible",
1056 settings.value(
"Config/UseDynamicClockBreaks",
1059 settings.value(
"Config/UseSolveObsSuppresionFlags",
1062 settings.value(
"Config/UseExternalWeights",
1065 settings.value(
"Config/WeightCorrectionMode",
1068 settings.value(
"Config/ExternalWeightsFileName",
1071 settings.value(
"Config/InitAuxSigma4Delay",
1074 settings.value(
"Config/InitAuxSigma4Rate",
1077 settings.value(
"Config/MinAuxSigma4Delay",
1080 settings.value(
"Config/MinAuxSigma4Rate",
1083 settings.value(
"Config/EstimatorPwlMode",
1086 settings.value(
"Config/OutlierProcessingMode",
1089 settings.value(
"Config/OutlierProcessingAction",
1092 settings.value(
"Config/OutlierProcessingThreshold",
1095 settings.value(
"Config/OutlierProcessingIterationsLimit",
1098 settings.value(
"Config/OutlierProcessingSuppressWC",
1101 settings.value(
"Config/OutlierProcessingIsSolveCompatible",
1104 settings.value(
"Config/OutlierProcessingHave2NormalizeResiduals",
1107 settings.value(
"Config/DoIono4Sbd",
1110 settings.value(
"Config/DoClockBreakDetectionMode_1",
1113 settings.value(
"Config/DoOutlierEliminationMode_1",
1116 settings.value(
"Config/IsActiveBandFollowsTab",
1119 settings.value(
"Config/IsObservableFollowsPlot",
1122 settings.value(
"Config/UseExternalAPrioriSitePostions",
1125 settings.value(
"Config/UseExternalAPrioriSiteVelocities",
1128 settings.value(
"Config/UseExternalAPrioriSourcePostions",
1131 settings.value(
"Config/UseExternalAPrioriSourceSsm",
1134 settings.value(
"Config/UseExternalAPrioriEop",
1137 settings.value(
"Config/UseExternalAPrioriAxisOffsets",
1140 settings.value(
"Config/UseExternalAPrioriHighFrequencyErp",
1143 settings.value(
"Config/UseExternalAPrioriMeanGradients",
1146 settings.value(
"Config/ExternalAPrioriSitePostionsFileName",
1149 settings.value(
"Config/ExternalAPrioriSiteVelocitiesFileName",
1152 settings.value(
"Config/ExternalAPrioriSourcePostionsFileName",
1155 settings.value(
"Config/ExternalAPrioriSourceSsmFileName",
1158 settings.value(
"Config/ExternalAPrioriEopFileName",
1161 settings.value(
"Config/ExternalAPrioriAxisOffsetFileName",
1164 settings.value(
"Config/ExternalAPrioriHighFrequencyErpFileName",
1167 settings.value(
"Config/ExternalAPrioriMeanGradientsFileName",
1170 settings.value(
"Config/EccentricitiesFileName",
1173 settings.value(
"Config/Have2ApplySourceSsm",
1177 settings.value(
"Config/FlybyTropZenithMap",
1181 settings.value(
"Config/Have2ApplyOceanTidesContribution",
1184 settings.value(
"Config/Have2ApplyPoleTideContribution",
1187 settings.value(
"Config/Have2ApplyEarthTideContribution",
1190 settings.value(
"Config/Have2ApplyWobblePxContribution",
1193 settings.value(
"Config/Have2ApplyWobblePyContribution",
1196 settings.value(
"Config/Have2ApplyAxisOffsetContribution",
1199 settings.value(
"Config/Have2ApplyNutationHighFrequencyContribution",
1202 settings.value(
"Config/Have2ApplyPolarMotionHighFrequencyContribution",
1205 settings.value(
"Config/Have2ApplyUT1HighFrequencyContribution",
1208 settings.value(
"Config/Have2ApplyFeedCorrectionContribution",
1211 settings.value(
"Config/Have2ApplyTiltRemvrContribution",
1214 settings.value(
"Config/Have2ApplyNielHydrostaticTroposphereContribution",
1217 settings.value(
"Config/Have2ApplyNielWetTroposphereContribution",
1220 settings.value(
"Config/Have2ApplyUnphaseCalibrationContribution",
1223 settings.value(
"Config/Have2ApplyOceanPoleTideContribution",
1226 settings.value(
"Config/Have2ApplyGpsIonoContrib",
1229 settings.value(
"Config/Have2ApplyPolarMotionLibrationContribution",
1232 settings.value(
"Config/Have2ApplyUT1LibrationContribution",
1235 settings.value(
"Config/Have2ApplyOldOceanTidesContribution",
1238 settings.value(
"Config/Have2ApplyOldPoleTideContribution",
1241 settings.value(
"Config/IsNoviceUser",
1244 settings.value(
"Config/LastModifiedNetId",
1254 ": loadSettings(): using troposphere correction contributions were turned off, "
1255 "use flyby values instead");
1263 ": loadSettings(): the flyby troposphere mapping function is not set, "
1264 "the contributions were turned on");
1270 int size=settings.beginReadArray(
"Config/AutomaticProcessingByNetId");
1275 for (
int i=0; i<size; ++i)
1277 settings.setArrayIndex(i);
1281 netId = settings.value(
"networkId").toString();
1303 settings.endArray();
1314 settings.value(
"Identities/User name",
1317 settings.value(
"Identities/User email address",
1320 settings.value(
"Identities/User default initials",
1323 settings.value(
"Identities/Analysis center full name",
1326 settings.value(
"Identities/Analysis center abbreviated name",
1329 settings.value(
"Identities/Analysis center short abbreviated name",
1335 settings.value(
"Setup/Path to catalog interface exec",
1338 settings.value(
"Setup/Path to DBH files",
1341 settings.value(
"Setup/Path to a priori files",
1344 settings.value(
"Setup/Path to master files",
1347 settings.value(
"Setup/Path to spoolfile output",
1350 settings.value(
"Setup/Path to reports output",
1353 settings.value(
"Setup/Path to NGS files output",
1356 settings.value(
"Setup/Have to update catalog",
1359 settings.value(
"Setup/Have to alter session code",
1362 settings.value(
"Setup/Have to keep spoolfile reports",
1366 settings.value(
"Setup/Have to warn closing window",
1371 settings.value(
"Config/Do weight correction",
1374 settings.value(
"Config/Is SOLVE compatible",
1377 settings.value(
"Config/Use external weights",
1380 settings.value(
"Config/Weight correction mode",
1383 settings.value(
"Config/External weights file name",
1386 settings.value(
"Config/EstimatorPwlMode",
1389 settings.value(
"Config/Outlier processing mode",
1392 settings.value(
"Config/Outlier processing action",
1395 settings.value(
"Config/Outlier processing threshold",
1398 settings.value(
"Config/Outlier processing iterations limit",
1401 settings.value(
"Config/Outlier processing WC suppresion",
1404 settings.value(
"Config/Do iono 4SBD",
1407 settings.value(
"Config/Do CB Mode 1",
1410 settings.value(
"Config/Do OP Mode 1",
1413 settings.value(
"Config/Is active band follows tab",
1416 settings.value(
"Config/Is observable follows plotter",
1419 settings.value(
"Config/Use external a priori sites postions",
1422 settings.value(
"Config/Use external a priori sites velocities",
1425 settings.value(
"Config/Use external a priori sources positions",
1428 settings.value(
"Config/Use external a priori axis offsets",
1431 settings.value(
"Config/Use external a priori high frequency ERP",
1434 settings.value(
"Config/Use external a priori mean gradients",
1437 settings.value(
"Config/External a priori sites postions file name",
1440 settings.value(
"Config/External a priori sites velocities file name",
1443 settings.value(
"Config/External a priori sources positions file name",
1446 settings.value(
"Config/External a priori axis offsets file name",
1449 settings.value(
"Config/External a priori high frequency ERP file name",
1452 settings.value(
"Config/External a priori mean gradients file name",
1455 settings.value(
"Config/Have to apply ocean tides contribution",
1458 settings.value(
"Config/Have to apply pole tide contribution",
1461 settings.value(
"Config/Have to apply earth tide contribution",
1464 settings.value(
"Config/Have to apply wobble Px contribution",
1467 settings.value(
"Config/Have to apply wobble Py contribution",
1470 settings.value(
"Config/Have to apply axis offset contribution",
1473 settings.value(
"Config/Have to apply nutation high frequency contribution",
1476 settings.value(
"Config/Have to apply polar motion high frequency contribution",
1479 settings.value(
"Config/Have to apply UT1 high frequency contribution",
1482 settings.value(
"Config/Have to apply feed correction contribution",
1485 settings.value(
"Config/Have to apply tilt remvr contribution",
1488 settings.value(
"Config/Have to apply Niel hydrostatic troposphere contribution",
1491 settings.value(
"Config/Have to apply Niel wet troposphere contribution",
1494 settings.value(
"Config/Have to apply unphase calibration contribution",
1504 settings.remove(
"Identities/User name");
1505 settings.remove(
"Identities/User email address");
1506 settings.remove(
"Identities/User default initials");
1507 settings.remove(
"Identities/Analysis center full name");
1508 settings.remove(
"Identities/Analysis center abbreviated name");
1509 settings.remove(
"Identities/Analysis center short abbreviated name");
1513 settings.remove(
"Setup/Path to catalog interface exec");
1514 settings.remove(
"Setup/Path to DBH files");
1515 settings.remove(
"Setup/Path to a priori files");
1516 settings.remove(
"Setup/Path to master files");
1517 settings.remove(
"Setup/Path to spoolfile output");
1518 settings.remove(
"Setup/Path to reports output");
1519 settings.remove(
"Setup/Path to NGS files output");
1520 settings.remove(
"Setup/Have to update catalog");
1521 settings.remove(
"Setup/Have to alter session code");
1522 settings.remove(
"Setup/Have to keep spoolfile reports");
1524 settings.remove(
"Setup/Have to warn closing window");
1527 settings.remove(
"Config/Do weight correction");
1528 settings.remove(
"Config/Is SOLVE compatible");
1529 settings.remove(
"Config/Use external weights");
1530 settings.remove(
"Config/Weight correction mode");
1531 settings.remove(
"Config/External weights file name");
1532 settings.remove(
"Config/Outlier processing mode");
1533 settings.remove(
"Config/Outlier processing action");
1534 settings.remove(
"Config/Outlier processing threshold");
1535 settings.remove(
"Config/Outlier processing iterations limit");
1536 settings.remove(
"Config/Outlier processing WC suppresion");
1537 settings.remove(
"Config/Do iono 4SBD");
1538 settings.remove(
"Config/Do CB Mode 1");
1539 settings.remove(
"Config/Do OP Mode 1");
1540 settings.remove(
"Config/Is active band follows tab");
1541 settings.remove(
"Config/Is observable follows plotter");
1542 settings.remove(
"Config/Use external a priori sites postions");
1543 settings.remove(
"Config/Use external a priori sites velocities");
1544 settings.remove(
"Config/Use external a priori sources positions");
1545 settings.remove(
"Config/Use external a priori axis offsets");
1546 settings.remove(
"Config/Use external a priori high frequency ERP");
1547 settings.remove(
"Config/Use external a priori mean gradients");
1548 settings.remove(
"Config/External a priori sites postions file name");
1549 settings.remove(
"Config/External a priori sites velocities file name");
1550 settings.remove(
"Config/External a priori sources positions file name");
1551 settings.remove(
"Config/External a priori axis offsets file name");
1552 settings.remove(
"Config/External a priori high frequency ERP file name");
1553 settings.remove(
"Config/External a priori mean gradients file name");
1554 settings.remove(
"Config/Have to apply ocean tides contribution");
1555 settings.remove(
"Config/Have to apply pole tide contribution");
1556 settings.remove(
"Config/Have to apply earth tide contribution");
1557 settings.remove(
"Config/Have to apply wobble Px contribution");
1558 settings.remove(
"Config/Have to apply wobble Py contribution");
1559 settings.remove(
"Config/Have to apply axis offset contribution");
1560 settings.remove(
"Config/Have to apply nutation high frequency contribution");
1561 settings.remove(
"Config/Have to apply polar motion high frequency contribution");
1562 settings.remove(
"Config/Have to apply UT1 high frequency contribution");
1563 settings.remove(
"Config/Have to apply feed correction contribution");
1564 settings.remove(
"Config/Have to apply tilt remvr contribution");
1565 settings.remove(
"Config/Have to apply Niel hydrostatic troposphere contribution");
1566 settings.remove(
"Config/Have to apply Niel wet troposphere contribution");
1567 settings.remove(
"Config/Have to apply unphase calibration contribution");
1576 if (!shouldInvokeSystemWideWizard)
1578 settings.setValue(
"Identities/UserName",
1580 settings.setValue(
"Identities/UserEmailAddress",
1582 settings.setValue(
"Identities/UserDefaultInitials",
1585 settings.setValue(
"Identities/AcFullName",
1587 settings.setValue(
"Identities/AcAbbreviatedName",
1589 settings.setValue(
"Identities/AcShortAbbreviatedName",
1593 if (!shouldInvokeSystemWideWizard)
1595 settings.setValue(
"Setup/Path2Home",
1598 settings.setValue(
"Setup/Path2CatalogInterfaceExec",
1600 settings.setValue(
"Setup/Path2DbhFiles",
1602 settings.setValue(
"Setup/Path2OpenDbFiles",
1604 settings.setValue(
"Setup/Path2VgosDaFiles",
1606 settings.setValue(
"Setup/Path2APrioriFiles",
1608 settings.setValue(
"Setup/Path2MasterFiles",
1610 settings.setValue(
"Setup/Path2SpoolfileOutput",
1612 settings.setValue(
"Setup/Path2NotUsedObsFileOutput",
1614 settings.setValue(
"Setup/Path2ReportsOutput",
1616 settings.setValue(
"Setup/Path2NgsFilesOutput",
1618 settings.setValue(
"Setup/Path2PlotterFilesOutput",
1620 settings.setValue(
"Setup/Path2IntermediateResults",
1623 if (!shouldInvokeSystemWideWizard)
1625 settings.setValue(
"Setup/AutoSavingMode",
1627 settings.setValue(
"Setup/Have2UpdateCatalog",
1629 settings.setValue(
"Setup/Have2AlterSessionCode",
1631 settings.setValue(
"Setup/Have2KeepSpoolfileReports",
1633 settings.setValue(
"Setup/Have2WarnClosingWindow",
1635 settings.setValue(
"Setup/IsShortScreen",
1637 settings.setValue(
"Setup/MainWinWidth",
1639 settings.setValue(
"Setup/MainWinHeight",
1641 settings.setValue(
"Setup/MainWinPosX",
1643 settings.setValue(
"Setup/MainWinPosY",
1646 settings.setValue(
"Setup/SeWinWidth",
1648 settings.setValue(
"Setup/SeWinHeight",
1650 settings.setValue(
"Setup/Have2AutoloadAllBands",
1652 settings.setValue(
"Setup/IsBandPlotPerSrcView",
1654 settings.setValue(
"Setup/PlotterOutputFormat",
1656 settings.setValue(
"Setup/LnfsFileName",
1658 settings.setValue(
"Setup/LnfsOriginType",
1660 settings.setValue(
"Setup/LnfsIsThroughCatalog",
1663 settings.setValue(
"Setup/Path2AuxLogs",
1665 if (!shouldInvokeSystemWideWizard)
1667 settings.setValue(
"Setup/Have2SavePerSessionLog",
1669 settings.setValue(
"Setup/ExecExternalCommand",
1671 settings.setValue(
"Setup/ExternalCommand",
1676 if (!shouldInvokeSystemWideWizard)
1678 settings.setValue(
"Config/QualityCodeThreshold",
1680 settings.setValue(
"Config/GoodQualityCodeAtStartup",
1682 settings.setValue(
"Config/UseGoodQualityCodeAtStartup",
1684 settings.setValue(
"Config/DoWeightCorrection",
1686 settings.setValue(
"Config/UseQualityCodeG",
1688 settings.setValue(
"Config/UseQualityCodeH",
1690 settings.setValue(
"Config/IsSolveCompatible",
1692 settings.setValue(
"Config/UseDynamicClockBreaks",
1694 settings.setValue(
"Config/UseSolveObsSuppresionFlags",
1696 settings.setValue(
"Config/UseExternalWeights",
1698 settings.setValue(
"Config/WeightCorrectionMode",
1700 settings.setValue(
"Config/ExternalWeightsFileName",
1702 settings.setValue(
"Config/InitAuxSigma4Delay",
1704 settings.setValue(
"Config/InitAuxSigma4Rate",
1706 settings.setValue(
"Config/MinAuxSigma4Delay",
1708 settings.setValue(
"Config/MinAuxSigma4Rate",
1710 settings.setValue(
"Config/EstimatorPwlMode",
1712 settings.setValue(
"Config/OutlierProcessingMode",
1714 settings.setValue(
"Config/OutlierProcessingAction",
1716 settings.setValue(
"Config/OutlierProcessingThreshold",
1718 settings.setValue(
"Config/OutlierProcessingIterationsLimit",
1720 settings.setValue(
"Config/OutlierProcessingSuppressWC",
1722 settings.setValue(
"Config/OutlierProcessingIsSolveCompatible",
1724 settings.setValue(
"Config/OutlierProcessingHave2NormalizeResiduals",
1726 settings.setValue(
"Config/DoIono4Sbd",
1728 settings.setValue(
"Config/DoClockBreakDetectionMode_1",
1730 settings.setValue(
"Config/DoOutlierEliminationMode_1",
1732 settings.setValue(
"Config/IsActiveBandFollowsTab",
1734 settings.setValue(
"Config/IsObservableFollowsPlot",
1736 settings.setValue(
"Config/UseExternalAPrioriSitePostions",
1738 settings.setValue(
"Config/UseExternalAPrioriSiteVelocities",
1740 settings.setValue(
"Config/UseExternalAPrioriSourcePostions",
1742 settings.setValue(
"Config/UseExternalAPrioriSourceSsm",
1744 settings.setValue(
"Config/UseExternalAPrioriEop",
1746 settings.setValue(
"Config/UseExternalAPrioriAxisOffsets",
1748 settings.setValue(
"Config/UseExternalAPrioriHighFrequencyErp",
1750 settings.setValue(
"Config/UseExternalAPrioriMeanGradients",
1752 settings.setValue(
"Config/ExternalAPrioriSitePostionsFileName",
1754 settings.setValue(
"Config/ExternalAPrioriSiteVelocitiesFileName",
1756 settings.setValue(
"Config/ExternalAPrioriSourcePostionsFileName",
1758 settings.setValue(
"Config/ExternalAPrioriSourceSsmFileName",
1760 settings.setValue(
"Config/ExternalAPrioriEopFileName",
1762 settings.setValue(
"Config/ExternalAPrioriAxisOffsetFileName",
1764 settings.setValue(
"Config/ExternalAPrioriHighFrequencyErpFileName",
1766 settings.setValue(
"Config/ExternalAPrioriMeanGradientsFileName",
1768 settings.setValue(
"Config/EccentricitiesFileName",
1770 settings.setValue(
"Config/Have2ApplySourceSsm",
1773 settings.setValue(
"Config/FlybyTropZenithMap",
1776 settings.setValue(
"Config/Have2ApplyOceanTidesContribution",
1778 settings.setValue(
"Config/Have2ApplyPoleTideContribution",
1780 settings.setValue(
"Config/Have2ApplyEarthTideContribution",
1782 settings.setValue(
"Config/Have2ApplyWobblePxContribution",
1784 settings.setValue(
"Config/Have2ApplyWobblePyContribution",
1786 settings.setValue(
"Config/Have2ApplyAxisOffsetContribution",
1788 settings.setValue(
"Config/Have2ApplyNutationHighFrequencyContribution",
1790 settings.setValue(
"Config/Have2ApplyPolarMotionHighFrequencyContribution",
1792 settings.setValue(
"Config/Have2ApplyUT1HighFrequencyContribution",
1794 settings.setValue(
"Config/Have2ApplyFeedCorrectionContribution",
1796 settings.setValue(
"Config/Have2ApplyTiltRemvrContribution",
1798 settings.setValue(
"Config/Have2ApplyNielHydrostaticTroposphereContribution",
1800 settings.setValue(
"Config/Have2ApplyNielWetTroposphereContribution",
1802 settings.setValue(
"Config/Have2ApplyUnphaseCalibrationContribution",
1804 settings.setValue(
"Config/Have2ApplyOceanPoleTideContribution",
1806 settings.setValue(
"Config/Have2ApplyGpsIonoContrib",
1808 settings.setValue(
"Config/Have2ApplyPolarMotionLibrationContribution",
1810 settings.setValue(
"Config/Have2ApplyUT1LibrationContribution",
1812 settings.setValue(
"Config/Have2ApplyOldOceanTidesContribution",
1814 settings.setValue(
"Config/Have2ApplyOldPoleTideContribution",
1816 settings.setValue(
"Config/IsNoviceUser",
1833 if (!shouldInvokeSystemWideWizard)
1838 if (!shouldInvokeSystemWideWizard)
1840 settings.remove(
"Config/AutomaticProcessingByNetId");
1841 settings.beginWriteArray(
"Config/AutomaticProcessingByNetId",
config.
apByNetId().size());
1843 for (QMap<QString, SgTaskConfig::AutomaticProcessing>::const_iterator it=
config.
apByNetId().begin();
1846 settings.setArrayIndex(idx);
1849 const QString &
id=it.key();
1850 settings.setValue(
"networkId",
id);
1857 settings.setValue(
"doWeights", ap.
doWeights_);
1861 settings.endArray();
1872 ": processing " + databaseName +
" session");
NsMainWindow * mainWindow
int executeScript(const QString &scriptFileName, const QList< QString > args, bool hasDisplay)
SgVersion nuSolveVersion("nuSolve", 0, 7, 5, "Carroll Creek (rc)", SgMJD(2022, 2, 18, 17, 34))
QString interval2Str(double days)
double signum(const double x)
SgVersion libraryVersion("SgLib", 0, 7, 5, "Tuscarora (rc1)", SgMJD(2022, 2, 18, 17, 34))
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