rewrite MccGenericMount and MccGenericFsmMount class creation

Asibfm700MountNetServer is now started
This commit is contained in:
Timur A. Fatkhullin 2025-10-31 01:30:24 +03:00
parent f2be52d17c
commit cb362c6e49
7 changed files with 482 additions and 430 deletions

View File

@ -15,20 +15,43 @@ Asibfm700Mount::Asibfm700Mount(Asibfm700MountConfig const& config, std::shared_p
.lon = config.siteLongitude(), .lon = config.siteLongitude(),
.elev = config.siteElevation()}), .elev = config.siteElevation()}),
Asibfm700PCM(config.pcmData()), Asibfm700PCM(config.pcmData()),
base_gm_class_t( base_gm_class_t(Asibfm700StartState{},
gm_class_t{AsibFM700ServoController{config.servoControllerConfig()}, mcc::MccTelemetry{this}, std::make_tuple(config.servoControllerConfig()),
Asibfm700PZoneContainer{}, mcc::MccSimpleSlewingModel{this}, mcc::MccSimpleTrackingModel{this}, std::make_tuple(this),
Asibfm700Logger{std::move(logger), Asibfm700Logger::LOGGER_DEFAULT_FORMAT}}, std::make_tuple(),
Asibfm700StartState{}), std::make_tuple(this),
std::make_tuple(this),
std::make_tuple(logger, Asibfm700Logger::LOGGER_DEFAULT_FORMAT)),
_mountConfig(config), _mountConfig(config),
_mountConfigMutex(new std::mutex) _mountConfigMutex(new std::mutex)
{ {
addMarkToPatternIdx("ASIB-MOUNT"); addMarkToPatternIdx("[ASIB-MOUNT]");
logDebug("Create Asibfm700Mount class instance ({})", this->getThreadId()); logDebug("Create Asibfm700Mount class instance ({})", this->getThreadId());
initMount(); initMount();
} }
// Asibfm700Mount::Asibfm700Mount(Asibfm700MountConfig const& config, std::shared_ptr<spdlog::logger> logger)
// : mcc::ccte::erfa::MccCCTE_ERFA({.meteo{.temperature = 10.0, .humidity = 0.5, .pressure = 1010.0},
// .wavelength = config.refractWavelength(),
// .lat = config.siteLatitude(),
// .lon = config.siteLongitude(),
// .elev = config.siteElevation()}),
// Asibfm700PCM(config.pcmData()),
// base_gm_class_t(
// gm_class_t{AsibFM700ServoController{config.servoControllerConfig()}, mcc::MccTelemetry{this},
// Asibfm700PZoneContainer{}, mcc::MccSimpleSlewingModel{this}, mcc::MccSimpleTrackingModel{this},
// Asibfm700Logger{std::move(logger), Asibfm700Logger::LOGGER_DEFAULT_FORMAT}},
// Asibfm700StartState{}),
// _mountConfig(config),
// _mountConfigMutex(new std::mutex)
// {
// addMarkToPatternIdx("ASIB-MOUNT");
// logDebug("Create Asibfm700Mount class instance ({})", this->getThreadId());
// initMount();
// }
Asibfm700Mount::~Asibfm700Mount() Asibfm700Mount::~Asibfm700Mount()
@ -140,7 +163,7 @@ Asibfm700Mount::error_t Asibfm700Mount::initMount()
ccte_state._leapSeconds.expireDate()); ccte_state._leapSeconds.expireDate());
} }
} else { } else {
logError("Using hardcoded leap seconds defauls (expire date: {})", ccte_state._leapSeconds.expireDate()); logInfo("Using hardcoded leap seconds defauls (expire date: {})", ccte_state._leapSeconds.expireDate());
} }
if (!_mountConfig.bulletinAFilename().empty()) { // load IERS Bulletin A file if (!_mountConfig.bulletinAFilename().empty()) { // load IERS Bulletin A file
@ -154,8 +177,8 @@ Asibfm700Mount::error_t Asibfm700Mount::initMount()
ccte_state._bulletinA.dateRange().begin, ccte_state._bulletinA.dateRange().end); ccte_state._bulletinA.dateRange().begin, ccte_state._bulletinA.dateRange().end);
} }
} else { } else {
logError("Using hardcoded IERS Bulletin A defauls (date range: {} - {})", logInfo("Using hardcoded IERS Bulletin A defauls (date range: {} - {})",
ccte_state._bulletinA.dateRange().begin, ccte_state._bulletinA.dateRange().end); ccte_state._bulletinA.dateRange().begin, ccte_state._bulletinA.dateRange().end);
} }
setStateERFA(std::move(ccte_state)); setStateERFA(std::move(ccte_state));

View File

@ -9,7 +9,7 @@ Asibfm700MountNetServer::Asibfm700MountNetServer(asio::io_context& ctx,
std::shared_ptr<spdlog::logger> logger) std::shared_ptr<spdlog::logger> logger)
: base_t(ctx, mount, std::move(logger), Asibfm700Logger::LOGGER_DEFAULT_FORMAT) : base_t(ctx, mount, std::move(logger), Asibfm700Logger::LOGGER_DEFAULT_FORMAT)
{ {
addMarkToPatternIdx("ASIB-NETSERVER"); addMarkToPatternIdx("[ASIB-NETSERVER]");
// to avoid possible compiler optimization (one needs to catch 'mount' strictly by reference) // to avoid possible compiler optimization (one needs to catch 'mount' strictly by reference)
auto* mount_ptr = &mount; auto* mount_ptr = &mount;

View File

@ -27,6 +27,12 @@ int main(int argc, char* argv[])
options.add_options()("level", "Log level (see SPDLOG package description for valid values)", options.add_options()("level", "Log level (see SPDLOG package description for valid values)",
cxxopts::value<std::string>()->default_value("info")); cxxopts::value<std::string>()->default_value("info"));
options.add_options()("c,config", "Mount configuration filename (by default use of hardcoded one)",
cxxopts::value<std::string>()->default_value(""));
options.add_options()("dump", "Dump mount default configuration to file and exit",
cxxopts::value<std::string>()->default_value(""));
options.add_options()( options.add_options()(
"endpoints", "endpoints",
"endpoints server will be listening for. For 'local' endpoint the '@' symbol at the beginning of the path " "endpoints server will be listening for. For 'local' endpoint the '@' symbol at the beginning of the path "
@ -54,6 +60,19 @@ int main(int argc, char* argv[])
return 0; return 0;
} }
asibfm700::Asibfm700MountConfig mount_cfg;
std::string fname = opt_result["dump"].as<std::string>();
if (fname.size()) {
bool ok = mount_cfg.dumpDefaultsToFile(fname);
if (!ok) {
return 255;
}
return 0;
} else {
return 255;
}
auto logname = opt_result["log"].as<std::string>(); auto logname = opt_result["log"].as<std::string>();
@ -91,7 +110,18 @@ int main(int argc, char* argv[])
logger->info("\n"); logger->info("\n");
asibfm700::Asibfm700MountConfig mount_cfg;
std::string mount_cfg_fname = opt_result["config"].as<std::string>();
if (mount_cfg_fname.size()) {
logger->info("Try to load mount configuration from file: {}", mount_cfg_fname);
auto err = mount_cfg.load(mount_cfg_fname);
if (err) {
logger->error("Cannot load mount configuration (err = {})! Use defaults!", err.message());
} else {
logger->info("Mount configuration was loaded successfully!");
}
}
asibfm700::Asibfm700Mount mount(mount_cfg, logger); asibfm700::Asibfm700Mount mount(mount_cfg, logger);
asibfm700::Asibfm700MountNetServer server(ctx, mount, logger); asibfm700::Asibfm700MountNetServer server(ctx, mount, logger);

View File

@ -67,7 +67,7 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--(
* * * *
* Rapid Service/Prediction of Earth Orientation * * Rapid Service/Prediction of Earth Orientation *
********************************************************************** **********************************************************************
18 September 2025 Vol. XXXVIII No. 038 30 October 2025 Vol. XXXVIII No. 044
______________________________________________________________________ ______________________________________________________________________
GENERAL INFORMATION: GENERAL INFORMATION:
MJD = Julian Date - 2 400 000.5 days MJD = Julian Date - 2 400 000.5 days
@ -116,13 +116,13 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--(
IERS Rapid Service IERS Rapid Service
MJD x error y error UT1-UTC error MJD x error y error UT1-UTC error
" " " " s s " " " " s s
25 9 12 60930 0.23641 .00009 0.37563 .00009 0.087597 0.000019 25 10 24 60972 0.18970 .00009 0.32280 .00009 0.093314 0.000025
25 9 13 60931 0.23625 .00009 0.37386 .00009 0.087797 0.000019 25 10 25 60973 0.18784 .00009 0.32283 .00009 0.093517 0.000025
25 9 14 60932 0.23581 .00009 0.37195 .00009 0.088287 0.000018 25 10 26 60974 0.18602 .00009 0.32275 .00009 0.093749 0.000022
25 9 15 60933 0.23524 .00009 0.37002 .00009 0.088904 0.000018 25 10 27 60975 0.18446 .00009 0.32243 .00009 0.094060 0.000019
25 9 16 60934 0.23474 .00009 0.36811 .00009 0.089550 0.000018 25 10 28 60976 0.18324 .00009 0.32200 .00009 0.094375 0.000016
25 9 17 60935 0.23429 .00009 0.36628 .00009 0.090064 0.000017 25 10 29 60977 0.18207 .00009 0.32173 .00009 0.094458 0.000016
25 9 18 60936 0.23365 .00009 0.36457 .00009 0.090446 0.000012 25 10 30 60978 0.18080 .00009 0.32157 .00009 0.094295 0.000016
_______________________________________________________________________ _______________________________________________________________________
@ -130,415 +130,403 @@ static std::string MCC_DEFAULT_IERS_BULLETIN_A_FILE = R"--(
The following formulas will not reproduce the predictions given below, The following formulas will not reproduce the predictions given below,
but may be used to extend the predictions beyond the end of this table. but may be used to extend the predictions beyond the end of this table.
x = 0.1436 + 0.1390 cos A + 0.0191 sin A - 0.0493 cos C - 0.0375 sin C x = 0.1296 + 0.1193 cos A - 0.0805 sin A - 0.0668 cos C - 0.0019 sin C
y = 0.3727 + 0.0292 cos A - 0.1261 sin A - 0.0375 cos C + 0.0493 sin C y = 0.3859 - 0.0654 cos A - 0.1170 sin A - 0.0019 cos C + 0.0668 sin C
UT1-UTC = 0.0561 + 0.00009 (MJD - 60944) - (UT2-UT1) UT1-UTC = 0.0734 + 0.00008 (MJD - 60986) - (UT2-UT1)
where A = 2*pi*(MJD-60936)/365.25 and C = 2*pi*(MJD-60936)/435. where A = 2*pi*(MJD-60978)/365.25 and C = 2*pi*(MJD-60978)/435.
TAI-UTC(MJD 60937) = 37.0 TAI-UTC(MJD 60979) = 37.0
The accuracy may be estimated from the expressions: The accuracy may be estimated from the expressions:
S x,y = 0.00068 (MJD-60936)**0.80 S t = 0.00025 (MJD-60936)**0.75 S x,y = 0.00068 (MJD-60978)**0.80 S t = 0.00025 (MJD-60978)**0.75
Estimated accuracies are: Predictions 10 d 20 d 30 d 40 d Estimated accuracies are: Predictions 10 d 20 d 30 d 40 d
Polar coord's 0.004 0.007 0.010 0.013 Polar coord's 0.004 0.007 0.010 0.013
UT1-UTC 0.0014 0.0024 0.0032 0.0040 UT1-UTC 0.0014 0.0024 0.0032 0.0040
MJD x(arcsec) y(arcsec) UT1-UTC(sec) MJD x(arcsec) y(arcsec) UT1-UTC(sec)
2025 9 19 60937 0.2332 0.3628 0.09058 2025 10 31 60979 0.1796 0.3213 0.09390
2025 9 20 60938 0.2326 0.3612 0.09050 2025 11 1 60980 0.1783 0.3211 0.09323
2025 9 21 60939 0.2321 0.3596 0.09031 2025 11 2 60981 0.1771 0.3209 0.09233
2025 9 22 60940 0.2316 0.3580 0.09013 2025 11 3 60982 0.1759 0.3207 0.09132
2025 9 23 60941 0.2311 0.3566 0.09003 2025 11 4 60983 0.1748 0.3204 0.09032
2025 9 24 60942 0.2307 0.3551 0.09005 2025 11 5 60984 0.1738 0.3201 0.08949
2025 9 25 60943 0.2302 0.3538 0.09021 2025 11 6 60985 0.1727 0.3198 0.08896
2025 9 26 60944 0.2297 0.3525 0.09054 2025 11 7 60986 0.1716 0.3195 0.08875
2025 9 27 60945 0.2291 0.3512 0.09105 2025 11 8 60987 0.1706 0.3193 0.08880
2025 9 28 60946 0.2285 0.3499 0.09169 2025 11 9 60988 0.1695 0.3190 0.08897
2025 9 29 60947 0.2279 0.3487 0.09238 2025 11 10 60989 0.1684 0.3187 0.08909
2025 9 30 60948 0.2273 0.3474 0.09302 2025 11 11 60990 0.1673 0.3184 0.08904
2025 10 1 60949 0.2266 0.3462 0.09355 2025 11 12 60991 0.1663 0.3181 0.08876
2025 10 2 60950 0.2260 0.3450 0.09389 2025 11 13 60992 0.1652 0.3178 0.08831
2025 10 3 60951 0.2253 0.3438 0.09394 2025 11 14 60993 0.1641 0.3176 0.08774
2025 10 4 60952 0.2246 0.3426 0.09368 2025 11 15 60994 0.1630 0.3173 0.08712
2025 10 5 60953 0.2239 0.3414 0.09310 2025 11 16 60995 0.1619 0.3170 0.08654
2025 10 6 60954 0.2232 0.3402 0.09230 2025 11 17 60996 0.1608 0.3168 0.08610
2025 10 7 60955 0.2225 0.3390 0.09141 2025 11 18 60997 0.1597 0.3166 0.08585
2025 10 8 60956 0.2218 0.3379 0.09060 2025 11 19 60998 0.1585 0.3163 0.08582
2025 10 9 60957 0.2210 0.3367 0.09003 2025 11 20 60999 0.1574 0.3161 0.08604
2025 10 10 60958 0.2202 0.3356 0.08978 2025 11 21 61000 0.1562 0.3159 0.08646
2025 10 11 60959 0.2194 0.3345 0.08982 2025 11 22 61001 0.1551 0.3157 0.08704
2025 10 12 60960 0.2186 0.3333 0.09007 2025 11 23 61002 0.1539 0.3156 0.08771
2025 10 13 60961 0.2177 0.3322 0.09039 2025 11 24 61003 0.1528 0.3154 0.08837
2025 10 14 60962 0.2168 0.3312 0.09064 2025 11 25 61004 0.1516 0.3153 0.08894
2025 10 15 60963 0.2159 0.3301 0.09072 2025 11 26 61005 0.1504 0.3152 0.08934
2025 10 16 60964 0.2150 0.3290 0.09058 2025 11 27 61006 0.1492 0.3151 0.08951
2025 10 17 60965 0.2141 0.3280 0.09023 2025 11 28 61007 0.1481 0.3150 0.08941
2025 10 18 60966 0.2132 0.3269 0.08973 2025 11 29 61008 0.1469 0.3149 0.08906
2025 10 19 60967 0.2122 0.3259 0.08915 2025 11 30 61009 0.1457 0.3149 0.08852
2025 10 20 60968 0.2112 0.3249 0.08858 2025 12 1 61010 0.1445 0.3148 0.08790
2025 10 21 60969 0.2102 0.3239 0.08809 2025 12 2 61011 0.1433 0.3148 0.08736
2025 10 22 60970 0.2092 0.3229 0.08774 2025 12 3 61012 0.1421 0.3148 0.08702
2025 10 23 60971 0.2081 0.3220 0.08755 2025 12 4 61013 0.1408 0.3149 0.08698
2025 10 24 60972 0.2070 0.3210 0.08753 2025 12 5 61014 0.1396 0.3149 0.08720
2025 10 25 60973 0.2059 0.3201 0.08765 2025 12 6 61015 0.1384 0.3150 0.08759
2025 10 26 60974 0.2048 0.3192 0.08785 2025 12 7 61016 0.1372 0.3151 0.08800
2025 10 27 60975 0.2037 0.3183 0.08808 2025 12 8 61017 0.1360 0.3152 0.08830
2025 10 28 60976 0.2026 0.3174 0.08823 2025 12 9 61018 0.1348 0.3153 0.08840
2025 10 29 60977 0.2014 0.3166 0.08825 2025 12 10 61019 0.1336 0.3155 0.08829
2025 10 30 60978 0.2003 0.3157 0.08804 2025 12 11 61020 0.1324 0.3157 0.08802
2025 10 31 60979 0.1991 0.3149 0.08756 2025 12 12 61021 0.1312 0.3159 0.08768
2025 11 1 60980 0.1979 0.3141 0.08678 2025 12 13 61022 0.1300 0.3161 0.08735
2025 11 2 60981 0.1966 0.3133 0.08574 2025 12 14 61023 0.1288 0.3163 0.08711
2025 11 3 60982 0.1954 0.3125 0.08453 2025 12 15 61024 0.1276 0.3166 0.08701
2025 11 4 60983 0.1941 0.3118 0.08332 2025 12 16 61025 0.1264 0.3169 0.08709
2025 11 5 60984 0.1929 0.3110 0.08228 2025 12 17 61026 0.1252 0.3172 0.08736
2025 11 6 60985 0.1916 0.3103 0.08154 2025 12 18 61027 0.1240 0.3175 0.08780
2025 11 7 60986 0.1903 0.3096 0.08112 2025 12 19 61028 0.1228 0.3178 0.08838
2025 11 8 60987 0.1890 0.3089 0.08097 2025 12 20 61029 0.1217 0.3182 0.08904
2025 11 9 60988 0.1877 0.3083 0.08095 2025 12 21 61030 0.1205 0.3185 0.08971
2025 11 10 60989 0.1863 0.3076 0.08091 2025 12 22 61031 0.1194 0.3189 0.09030
2025 11 11 60990 0.1850 0.3070 0.08073 2025 12 23 61032 0.1182 0.3194 0.09074
2025 11 12 60991 0.1836 0.3064 0.08037 2025 12 24 61033 0.1171 0.3198 0.09096
2025 11 13 60992 0.1823 0.3059 0.07984 2025 12 25 61034 0.1159 0.3202 0.09095
2025 11 14 60993 0.1809 0.3053 0.07917 2025 12 26 61035 0.1148 0.3207 0.09069
2025 11 15 60994 0.1795 0.3048 0.07843 2025 12 27 61036 0.1137 0.3212 0.09025
2025 11 16 60995 0.1781 0.3043 0.07772 2025 12 28 61037 0.1126 0.3217 0.08971
2025 11 17 60996 0.1767 0.3038 0.07708 2025 12 29 61038 0.1115 0.3223 0.08919
2025 11 18 60997 0.1753 0.3033 0.07658 2025 12 30 61039 0.1104 0.3228 0.08881
2025 11 19 60998 0.1738 0.3029 0.07625 2025 12 31 61040 0.1093 0.3234 0.08867
2025 11 20 60999 0.1724 0.3024 0.07612 2026 1 1 61041 0.1082 0.3240 0.08878
2025 11 21 61000 0.1709 0.3020 0.07616 2026 1 2 61042 0.1072 0.3246 0.08908
2025 11 22 61001 0.1695 0.3017 0.07633 2026 1 3 61043 0.1061 0.3252 0.08946
2025 11 23 61002 0.1680 0.3013 0.07657 2026 1 4 61044 0.1051 0.3258 0.08974
2025 11 24 61003 0.1666 0.3010 0.07680 2026 1 5 61045 0.1041 0.3265 0.08984
2025 11 25 61004 0.1651 0.3007 0.07694 2026 1 6 61046 0.1031 0.3272 0.08969
2025 11 26 61005 0.1636 0.3004 0.07692 2026 1 7 61047 0.1021 0.3278 0.08935
2025 11 27 61006 0.1621 0.3001 0.07667 2026 1 8 61048 0.1011 0.3286 0.08889
2025 11 28 61007 0.1607 0.2999 0.07617 2026 1 9 61049 0.1001 0.3293 0.08841
2025 11 29 61008 0.1592 0.2996 0.07543 2026 1 10 61050 0.0992 0.3300 0.08800
2025 11 30 61009 0.1577 0.2994 0.07451 2026 1 11 61051 0.0982 0.3308 0.08772
2025 12 1 61010 0.1562 0.2993 0.07353 2026 1 12 61052 0.0973 0.3316 0.08762
2025 12 2 61011 0.1547 0.2991 0.07263 2026 1 13 61053 0.0964 0.3323 0.08772
2025 12 3 61012 0.1532 0.2990 0.07197 2026 1 14 61054 0.0955 0.3331 0.08801
2025 12 4 61013 0.1517 0.2989 0.07160 2026 1 15 61055 0.0946 0.3340 0.08845
2025 12 5 61014 0.1501 0.2988 0.07152 2026 1 16 61056 0.0938 0.3348 0.08898
2025 12 6 61015 0.1486 0.2987 0.07163 2026 1 17 61057 0.0929 0.3357 0.08954
2025 12 7 61016 0.1471 0.2987 0.07178 2026 1 18 61058 0.0921 0.3365 0.09004
2025 12 8 61017 0.1456 0.2987 0.07181 2026 1 19 61059 0.0913 0.3374 0.09039
2025 12 9 61018 0.1441 0.2987 0.07166 2026 1 20 61060 0.0905 0.3383 0.09052
2025 12 10 61019 0.1426 0.2987 0.07131 2026 1 21 61061 0.0897 0.3392 0.09040
2025 12 11 61020 0.1411 0.2988 0.07081 2026 1 22 61062 0.0890 0.3401 0.09004
2025 12 12 61021 0.1396 0.2989 0.07025 2026 1 23 61063 0.0882 0.3411 0.08949
2025 12 13 61022 0.1381 0.2990 0.06971 2026 1 24 61064 0.0875 0.3420 0.08885
2025 12 14 61023 0.1366 0.2991 0.06926 2026 1 25 61065 0.0868 0.3430 0.08822
2025 12 15 61024 0.1351 0.2993 0.06895 2026 1 26 61066 0.0861 0.3439 0.08774
2025 12 16 61025 0.1336 0.2994 0.06883 2026 1 27 61067 0.0854 0.3449 0.08747
2025 12 17 61026 0.1321 0.2996 0.06890 2026 1 28 61068 0.0848 0.3459 0.08744
2025 12 18 61027 0.1306 0.2999 0.06916 2026 1 29 61069 0.0842 0.3469 0.08762
2025 12 19 61028 0.1292 0.3001 0.06957 2026 1 30 61070 0.0835 0.3479 0.08790
2025 12 20 61029 0.1277 0.3004 0.07007 2026 1 31 61071 0.0830 0.3490 0.08814
2025 12 21 61030 0.1262 0.3007 0.07059 2026 2 1 61072 0.0824 0.3500 0.08821
2025 12 22 61031 0.1247 0.3010 0.07104 2026 2 2 61073 0.0818 0.3511 0.08804
2025 12 23 61032 0.1233 0.3013 0.07135 2026 2 3 61074 0.0813 0.3521 0.08763
2025 12 24 61033 0.1218 0.3017 0.07147 2026 2 4 61075 0.0808 0.3532 0.08703
2025 12 25 61034 0.1204 0.3021 0.07135 2026 2 5 61076 0.0803 0.3543 0.08634
2025 12 26 61035 0.1190 0.3025 0.07102 2026 2 6 61077 0.0799 0.3554 0.08569
2025 12 27 61036 0.1176 0.3029 0.07051 2026 2 7 61078 0.0794 0.3565 0.08515
2025 12 28 61037 0.1161 0.3033 0.06993 2026 2 8 61079 0.0790 0.3576 0.08479
2025 12 29 61038 0.1147 0.3038 0.06940 2026 2 9 61080 0.0786 0.3587 0.08461
2025 12 30 61039 0.1133 0.3043 0.06903 2026 2 10 61081 0.0782 0.3598 0.08463
2025 12 31 61040 0.1120 0.3048 0.06892 2026 2 11 61082 0.0779 0.3609 0.08482
2026 1 1 61041 0.1106 0.3053 0.06908 2026 2 12 61083 0.0776 0.3621 0.08512
2026 1 2 61042 0.1092 0.3059 0.06945 2026 2 13 61084 0.0773 0.3632 0.08547
2026 1 3 61043 0.1079 0.3065 0.06989 2026 2 14 61085 0.0770 0.3643 0.08579
2026 1 4 61044 0.1066 0.3071 0.07027 2026 2 15 61086 0.0767 0.3655 0.08598
2026 1 5 61045 0.1052 0.3077 0.07042 2026 2 16 61087 0.0765 0.3666 0.08601
2026 1 6 61046 0.1039 0.3083 0.07034 2026 2 17 61088 0.0763 0.3678 0.08579
2026 1 7 61047 0.1026 0.3090 0.07006 2026 2 18 61089 0.0761 0.3690 0.08530
2026 1 8 61048 0.1013 0.3097 0.06966 2026 2 19 61090 0.0759 0.3701 0.08458
2026 1 9 61049 0.1001 0.3104 0.06924 2026 2 20 61091 0.0758 0.3713 0.08373
2026 1 10 61050 0.0988 0.3111 0.06889 2026 2 21 61092 0.0756 0.3725 0.08288
2026 1 11 61051 0.0976 0.3118 0.06867 2026 2 22 61093 0.0756 0.3737 0.08216
2026 1 12 61052 0.0964 0.3126 0.06863 2026 2 23 61094 0.0755 0.3748 0.08167
2026 1 13 61053 0.0951 0.3134 0.06879 2026 2 24 61095 0.0754 0.3760 0.08143
2026 1 14 61054 0.0940 0.3142 0.06912 2026 2 25 61096 0.0754 0.3772 0.08142
2026 1 15 61055 0.0928 0.3150 0.06961 2026 2 26 61097 0.0754 0.3784 0.08154
2026 1 16 61056 0.0916 0.3158 0.07020 2026 2 27 61098 0.0754 0.3796 0.08167
2026 1 17 61057 0.0905 0.3167 0.07081 2026 2 28 61099 0.0755 0.3808 0.08166
2026 1 18 61058 0.0893 0.3175 0.07136 2026 3 1 61100 0.0755 0.3820 0.08144
2026 1 19 61059 0.0882 0.3184 0.07177 2026 3 2 61101 0.0756 0.3832 0.08097
2026 1 20 61060 0.0872 0.3193 0.07197 2026 3 3 61102 0.0758 0.3844 0.08027
2026 1 21 61061 0.0861 0.3202 0.07192 2026 3 4 61103 0.0759 0.3855 0.07945
2026 1 22 61062 0.0850 0.3212 0.07163 2026 3 5 61104 0.0761 0.3867 0.07859
2026 1 23 61063 0.0840 0.3221 0.07115 2026 3 6 61105 0.0763 0.3879 0.07781
2026 1 24 61064 0.0830 0.3231 0.07059 2026 3 7 61106 0.0765 0.3891 0.07717
2026 1 25 61065 0.0820 0.3241 0.07005 2026 3 8 61107 0.0767 0.3903 0.07673
2026 1 26 61066 0.0810 0.3251 0.06965 2026 3 9 61108 0.0770 0.3915 0.07649
2026 1 27 61067 0.0801 0.3261 0.06947 2026 3 10 61109 0.0773 0.3926 0.07643
2026 1 28 61068 0.0791 0.3271 0.06954 2026 3 11 61110 0.0776 0.3938 0.07650
2026 1 29 61069 0.0782 0.3282 0.06982 2026 3 12 61111 0.0779 0.3950 0.07665
2026 1 30 61070 0.0773 0.3293 0.07020 2026 3 13 61112 0.0783 0.3961 0.07679
2026 1 31 61071 0.0765 0.3303 0.07055 2026 3 14 61113 0.0787 0.3973 0.07684
2026 2 1 61072 0.0756 0.3314 0.07072 2026 3 15 61114 0.0791 0.3984 0.07671
2026 2 2 61073 0.0748 0.3325 0.07065 2026 3 16 61115 0.0795 0.3996 0.07633
2026 2 3 61074 0.0740 0.3336 0.07034 2026 3 17 61116 0.0800 0.4007 0.07568
2026 2 4 61075 0.0732 0.3348 0.06984 2026 3 18 61117 0.0804 0.4019 0.07477
2026 2 5 61076 0.0724 0.3359 0.06926 2026 3 19 61118 0.0809 0.4030 0.07367
2026 2 6 61077 0.0717 0.3371 0.06871 2026 3 20 61119 0.0815 0.4041 0.07252
2026 2 7 61078 0.0710 0.3382 0.06827 2026 3 21 61120 0.0820 0.4052 0.07145
2026 2 8 61079 0.0703 0.3394 0.06799 2026 3 22 61121 0.0826 0.4063 0.07061
2026 2 9 61080 0.0696 0.3406 0.06791 2026 3 23 61122 0.0832 0.4074 0.07005
2026 2 10 61081 0.0690 0.3418 0.06801 2026 3 24 61123 0.0838 0.4085 0.06976
2026 2 11 61082 0.0684 0.3430 0.06828 2026 3 25 61124 0.0844 0.4096 0.06964
2026 2 12 61083 0.0678 0.3442 0.06867 2026 3 26 61125 0.0851 0.4107 0.06957
2026 2 13 61084 0.0672 0.3454 0.06909 2026 3 27 61126 0.0858 0.4118 0.06942
2026 2 14 61085 0.0667 0.3467 0.06948 2026 3 28 61127 0.0865 0.4128 0.06909
2026 2 15 61086 0.0662 0.3479 0.06974 2026 3 29 61128 0.0872 0.4139 0.06853
2026 2 16 61087 0.0657 0.3492 0.06979 2026 3 30 61129 0.0879 0.4149 0.06776
2026 2 17 61088 0.0652 0.3504 0.06959 2026 3 31 61130 0.0887 0.4159 0.06685
2026 2 18 61089 0.0648 0.3517 0.06911 2026 4 1 61131 0.0895 0.4169 0.06587
2026 2 19 61090 0.0643 0.3530 0.06842 2026 4 2 61132 0.0903 0.4179 0.06493
2026 2 20 61091 0.0640 0.3543 0.06759 2026 4 3 61133 0.0911 0.4189 0.06412
2026 2 21 61092 0.0636 0.3556 0.06677 2026 4 4 61134 0.0920 0.4199 0.06350
2026 2 22 61093 0.0632 0.3568 0.06607 2026 4 5 61135 0.0929 0.4208 0.06309
2026 2 23 61094 0.0629 0.3581 0.06559 2026 4 6 61136 0.0938 0.4218 0.06288
2026 2 24 61095 0.0626 0.3595 0.06538 2026 4 7 61137 0.0947 0.4227 0.06283
2026 2 25 61096 0.0624 0.3608 0.06539 2026 4 8 61138 0.0956 0.4237 0.06289
2026 2 26 61097 0.0621 0.3621 0.06553 2026 4 9 61139 0.0966 0.4246 0.06299
2026 2 27 61098 0.0619 0.3634 0.06568 2026 4 10 61140 0.0975 0.4255 0.06304
2026 2 28 61099 0.0618 0.3647 0.06570 2026 4 11 61141 0.0985 0.4263 0.06296
2026 3 1 61100 0.0616 0.3660 0.06549 2026 4 12 61142 0.0995 0.4272 0.06269
2026 3 2 61101 0.0615 0.3674 0.06504 2026 4 13 61143 0.1006 0.4281 0.06217
2026 3 3 61102 0.0614 0.3687 0.06437 2026 4 14 61144 0.1016 0.4289 0.06138
2026 3 4 61103 0.0613 0.3700 0.06356 2026 4 15 61145 0.1027 0.4297 0.06038
2026 3 5 61104 0.0612 0.3714 0.06272 2026 4 16 61146 0.1037 0.4305 0.05926
2026 3 6 61105 0.0612 0.3727 0.06196 2026 4 17 61147 0.1048 0.4313 0.05817
2026 3 7 61106 0.0612 0.3741 0.06134 2026 4 18 61148 0.1060 0.4321 0.05726
2026 3 8 61107 0.0612 0.3754 0.06092 2026 4 19 61149 0.1071 0.4328 0.05662
2026 3 9 61108 0.0613 0.3767 0.06070 2026 4 20 61150 0.1082 0.4335 0.05628
2026 3 10 61109 0.0614 0.3781 0.06065 2026 4 21 61151 0.1094 0.4343 0.05617
2026 3 11 61110 0.0615 0.3794 0.06074 2026 4 22 61152 0.1106 0.4350 0.05617
2026 3 12 61111 0.0616 0.3807 0.06091 2026 4 23 61153 0.1118 0.4356 0.05612
2026 3 13 61112 0.0618 0.3821 0.06106 2026 4 24 61154 0.1130 0.4363 0.05592
2026 3 14 61113 0.0619 0.3834 0.06112 2026 4 25 61155 0.1142 0.4370 0.05551
2026 3 15 61114 0.0622 0.3847 0.06099 2026 4 26 61156 0.1154 0.4376 0.05489
2026 3 16 61115 0.0624 0.3860 0.06062 2026 4 27 61157 0.1167 0.4382 0.05412
2026 3 17 61116 0.0627 0.3874 0.05996 2026 4 28 61158 0.1179 0.4388 0.05327
2026 3 18 61117 0.0630 0.3887 0.05903 2026 4 29 61159 0.1192 0.4393 0.05243
2026 3 19 61118 0.0633 0.3900 0.05790 2026 4 30 61160 0.1205 0.4399 0.05167
2026 3 20 61119 0.0636 0.3913 0.05671 2026 5 1 61161 0.1218 0.4404 0.05106
2026 3 21 61120 0.0640 0.3926 0.05560 2026 5 2 61162 0.1231 0.4409 0.05062
2026 3 22 61121 0.0644 0.3939 0.05469 2026 5 3 61163 0.1244 0.4414 0.05035
2026 3 23 61122 0.0648 0.3952 0.05405 2026 5 4 61164 0.1258 0.4419 0.05022
2026 3 24 61123 0.0652 0.3965 0.05367 2026 5 5 61165 0.1271 0.4423 0.05019
2026 3 25 61124 0.0657 0.3978 0.05346 2026 5 6 61166 0.1285 0.4428 0.05018
2026 3 26 61125 0.0662 0.3990 0.05330 2026 5 7 61167 0.1298 0.4432 0.05014
2026 3 27 61126 0.0667 0.4003 0.05308 2026 5 8 61168 0.1312 0.4436 0.04999
2026 3 28 61127 0.0673 0.4016 0.05271 2026 5 9 61169 0.1326 0.4439 0.04969
2026 3 29 61128 0.0678 0.4028 0.05216 2026 5 10 61170 0.1340 0.4443 0.04920
2026 3 30 61129 0.0684 0.4041 0.05143 2026 5 11 61171 0.1354 0.4446 0.04852
2026 3 31 61130 0.0691 0.4053 0.05060 2026 5 12 61172 0.1368 0.4449 0.04766
2026 4 1 61131 0.0697 0.4065 0.04975 2026 5 13 61173 0.1382 0.4452 0.04669
2026 4 2 61132 0.0704 0.4077 0.04897 2026 5 14 61174 0.1396 0.4454 0.04572
2026 4 3 61133 0.0711 0.4089 0.04834 2026 5 15 61175 0.1410 0.4457 0.04492
2026 4 4 61134 0.0718 0.4101 0.04791 2026 5 16 61176 0.1425 0.4459 0.04441
2026 4 5 61135 0.0725 0.4113 0.04770 2026 5 17 61177 0.1439 0.4461 0.04425
2026 4 6 61136 0.0733 0.4125 0.04770 2026 5 18 61178 0.1454 0.4462 0.04443
2026 4 7 61137 0.0740 0.4136 0.04788 2026 5 19 61179 0.1468 0.4464 0.04482
2026 4 8 61138 0.0749 0.4148 0.04816 2026 5 20 61180 0.1483 0.4465 0.04526
2026 4 9 61139 0.0757 0.4159 0.04847 2026 5 21 61181 0.1497 0.4466 0.04563
2026 4 10 61140 0.0765 0.4170 0.04874 2026 5 22 61182 0.1512 0.4467 0.04582
2026 4 11 61141 0.0774 0.4182 0.04888 2026 5 23 61183 0.1526 0.4468 0.04584
2026 4 12 61142 0.0783 0.4193 0.04884 2026 5 24 61184 0.1541 0.4468 0.04574
2026 4 13 61143 0.0792 0.4203 0.04856 2026 5 25 61185 0.1556 0.4468 0.04560
2026 4 14 61144 0.0801 0.4214 0.04803 2026 5 26 61186 0.1570 0.4468 0.04551
2026 4 15 61145 0.0811 0.4225 0.04729 2026 5 27 61187 0.1585 0.4468 0.04553
2026 4 16 61146 0.0821 0.4235 0.04644 2026 5 28 61188 0.1600 0.4467 0.04573
2026 4 17 61147 0.0831 0.4245 0.04561 2026 5 29 61189 0.1615 0.4466 0.04613
2026 4 18 61148 0.0841 0.4255 0.04496 2026 5 30 61190 0.1629 0.4465 0.04673
2026 4 19 61149 0.0851 0.4265 0.04460 2026 5 31 61191 0.1644 0.4464 0.04754
2026 4 20 61150 0.0862 0.4275 0.04455 2026 6 1 61192 0.1659 0.4462 0.04850
2026 4 21 61151 0.0873 0.4285 0.04474 2026 6 2 61193 0.1673 0.4461 0.04955
2026 4 22 61152 0.0883 0.4294 0.04502 2026 6 3 61194 0.1688 0.4459 0.05060
2026 4 23 61153 0.0895 0.4304 0.04526 2026 6 4 61195 0.1703 0.4456 0.05158
2026 4 24 61154 0.0906 0.4313 0.04532 2026 6 5 61196 0.1717 0.4454 0.05243
2026 4 25 61155 0.0917 0.4322 0.04515 2026 6 6 61197 0.1732 0.4451 0.05309
2026 4 26 61156 0.0929 0.4331 0.04475 2026 6 7 61198 0.1747 0.4448 0.05353
2026 4 27 61157 0.0941 0.4339 0.04417 2026 6 8 61199 0.1761 0.4445 0.05378
2026 4 28 61158 0.0953 0.4348 0.04355 2026 6 9 61200 0.1776 0.4442 0.05389
2026 4 29 61159 0.0965 0.4356 0.04299 2026 6 10 61201 0.1790 0.4438 0.05396
2026 4 30 61160 0.0977 0.4364 0.04255 2026 6 11 61202 0.1804 0.4435 0.05412
2026 5 1 61161 0.0990 0.4372 0.04228 2026 6 12 61203 0.1819 0.4431 0.05448
2026 5 2 61162 0.1002 0.4380 0.04226 2026 6 13 61204 0.1833 0.4426 0.05516
2026 5 3 61163 0.1015 0.4387 0.04252 2026 6 14 61205 0.1847 0.4422 0.05615
2026 5 4 61164 0.1028 0.4394 0.04297 2026 6 15 61206 0.1861 0.4417 0.05730
2026 5 5 61165 0.1041 0.4401 0.04352 2026 6 16 61207 0.1875 0.4412 0.05855
2026 5 6 61166 0.1054 0.4408 0.04410 2026 6 17 61208 0.1889 0.4407 0.05970
2026 5 7 61167 0.1067 0.4415 0.04462 2026 6 18 61209 0.1903 0.4402 0.06064
2026 5 8 61168 0.1081 0.4422 0.04494 2026 6 19 61210 0.1917 0.4396 0.06134
2026 5 9 61169 0.1094 0.4428 0.04517 2026 6 20 61211 0.1930 0.4391 0.06189
2026 5 10 61170 0.1108 0.4434 0.04517 2026 6 21 61212 0.1944 0.4385 0.06231
2026 5 11 61171 0.1121 0.4440 0.04495 2026 6 22 61213 0.1957 0.4378 0.06270
2026 5 12 61172 0.1135 0.4446 0.04445 2026 6 23 61214 0.1971 0.4372 0.06319
2026 5 13 61173 0.1149 0.4451 0.04382 2026 6 24 61215 0.1984 0.4365 0.06381
2026 5 14 61174 0.1163 0.4456 0.04324 2026 6 25 61216 0.1997 0.4359 0.06463
2026 5 15 61175 0.1177 0.4461 0.04278 2026 6 26 61217 0.2010 0.4352 0.06565
2026 5 16 61176 0.1192 0.4466 0.04261 2026 6 27 61218 0.2023 0.4344 0.06693
2026 5 17 61177 0.1206 0.4471 0.04273 2026 6 28 61219 0.2036 0.4337 0.06834
2026 5 18 61178 0.1220 0.4475 0.04312 2026 6 29 61220 0.2048 0.4329 0.06988
2026 5 19 61179 0.1235 0.4479 0.04371 2026 6 30 61221 0.2061 0.4321 0.07149
2026 5 20 61180 0.1249 0.4483 0.04431 2026 7 1 61222 0.2073 0.4313 0.07309
2026 5 21 61181 0.1264 0.4487 0.04475 2026 7 2 61223 0.2085 0.4305 0.07453
2026 5 22 61182 0.1279 0.4490 0.04498 2026 7 3 61224 0.2097 0.4297 0.07579
2026 5 23 61183 0.1294 0.4494 0.04506 2026 7 4 61225 0.2109 0.4288 0.07685
2026 5 24 61184 0.1308 0.4497 0.04496 2026 7 5 61226 0.2121 0.4279 0.07772
2026 5 25 61185 0.1323 0.4500 0.04474 2026 7 6 61227 0.2132 0.4270 0.07845
2026 5 26 61186 0.1338 0.4502 0.04465 2026 7 7 61228 0.2144 0.4261 0.07908
2026 5 27 61187 0.1353 0.4505 0.04475 2026 7 8 61229 0.2155 0.4252 0.07971
2026 5 28 61188 0.1368 0.4507 0.04502 2026 7 9 61230 0.2166 0.4242 0.08048
2026 5 29 61189 0.1383 0.4509 0.04558 2026 7 10 61231 0.2177 0.4233 0.08139
2026 5 30 61190 0.1398 0.4510 0.04628 2026 7 11 61232 0.2188 0.4223 0.08254
2026 5 31 61191 0.1413 0.4512 0.04715 2026 7 12 61233 0.2198 0.4213 0.08400
2026 6 1 61192 0.1428 0.4513 0.04812 2026 7 13 61234 0.2209 0.4203 0.08562
2026 6 2 61193 0.1443 0.4514 0.04919 2026 7 14 61235 0.2219 0.4192 0.08710
2026 6 3 61194 0.1459 0.4515 0.05023 2026 7 15 61236 0.2229 0.4182 0.08840
2026 6 4 61195 0.1474 0.4515 0.05123 2026 7 16 61237 0.2238 0.4171 0.08945
2026 6 5 61196 0.1489 0.4515 0.05208 2026 7 17 61238 0.2248 0.4160 0.09020
2026 6 6 61197 0.1504 0.4515 0.05274 2026 7 18 61239 0.2257 0.4149 0.09079
2026 6 7 61198 0.1519 0.4515 0.05319 2026 7 19 61240 0.2267 0.4138 0.09128
2026 6 8 61199 0.1534 0.4515 0.05341 2026 7 20 61241 0.2276 0.4127 0.09179
2026 6 9 61200 0.1549 0.4514 0.05345 2026 7 21 61242 0.2284 0.4115 0.09251
2026 6 10 61201 0.1564 0.4513 0.05332 2026 7 22 61243 0.2293 0.4104 0.09346
2026 6 11 61202 0.1579 0.4512 0.05318 2026 7 23 61244 0.2301 0.4092 0.09462
2026 6 12 61203 0.1594 0.4511 0.05321 2026 7 24 61245 0.2309 0.4080 0.09598
2026 6 13 61204 0.1609 0.4509 0.05350 2026 7 25 61246 0.2317 0.4068 0.09752
2026 6 14 61205 0.1624 0.4507 0.05402 2026 7 26 61247 0.2325 0.4056 0.09923
2026 6 15 61206 0.1639 0.4505 0.05474 2026 7 27 61248 0.2332 0.4044 0.10098
2026 6 16 61207 0.1654 0.4503 0.05546 2026 7 28 61249 0.2339 0.4031 0.10263
2026 6 17 61208 0.1668 0.4501 0.05612 2026 7 29 61250 0.2346 0.4019 0.10410
2026 6 18 61209 0.1683 0.4498 0.05665 2026 7 30 61251 0.2353 0.4006 0.10535
2026 6 19 61210 0.1698 0.4495 0.05691 2026 7 31 61252 0.2360 0.3994 0.10625
2026 6 20 61211 0.1712 0.4492 0.05708 2026 8 1 61253 0.2366 0.3981 0.10700
2026 6 21 61212 0.1727 0.4488 0.05709 2026 8 2 61254 0.2372 0.3968 0.10755
2026 6 22 61213 0.1741 0.4485 0.05708 2026 8 3 61255 0.2378 0.3955 0.10800
2026 6 23 61214 0.1755 0.4481 0.05714 2026 8 4 61256 0.2383 0.3942 0.10837
2026 6 24 61215 0.1770 0.4477 0.05734 2026 8 5 61257 0.2388 0.3929 0.10886
2026 6 25 61216 0.1784 0.4473 0.05777 2026 8 6 61258 0.2393 0.3916 0.10961
2026 6 26 61217 0.1798 0.4468 0.05836 2026 8 7 61259 0.2398 0.3902 0.11059
2026 6 27 61218 0.1812 0.4463 0.05918 2026 8 8 61260 0.2403 0.3889 0.11182
2026 6 28 61219 0.1826 0.4458 0.06018 2026 8 9 61261 0.2407 0.3876 0.11317
2026 6 29 61220 0.1839 0.4453 0.06126 2026 8 10 61262 0.2411 0.3862 0.11450
2026 6 30 61221 0.1853 0.4448 0.06233 2026 8 11 61263 0.2415 0.3848 0.11570
2026 7 1 61222 0.1867 0.4442 0.06335 2026 8 12 61264 0.2418 0.3835 0.11665
2026 7 2 61223 0.1880 0.4437 0.06424 2026 8 13 61265 0.2422 0.3821 0.11726
2026 7 3 61224 0.1893 0.4431 0.06492 2026 8 14 61266 0.2424 0.3807 0.11763
2026 7 4 61225 0.1906 0.4425 0.06546 2026 8 15 61267 0.2427 0.3793 0.11793
2026 7 5 61226 0.1919 0.4418 0.06588 2026 8 16 61268 0.2430 0.3780 0.11819
2026 7 6 61227 0.1932 0.4412 0.06616 2026 8 17 61269 0.2432 0.3766 0.11850
2026 7 7 61228 0.1945 0.4405 0.06642 2026 8 18 61270 0.2434 0.3752 0.11910
2026 7 8 61229 0.1957 0.4398 0.06666 2026 8 19 61271 0.2435 0.3738 0.12000
2026 7 9 61230 0.1970 0.4391 0.06707 2026 8 20 61272 0.2437 0.3724 0.12109
2026 7 10 61231 0.1982 0.4383 0.06769 2026 8 21 61273 0.2438 0.3710 0.12242
2026 7 11 61232 0.1994 0.4376 0.06867 2026 8 22 61274 0.2439 0.3696 0.12379
2026 7 12 61233 0.2006 0.4368 0.06987 2026 8 23 61275 0.2439 0.3682 0.12516
2026 7 13 61234 0.2018 0.4360 0.07117 2026 8 24 61276 0.2440 0.3668 0.12644
2026 7 14 61235 0.2030 0.4352 0.07254 2026 8 25 61277 0.2440 0.3654 0.12762
2026 7 15 61236 0.2041 0.4344 0.07370 2026 8 26 61278 0.2439 0.3639 0.12856
2026 7 16 61237 0.2052 0.4335 0.07464 2026 8 27 61279 0.2439 0.3625 0.12930
2026 7 17 61238 0.2063 0.4327 0.07533 2026 8 28 61280 0.2438 0.3611 0.12977
2026 7 18 61239 0.2074 0.4318 0.07582 2026 8 29 61281 0.2437 0.3597 0.13002
2026 7 19 61240 0.2085 0.4309 0.07620 2026 8 30 61282 0.2436 0.3583 0.13010
2026 7 20 61241 0.2095 0.4300 0.07664 2026 8 31 61283 0.2434 0.3569 0.13012
2026 7 21 61242 0.2106 0.4290 0.07722 2026 9 1 61284 0.2432 0.3555 0.13019
2026 7 22 61243 0.2116 0.4281 0.07797 2026 9 2 61285 0.2430 0.3541 0.13033
2026 7 23 61244 0.2126 0.4271 0.07895 2026 9 3 61286 0.2428 0.3527 0.13061
2026 7 24 61245 0.2136 0.4261 0.08016 2026 9 4 61287 0.2425 0.3513 0.13112
2026 7 25 61246 0.2145 0.4252 0.08152 2026 9 5 61288 0.2422 0.3499 0.13176
2026 7 26 61247 0.2154 0.4241 0.08295 2026 9 6 61289 0.2419 0.3486 0.13238
2026 7 27 61248 0.2163 0.4231 0.08436 2026 9 7 61290 0.2415 0.3472 0.13286
2026 7 28 61249 0.2172 0.4221 0.08577 2026 9 8 61291 0.2411 0.3458 0.13307
2026 7 29 61250 0.2181 0.4210 0.08699 2026 9 9 61292 0.2407 0.3444 0.13301
2026 7 30 61251 0.2190 0.4200 0.08801 2026 9 10 61293 0.2403 0.3431 0.13275
2026 7 31 61252 0.2198 0.4189 0.08888 2026 9 11 61294 0.2399 0.3417 0.13228
2026 8 1 61253 0.2206 0.4178 0.08954 2026 9 12 61295 0.2394 0.3404 0.13182
2026 8 2 61254 0.2214 0.4167 0.09007 2026 9 13 61296 0.2389 0.3390 0.13136
2026 8 3 61255 0.2221 0.4156 0.09056 2026 9 14 61297 0.2383 0.3377 0.13101
2026 8 4 61256 0.2228 0.4145 0.09105 2026 9 15 61298 0.2378 0.3364 0.13082
2026 8 5 61257 0.2236 0.4133 0.09163 2026 9 16 61299 0.2372 0.3351 0.13083
2026 8 6 61258 0.2242 0.4122 0.09239 2026 9 17 61300 0.2366 0.3338 0.13104
2026 8 7 61259 0.2249 0.4110 0.09343 2026 9 18 61301 0.2359 0.3325 0.13133
2026 8 8 61260 0.2255 0.4099 0.09474 2026 9 19 61302 0.2353 0.3312 0.13171
2026 8 9 61261 0.2261 0.4087 0.09612 2026 9 20 61303 0.2346 0.3299 0.13210
2026 8 10 61262 0.2267 0.4075 0.09750 2026 9 21 61304 0.2339 0.3286 0.13238
2026 8 11 61263 0.2273 0.4063 0.09878 2026 9 22 61305 0.2331 0.3274 0.13247
2026 8 12 61264 0.2278 0.4051 0.09973 2026 9 23 61306 0.2323 0.3261 0.13234
2026 8 13 61265 0.2284 0.4039 0.10038 2026 9 24 61307 0.2316 0.3249 0.13197
2026 8 14 61266 0.2288 0.4027 0.10079 2026 9 25 61308 0.2307 0.3237 0.13133
2026 8 15 61267 0.2293 0.4015 0.10111 2026 9 26 61309 0.2299 0.3225 0.13057
2026 8 16 61268 0.2297 0.4002 0.10141 2026 9 27 61310 0.2290 0.3213 0.12980
2026 8 17 61269 0.2302 0.3990 0.10185 2026 9 28 61311 0.2282 0.3201 0.12907
2026 8 18 61270 0.2305 0.3977 0.10247 2026 9 29 61312 0.2273 0.3189 0.12856
2026 8 19 61271 0.2309 0.3965 0.10329 2026 9 30 61313 0.2263 0.3178 0.12825
2026 8 20 61272 0.2312 0.3952 0.10434 2026 10 1 61314 0.2254 0.3167 0.12823
2026 8 21 61273 0.2316 0.3939 0.10554 2026 10 2 61315 0.2244 0.3155 0.12839
2026 8 22 61274 0.2318 0.3927 0.10684 2026 10 3 61316 0.2234 0.3144 0.12872
2026 8 23 61275 0.2321 0.3914 0.10813 2026 10 4 61317 0.2224 0.3133 0.12899
2026 8 24 61276 0.2323 0.3901 0.10930 2026 10 5 61318 0.2213 0.3123 0.12909
2026 8 25 61277 0.2325 0.3888 0.11041 2026 10 6 61319 0.2203 0.3112 0.12904
2026 8 26 61278 0.2327 0.3876 0.11138 2026 10 7 61320 0.2192 0.3101 0.12871
2026 8 27 61279 0.2329 0.3863 0.11213 2026 10 8 61321 0.2181 0.3091 0.12823
2026 8 28 61280 0.2330 0.3850 0.11267 2026 10 9 61322 0.2169 0.3081 0.12763
2026 8 29 61281 0.2331 0.3837 0.11302 2026 10 10 61323 0.2158 0.3071 0.12702
2026 8 30 61282 0.2332 0.3824 0.11313 2026 10 11 61324 0.2146 0.3061 0.12646
2026 8 31 61283 0.2332 0.3811 0.11316 2026 10 12 61325 0.2134 0.3052 0.12607
2026 9 1 61284 0.2332 0.3798 0.11330 2026 10 13 61326 0.2122 0.3043 0.12588
2026 9 2 61285 0.2332 0.3785 0.11355 2026 10 14 61327 0.2110 0.3033 0.12585
2026 9 3 61286 0.2332 0.3772 0.11400 2026 10 15 61328 0.2098 0.3024 0.12602
2026 9 4 61287 0.2331 0.3759 0.11460 2026 10 16 61329 0.2085 0.3016 0.12630
2026 9 5 61288 0.2330 0.3746 0.11532 2026 10 17 61330 0.2072 0.3007 0.12661
2026 9 6 61289 0.2329 0.3733 0.11599 2026 10 18 61331 0.2059 0.2999 0.12683
2026 9 7 61290 0.2328 0.3721 0.11654 2026 10 19 61332 0.2046 0.2990 0.12689
2026 9 8 61291 0.2326 0.3708 0.11692 2026 10 20 61333 0.2033 0.2982 0.12680
2026 9 9 61292 0.2324 0.3695 0.11713 2026 10 21 61334 0.2019 0.2975 0.12644
2026 9 10 61293 0.2322 0.3682 0.11707 2026 10 22 61335 0.2005 0.2967 0.12584
2026 9 11 61294 0.2319 0.3669 0.11686 2026 10 23 61336 0.1992 0.2960 0.12511
2026 9 12 61295 0.2317 0.3657 0.11659 2026 10 24 61337 0.1978 0.2952 0.12426
2026 9 13 61296 0.2314 0.3644 0.11633 2026 10 25 61338 0.1964 0.2946 0.12345
2026 9 14 61297 0.2310 0.3631 0.11621 2026 10 26 61339 0.1949 0.2939 0.12281
2026 9 15 61298 0.2307 0.3619 0.11636 2026 10 27 61340 0.1935 0.2932 0.12239
2026 9 16 61299 0.2303 0.3606 0.11676 2026 10 28 61341 0.1920 0.2926 0.12222
2026 9 17 61300 0.2299 0.3594 0.11735 2026 10 29 61342 0.1906 0.2920 0.12229
2026 9 18 61301 0.2295 0.3581 0.11815 2026 10 30 61343 0.1891 0.2914 0.12254
These predictions are based on all announced leap seconds. These predictions are based on all announced leap seconds.
CELESTIAL POLE OFFSET SERIES: CELESTIAL POLE OFFSET SERIES:
NEOS Celestial Pole Offset Series NEOS Celestial Pole Offset Series
MJD dpsi error deps error MJD dpsi error deps error
(msec. of arc) (msec. of arc)
60914 -122.00 0.72 -10.11 0.10 60959 -120.67 0.72 -9.76 0.02
60915 -122.35 0.72 -10.32 0.10 60960 -120.67 0.85 -9.67 0.05
60916 -122.39 0.72 -10.40 0.10 60961 -120.61 0.85 -9.74 0.05
60917 -122.15 0.87 -10.37 0.08 60962 -120.34 0.95 -9.85 0.06
60918 -121.82 1.55 -10.36 0.13
60919 -121.58 1.55 -10.47 0.13
60920 -121.41 2.06 -10.63 0.17
60921 -121.29 1.79 -10.71 0.18
60922 -121.23 1.79 -10.68 0.18
60923 -121.31 1.79 -10.60 0.18
IAU2000A Celestial Pole Offset Series IAU2000A Celestial Pole Offset Series
MJD dX error dY error MJD dX error dY error
(msec. of arc) (msec. of arc)
60914 0.331 0.288 -0.053 0.104 60959 0.295 0.287 -0.064 0.017
60915 0.361 0.288 -0.033 0.104 60960 0.308 0.339 -0.063 0.047
60916 0.397 0.288 -0.014 0.104 60961 0.323 0.339 -0.063 0.047
60917 0.439 0.346 0.001 0.079 60962 0.340 0.379 -0.062 0.062
60918 0.479 0.618 0.011 0.128
60919 0.514 0.618 0.014 0.128
60920 0.536 0.819 0.010 0.173
60921 0.540 0.714 -0.003 0.178
60922 0.531 0.714 -0.023 0.178
60923 0.513 0.714 -0.047 0.178
)--"; )--";

View File

@ -156,18 +156,24 @@ public:
enum class mount_status_t : int { IDLE, INITIALIZATION, STOPPED, SLEWING, ADJUSTING, TRACKING, ERROR }; enum class mount_status_t : int { IDLE, INITIALIZATION, STOPPED, SLEWING, ADJUSTING, TRACKING, ERROR };
MccGenericMount(HardwareT hardware, template <typename... HardwareCtorArgTs,
TelemetryT telemetry, typename... TelemetryCtorArgTs,
PZoneContT pzone_cont, typename... PZoneContCtorArgTs,
SlewModelT slew_model, typename... SlewModelCtorArgTs,
TrackModelT track_model, typename... TrackModelCtorArgTs,
LoggerT logger = MccNullLogger{}) typename... LoggerCtorArgTs>
: HardwareT(std::move(hardware)), MccGenericMount(std::tuple<HardwareCtorArgTs...> hw_ctor_args,
TelemetryT(std::move(telemetry)), std::tuple<TelemetryCtorArgTs...> tm_ctor_args,
PZoneContT(std::move(pzone_cont)), std::tuple<PZoneContCtorArgTs...> pzcont_ctor_args,
SlewModelT(std::move(slew_model)), std::tuple<SlewModelCtorArgTs...> smodel_ctor_args,
TrackModelT(std::move(track_model)), std::tuple<TrackModelCtorArgTs...> tmodel_ctor_args,
LoggerT(std::move(logger)), std::tuple<LoggerCtorArgTs...> log_ctor_args)
: HardwareT(std::make_from_tuple<HardwareT>(std::move(hw_ctor_args))),
TelemetryT(std::make_from_tuple<TelemetryT>(std::move(tm_ctor_args))),
PZoneContT(std::make_from_tuple<PZoneContT>(std::move(pzcont_ctor_args))),
SlewModelT(std::make_from_tuple<SlewModelT>(std::move(smodel_ctor_args))),
TrackModelT(std::make_from_tuple<TrackModelT>(std::move(tmodel_ctor_args))),
LoggerT(std::make_from_tuple<LoggerT>(std::move(log_ctor_args))),
_mountStatus(new std::atomic<mount_status_t>{}) _mountStatus(new std::atomic<mount_status_t>{})
{ {
*_mountStatus = mount_status_t::IDLE; *_mountStatus = mount_status_t::IDLE;
@ -750,12 +756,17 @@ protected:
public: public:
template <fsm::traits::fsm_state_c ERROR_STATE_T = MccGenericFsmMountErrorState> template <fsm::traits::fsm_state_c StartStateT, typename... MountCtorArgTs>
MccGenericFsmMount(MOUNT_T mount, MccGenericFsmMount(StartStateT start_state, MountCtorArgTs&&... mount_ctor_args)
fsm::traits::fsm_state_c auto start_state = MccGenericFsmMountStartState<ERROR_STATE_T>{}) : MOUNT_T(std::forward<MountCtorArgTs>(mount_ctor_args)...), fsm::MccFiniteStateMachine(std::move(start_state))
: MOUNT_T(std::move(mount)), fsm::MccFiniteStateMachine(std::move(start_state))
{ {
} }
// template <fsm::traits::fsm_state_c ERROR_STATE_T = MccGenericFsmMountErrorState>
// MccGenericFsmMount(MOUNT_T mount,
// fsm::traits::fsm_state_c auto start_state = MccGenericFsmMountStartState<ERROR_STATE_T>{})
// : MOUNT_T(std::move(mount)), fsm::MccFiniteStateMachine(std::move(start_state))
// {
// }
// reimplementation of base-class methods to adapt it to FSM-behavior // reimplementation of base-class methods to adapt it to FSM-behavior

View File

@ -171,7 +171,7 @@ public:
std::stringstream st; std::stringstream st;
st << std::this_thread::get_id(); st << std::this_thread::get_id();
logInfo(std::format("Create mount server instance (thread ID = {})", st.str())); logInfo(std::format("Create generic network server instance (thread ID = {})", st.str()));
} }
template <typename... LoggerCtorArgsTs> template <typename... LoggerCtorArgsTs>
@ -186,7 +186,7 @@ public:
std::stringstream st; std::stringstream st;
st << std::this_thread::get_id(); st << std::this_thread::get_id();
logInfo(std::format("Create mount server instance (thread ID = {})", st.str())); logInfo(std::format("Create generic network server instance (thread ID = {})", st.str()));
} }
// MccNetworkServer(asio::io_context& ctx, const handle_message_func_t& func, LoggerT logger = MccNullLogger{}) // MccNetworkServer(asio::io_context& ctx, const handle_message_func_t& func, LoggerT logger = MccNullLogger{})
@ -203,7 +203,7 @@ public:
std::stringstream st; std::stringstream st;
st << std::this_thread::get_id(); st << std::this_thread::get_id();
logInfo(std::format("Delete mount server instance (thread ID = {}) ...", st.str())); logInfo(std::format("Delete generic network server instance (thread ID = {}) ...", st.str()));
stopListening(); stopListening();
disconnectClients(); disconnectClients();

View File

@ -46,7 +46,7 @@ static constexpr bool mcc_char_range_compare(const traits::mcc_char_view auto& w
* Very simple various protocols endpoint parser and holder class * Very simple various protocols endpoint parser and holder class
* *
* endpoint: proto_mark://host_name:port_num/path * endpoint: proto_mark://host_name:port_num/path
* where "part" is optional for all non-local protocol kinds; * where "path" is optional for all non-local protocol kinds;
* *
* for local kind of protocols the endpoint must be given as: * for local kind of protocols the endpoint must be given as:
* local://stream/PATH * local://stream/PATH