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