Compare commits

...

2 Commits

Author SHA1 Message Date
e529265a63 ... 2025-11-21 12:33:49 +03:00
b2c27a6f5c ... 2025-11-21 02:02:35 +03:00
5 changed files with 498 additions and 507 deletions

View File

@ -255,11 +255,11 @@ Asibfm700Mount::error_t Asibfm700Mount::initMount()
setStateERFA(std::move(ccte_state)); setStateERFA(std::move(ccte_state));
setTelemetryDataUpdateInterval(_mountConfig.hardwarePollingPeriod()); // setTelemetryDataUpdateInterval(_mountConfig.hardwarePollingPeriod());
setTelemetryUpdateTimeout(_mountConfig.movingModelParams().telemetryTimeout); setTelemetryUpdateTimeout(_mountConfig.movingModelParams().telemetryTimeout);
startInternalTelemetryDataUpdating(); startInternalTelemetryDataUpdating();
std::this_thread::sleep_for(std::chrono::milliseconds(100)); // std::this_thread::sleep_for(std::chrono::milliseconds(100));
bool ok = isInternalTelemetryDataUpdating(); bool ok = isInternalTelemetryDataUpdating();
if (ok) { if (ok) {

View File

@ -7,6 +7,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
find_package(Threads REQUIRED)
# ******* SPDLOG LIBRARY ******* # ******* SPDLOG LIBRARY *******
@ -79,7 +80,7 @@ set(MCC_LIBRARY mcc)
add_library(${MCC_LIBRARY} INTERFACE ${MCC_LIBRARY_SRC}) add_library(${MCC_LIBRARY} INTERFACE ${MCC_LIBRARY_SRC})
target_compile_features(${MCC_LIBRARY} INTERFACE cxx_std_23) target_compile_features(${MCC_LIBRARY} INTERFACE cxx_std_23)
target_compile_definitions(${MCC_LIBRARY} INTERFACE SPDLOG_USE_STD_FORMAT=1 SPDLOG_FMT_EXTERNAL=0) target_compile_definitions(${MCC_LIBRARY} INTERFACE SPDLOG_USE_STD_FORMAT=1 SPDLOG_FMT_EXTERNAL=0)
target_link_libraries(${MCC_LIBRARY} INTERFACE spdlog) target_link_libraries(${MCC_LIBRARY} INTERFACE spdlog Threads::Threads)
target_include_directories(${MCC_LIBRARY} INTERFACE ${ERFA_INCLUDE_DIR} ${BSPLINES_INCLUDE_DIR}) target_include_directories(${MCC_LIBRARY} INTERFACE ${ERFA_INCLUDE_DIR} ${BSPLINES_INCLUDE_DIR})
target_include_directories(${MCC_LIBRARY} INTERFACE target_include_directories(${MCC_LIBRARY} INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>

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 *
********************************************************************** **********************************************************************
30 October 2025 Vol. XXXVIII No. 044 20 November 2025 Vol. XXXVIII No. 047
______________________________________________________________________ ______________________________________________________________________
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 10 24 60972 0.18970 .00009 0.32280 .00009 0.093314 0.000025 25 11 14 60993 0.15642 .00009 0.31566 .00009 0.086436 0.000011
25 10 25 60973 0.18784 .00009 0.32283 .00009 0.093517 0.000025 25 11 15 60994 0.15459 .00009 0.31596 .00009 0.085644 0.000011
25 10 26 60974 0.18602 .00009 0.32275 .00009 0.093749 0.000022 25 11 16 60995 0.15290 .00009 0.31633 .00009 0.084908 0.000011
25 10 27 60975 0.18446 .00009 0.32243 .00009 0.094060 0.000019 25 11 17 60996 0.15108 .00009 0.31661 .00009 0.084301 0.000011
25 10 28 60976 0.18324 .00009 0.32200 .00009 0.094375 0.000016 25 11 18 60997 0.14916 .00009 0.31650 .00009 0.083875 0.000012
25 10 29 60977 0.18207 .00009 0.32173 .00009 0.094458 0.000016 25 11 19 60998 0.14739 .00009 0.31629 .00009 0.083648 0.000010
25 10 30 60978 0.18080 .00009 0.32157 .00009 0.094295 0.000016 25 11 20 60999 0.14563 .00009 0.31617 .00009 0.083578 0.000009
_______________________________________________________________________ _______________________________________________________________________
@ -130,403 +130,409 @@ 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.1296 + 0.1193 cos A - 0.0805 sin A - 0.0668 cos C - 0.0019 sin C x = 0.1356 + 0.0739 cos A - 0.1246 sin A - 0.0602 cos C + 0.0286 sin C
y = 0.3859 - 0.0654 cos A - 0.1170 sin A - 0.0019 cos C + 0.0668 sin C y = 0.3909 - 0.1070 cos A - 0.0778 sin A + 0.0286 cos C + 0.0602 sin C
UT1-UTC = 0.0734 + 0.00008 (MJD - 60986) - (UT2-UT1) UT1-UTC = 0.0697 + 0.00008 (MJD - 61007) - (UT2-UT1)
where A = 2*pi*(MJD-60978)/365.25 and C = 2*pi*(MJD-60978)/435. where A = 2*pi*(MJD-60999)/365.25 and C = 2*pi*(MJD-60999)/435.
TAI-UTC(MJD 60979) = 37.0 TAI-UTC(MJD 61000) = 37.0
The accuracy may be estimated from the expressions: The accuracy may be estimated from the expressions:
S x,y = 0.00068 (MJD-60978)**0.80 S t = 0.00025 (MJD-60978)**0.75 S x,y = 0.00068 (MJD-60999)**0.80 S t = 0.00025 (MJD-60999)**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 10 31 60979 0.1796 0.3213 0.09390 2025 11 21 61000 0.1441 0.3160 0.08366
2025 11 1 60980 0.1783 0.3211 0.09323 2025 11 22 61001 0.1425 0.3160 0.08387
2025 11 2 60981 0.1771 0.3209 0.09233 2025 11 23 61002 0.1411 0.3160 0.08414
2025 11 3 60982 0.1759 0.3207 0.09132 2025 11 24 61003 0.1398 0.3161 0.08437
2025 11 4 60983 0.1748 0.3204 0.09032 2025 11 25 61004 0.1385 0.3162 0.08450
2025 11 5 60984 0.1738 0.3201 0.08949 2025 11 26 61005 0.1372 0.3163 0.08443
2025 11 6 60985 0.1727 0.3198 0.08896 2025 11 27 61006 0.1359 0.3165 0.08414
2025 11 7 60986 0.1716 0.3195 0.08875 2025 11 28 61007 0.1346 0.3167 0.08359
2025 11 8 60987 0.1706 0.3193 0.08880 2025 11 29 61008 0.1334 0.3169 0.08280
2025 11 9 60988 0.1695 0.3190 0.08897 2025 11 30 61009 0.1321 0.3171 0.08184
2025 11 10 60989 0.1684 0.3187 0.08909 2025 12 1 61010 0.1309 0.3173 0.08085
2025 11 11 60990 0.1673 0.3184 0.08904 2025 12 2 61011 0.1297 0.3176 0.07998
2025 11 12 60991 0.1663 0.3181 0.08876 2025 12 3 61012 0.1285 0.3178 0.07935
2025 11 13 60992 0.1652 0.3178 0.08831 2025 12 4 61013 0.1273 0.3180 0.07904
2025 11 14 60993 0.1641 0.3176 0.08774 2025 12 5 61014 0.1261 0.3183 0.07901
2025 11 15 60994 0.1630 0.3173 0.08712 2025 12 6 61015 0.1250 0.3186 0.07915
2025 11 16 60995 0.1619 0.3170 0.08654 2025 12 7 61016 0.1238 0.3189 0.07931
2025 11 17 60996 0.1608 0.3168 0.08610 2025 12 8 61017 0.1227 0.3192 0.07937
2025 11 18 60997 0.1597 0.3166 0.08585 2025 12 9 61018 0.1216 0.3195 0.07923
2025 11 19 60998 0.1585 0.3163 0.08582 2025 12 10 61019 0.1205 0.3198 0.07891
2025 11 20 60999 0.1574 0.3161 0.08604 2025 12 11 61020 0.1194 0.3202 0.07844
2025 11 21 61000 0.1562 0.3159 0.08646 2025 12 12 61021 0.1183 0.3206 0.07790
2025 11 22 61001 0.1551 0.3157 0.08704 2025 12 13 61022 0.1172 0.3210 0.07736
2025 11 23 61002 0.1539 0.3156 0.08771 2025 12 14 61023 0.1161 0.3213 0.07692
2025 11 24 61003 0.1528 0.3154 0.08837 2025 12 15 61024 0.1150 0.3218 0.07663
2025 11 25 61004 0.1516 0.3153 0.08894 2025 12 16 61025 0.1139 0.3222 0.07652
2025 11 26 61005 0.1504 0.3152 0.08934 2025 12 17 61026 0.1129 0.3226 0.07662
2025 11 27 61006 0.1492 0.3151 0.08951 2025 12 18 61027 0.1118 0.3231 0.07693
2025 11 28 61007 0.1481 0.3150 0.08941 2025 12 19 61028 0.1108 0.3236 0.07742
2025 11 29 61008 0.1469 0.3149 0.08906 2025 12 20 61029 0.1097 0.3241 0.07803
2025 11 30 61009 0.1457 0.3149 0.08852 2025 12 21 61030 0.1087 0.3246 0.07869
2025 12 1 61010 0.1445 0.3148 0.08790 2025 12 22 61031 0.1077 0.3251 0.07931
2025 12 2 61011 0.1433 0.3148 0.08736 2025 12 23 61032 0.1067 0.3256 0.07981
2025 12 3 61012 0.1421 0.3148 0.08702 2025 12 24 61033 0.1057 0.3262 0.08012
2025 12 4 61013 0.1408 0.3149 0.08698 2025 12 25 61034 0.1047 0.3268 0.08021
2025 12 5 61014 0.1396 0.3149 0.08720 2025 12 26 61035 0.1037 0.3274 0.08008
2025 12 6 61015 0.1384 0.3150 0.08759 2025 12 27 61036 0.1027 0.3280 0.07978
2025 12 7 61016 0.1372 0.3151 0.08800 2025 12 28 61037 0.1017 0.3286 0.07939
2025 12 8 61017 0.1360 0.3152 0.08830 2025 12 29 61038 0.1008 0.3292 0.07905
2025 12 9 61018 0.1348 0.3153 0.08840 2025 12 30 61039 0.0998 0.3299 0.07887
2025 12 10 61019 0.1336 0.3155 0.08829 2025 12 31 61040 0.0989 0.3306 0.07894
2025 12 11 61020 0.1324 0.3157 0.08802 2026 1 1 61041 0.0980 0.3313 0.07927
2025 12 12 61021 0.1312 0.3159 0.08768 2026 1 2 61042 0.0971 0.3320 0.07980
2025 12 13 61022 0.1300 0.3161 0.08735 2026 1 3 61043 0.0962 0.3327 0.08039
2025 12 14 61023 0.1288 0.3163 0.08711 2026 1 4 61044 0.0953 0.3334 0.08090
2025 12 15 61024 0.1276 0.3166 0.08701 2026 1 5 61045 0.0944 0.3342 0.08121
2025 12 16 61025 0.1264 0.3169 0.08709 2026 1 6 61046 0.0936 0.3350 0.08127
2025 12 17 61026 0.1252 0.3172 0.08736 2026 1 7 61047 0.0927 0.3357 0.08113
2025 12 18 61027 0.1240 0.3175 0.08780 2026 1 8 61048 0.0919 0.3365 0.08087
2025 12 19 61028 0.1228 0.3178 0.08838 2026 1 9 61049 0.0911 0.3374 0.08059
2025 12 20 61029 0.1217 0.3182 0.08904 2026 1 10 61050 0.0903 0.3382 0.08037
2025 12 21 61030 0.1205 0.3185 0.08971 2026 1 11 61051 0.0895 0.3390 0.08029
2025 12 22 61031 0.1194 0.3189 0.09030 2026 1 12 61052 0.0887 0.3399 0.08037
2025 12 23 61032 0.1182 0.3194 0.09074 2026 1 13 61053 0.0880 0.3408 0.08064
2025 12 24 61033 0.1171 0.3198 0.09096 2026 1 14 61054 0.0873 0.3416 0.08110
2025 12 25 61034 0.1159 0.3202 0.09095 2026 1 15 61055 0.0865 0.3425 0.08171
2025 12 26 61035 0.1148 0.3207 0.09069 2026 1 16 61056 0.0858 0.3435 0.08243
2025 12 27 61036 0.1137 0.3212 0.09025 2026 1 17 61057 0.0851 0.3444 0.08317
2025 12 28 61037 0.1126 0.3217 0.08971 2026 1 18 61058 0.0845 0.3453 0.08384
2025 12 29 61038 0.1115 0.3223 0.08919 2026 1 19 61059 0.0838 0.3463 0.08436
2025 12 30 61039 0.1104 0.3228 0.08881 2026 1 20 61060 0.0832 0.3472 0.08466
2025 12 31 61040 0.1093 0.3234 0.08867 2026 1 21 61061 0.0826 0.3482 0.08471
2026 1 1 61041 0.1082 0.3240 0.08878 2026 1 22 61062 0.0820 0.3492 0.08452
2026 1 2 61042 0.1072 0.3246 0.08908 2026 1 23 61063 0.0814 0.3502 0.08414
2026 1 3 61043 0.1061 0.3252 0.08946 2026 1 24 61064 0.0808 0.3512 0.08366
2026 1 4 61044 0.1051 0.3258 0.08974 2026 1 25 61065 0.0803 0.3522 0.08320
2026 1 5 61045 0.1041 0.3265 0.08984 2026 1 26 61066 0.0798 0.3533 0.08287
2026 1 6 61046 0.1031 0.3272 0.08969 2026 1 27 61067 0.0793 0.3543 0.08275
2026 1 7 61047 0.1021 0.3278 0.08935 2026 1 28 61068 0.0788 0.3554 0.08286
2026 1 8 61048 0.1011 0.3286 0.08889 2026 1 29 61069 0.0783 0.3564 0.08317
2026 1 9 61049 0.1001 0.3293 0.08841 2026 1 30 61070 0.0779 0.3575 0.08357
2026 1 10 61050 0.0992 0.3300 0.08800 2026 1 31 61071 0.0775 0.3586 0.08390
2026 1 11 61051 0.0982 0.3308 0.08772 2026 2 1 61072 0.0771 0.3597 0.08406
2026 1 12 61052 0.0973 0.3316 0.08762 2026 2 2 61073 0.0767 0.3608 0.08396
2026 1 13 61053 0.0964 0.3323 0.08772 2026 2 3 61074 0.0763 0.3619 0.08361
2026 1 14 61054 0.0955 0.3331 0.08801 2026 2 4 61075 0.0760 0.3630 0.08307
2026 1 15 61055 0.0946 0.3340 0.08845 2026 2 5 61076 0.0757 0.3641 0.08244
2026 1 16 61056 0.0938 0.3348 0.08898 2026 2 6 61077 0.0754 0.3652 0.08183
2026 1 17 61057 0.0929 0.3357 0.08954 2026 2 7 61078 0.0751 0.3664 0.08134
2026 1 18 61058 0.0921 0.3365 0.09004 2026 2 8 61079 0.0748 0.3675 0.08100
2026 1 19 61059 0.0913 0.3374 0.09039 2026 2 9 61080 0.0746 0.3686 0.08087
2026 1 20 61060 0.0905 0.3383 0.09052 2026 2 10 61081 0.0744 0.3698 0.08092
2026 1 21 61061 0.0897 0.3392 0.09040 2026 2 11 61082 0.0742 0.3709 0.08114
2026 1 22 61062 0.0890 0.3401 0.09004 2026 2 12 61083 0.0741 0.3721 0.08147
2026 1 23 61063 0.0882 0.3411 0.08949 2026 2 13 61084 0.0739 0.3733 0.08184
2026 1 24 61064 0.0875 0.3420 0.08885 2026 2 14 61085 0.0738 0.3744 0.08218
2026 1 25 61065 0.0868 0.3430 0.08822 2026 2 15 61086 0.0737 0.3756 0.08240
2026 1 26 61066 0.0861 0.3439 0.08774 2026 2 16 61087 0.0736 0.3768 0.08240
2026 1 27 61067 0.0854 0.3449 0.08747 2026 2 17 61088 0.0736 0.3780 0.08215
2026 1 28 61068 0.0848 0.3459 0.08744 2026 2 18 61089 0.0736 0.3792 0.08162
2026 1 29 61069 0.0842 0.3469 0.08762 2026 2 19 61090 0.0736 0.3803 0.08087
2026 1 30 61070 0.0835 0.3479 0.08790 2026 2 20 61091 0.0736 0.3815 0.07998
2026 1 31 61071 0.0830 0.3490 0.08814 2026 2 21 61092 0.0736 0.3827 0.07909
2026 2 1 61072 0.0824 0.3500 0.08821 2026 2 22 61093 0.0737 0.3839 0.07833
2026 2 2 61073 0.0818 0.3511 0.08804 2026 2 23 61094 0.0738 0.3851 0.07779
2026 2 3 61074 0.0813 0.3521 0.08763 2026 2 24 61095 0.0739 0.3863 0.07750
2026 2 4 61075 0.0808 0.3532 0.08703 2026 2 25 61096 0.0741 0.3875 0.07743
2026 2 5 61076 0.0803 0.3543 0.08634 2026 2 26 61097 0.0742 0.3887 0.07749
2026 2 6 61077 0.0799 0.3554 0.08569 2026 2 27 61098 0.0744 0.3899 0.07754
2026 2 7 61078 0.0794 0.3565 0.08515 2026 2 28 61099 0.0746 0.3911 0.07747
2026 2 8 61079 0.0790 0.3576 0.08479 2026 3 1 61100 0.0749 0.3923 0.07717
2026 2 9 61080 0.0786 0.3587 0.08461 2026 3 2 61101 0.0751 0.3934 0.07662
2026 2 10 61081 0.0782 0.3598 0.08463 2026 3 3 61102 0.0754 0.3946 0.07584
2026 2 11 61082 0.0779 0.3609 0.08482 2026 3 4 61103 0.0757 0.3958 0.07493
2026 2 12 61083 0.0776 0.3621 0.08512 2026 3 5 61104 0.0760 0.3970 0.07399
2026 2 13 61084 0.0773 0.3632 0.08547 2026 3 6 61105 0.0764 0.3982 0.07312
2026 2 14 61085 0.0770 0.3643 0.08579 2026 3 7 61106 0.0768 0.3993 0.07240
2026 2 15 61086 0.0767 0.3655 0.08598 2026 3 8 61107 0.0772 0.4005 0.07188
2026 2 16 61087 0.0765 0.3666 0.08601 2026 3 9 61108 0.0776 0.4017 0.07160
2026 2 17 61088 0.0763 0.3678 0.08579 2026 3 10 61109 0.0780 0.4028 0.07151
2026 2 18 61089 0.0761 0.3690 0.08530 2026 3 11 61110 0.0785 0.4040 0.07155
2026 2 19 61090 0.0759 0.3701 0.08458 2026 3 12 61111 0.0790 0.4051 0.07167
2026 2 20 61091 0.0758 0.3713 0.08373 2026 3 13 61112 0.0795 0.4063 0.07179
2026 2 21 61092 0.0756 0.3725 0.08288 2026 3 14 61113 0.0800 0.4074 0.07181
2026 2 22 61093 0.0756 0.3737 0.08216 2026 3 15 61114 0.0806 0.4085 0.07166
2026 2 23 61094 0.0755 0.3748 0.08167 2026 3 16 61115 0.0812 0.4096 0.07127
2026 2 24 61095 0.0754 0.3760 0.08143 2026 3 17 61116 0.0818 0.4107 0.07060
2026 2 25 61096 0.0754 0.3772 0.08142 2026 3 18 61117 0.0824 0.4119 0.06967
2026 2 26 61097 0.0754 0.3784 0.08154 2026 3 19 61118 0.0831 0.4129 0.06856
2026 2 27 61098 0.0754 0.3796 0.08167 2026 3 20 61119 0.0838 0.4140 0.06739
2026 2 28 61099 0.0755 0.3808 0.08166 2026 3 21 61120 0.0845 0.4151 0.06632
2026 3 1 61100 0.0755 0.3820 0.08144 2026 3 22 61121 0.0852 0.4162 0.06547
2026 3 2 61101 0.0756 0.3832 0.08097 2026 3 23 61122 0.0859 0.4172 0.06490
2026 3 3 61102 0.0758 0.3844 0.08027 2026 3 24 61123 0.0867 0.4183 0.06460
2026 3 4 61103 0.0759 0.3855 0.07945 2026 3 25 61124 0.0875 0.4193 0.06448
2026 3 5 61104 0.0761 0.3867 0.07859 2026 3 26 61125 0.0883 0.4204 0.06440
2026 3 6 61105 0.0763 0.3879 0.07781 2026 3 27 61126 0.0891 0.4214 0.06425
2026 3 7 61106 0.0765 0.3891 0.07717 2026 3 28 61127 0.0899 0.4224 0.06392
2026 3 8 61107 0.0767 0.3903 0.07673 2026 3 29 61128 0.0908 0.4234 0.06336
2026 3 9 61108 0.0770 0.3915 0.07649 2026 3 30 61129 0.0917 0.4244 0.06260
2026 3 10 61109 0.0773 0.3926 0.07643 2026 3 31 61130 0.0926 0.4253 0.06168
2026 3 11 61110 0.0776 0.3938 0.07650 2026 4 1 61131 0.0935 0.4263 0.06070
2026 3 12 61111 0.0779 0.3950 0.07665 2026 4 2 61132 0.0945 0.4272 0.05976
2026 3 13 61112 0.0783 0.3961 0.07679 2026 4 3 61133 0.0954 0.4282 0.05895
2026 3 14 61113 0.0787 0.3973 0.07684 2026 4 4 61134 0.0964 0.4291 0.05833
2026 3 15 61114 0.0791 0.3984 0.07671 2026 4 5 61135 0.0974 0.4300 0.05792
2026 3 16 61115 0.0795 0.3996 0.07633 2026 4 6 61136 0.0985 0.4309 0.05771
2026 3 17 61116 0.0800 0.4007 0.07568 2026 4 7 61137 0.0995 0.4317 0.05767
2026 3 18 61117 0.0804 0.4019 0.07477 2026 4 8 61138 0.1006 0.4326 0.05773
2026 3 19 61118 0.0809 0.4030 0.07367 2026 4 9 61139 0.1017 0.4334 0.05783
2026 3 20 61119 0.0815 0.4041 0.07252 2026 4 10 61140 0.1028 0.4343 0.05788
2026 3 21 61120 0.0820 0.4052 0.07145 2026 4 11 61141 0.1039 0.4351 0.05781
2026 3 22 61121 0.0826 0.4063 0.07061 2026 4 12 61142 0.1050 0.4359 0.05754
2026 3 23 61122 0.0832 0.4074 0.07005 2026 4 13 61143 0.1061 0.4366 0.05702
2026 3 24 61123 0.0838 0.4085 0.06976 2026 4 14 61144 0.1073 0.4374 0.05624
2026 3 25 61124 0.0844 0.4096 0.06964 2026 4 15 61145 0.1085 0.4381 0.05525
2026 3 26 61125 0.0851 0.4107 0.06957 2026 4 16 61146 0.1097 0.4389 0.05414
2026 3 27 61126 0.0858 0.4118 0.06942 2026 4 17 61147 0.1109 0.4396 0.05306
2026 3 28 61127 0.0865 0.4128 0.06909 2026 4 18 61148 0.1121 0.4403 0.05215
2026 3 29 61128 0.0872 0.4139 0.06853 2026 4 19 61149 0.1134 0.4409 0.05153
2026 3 30 61129 0.0879 0.4149 0.06776 2026 4 20 61150 0.1146 0.4416 0.05121
2026 3 31 61130 0.0887 0.4159 0.06685 2026 4 21 61151 0.1159 0.4422 0.05113
2026 4 1 61131 0.0895 0.4169 0.06587 2026 4 22 61152 0.1172 0.4428 0.05115
2026 4 2 61132 0.0903 0.4179 0.06493 2026 4 23 61153 0.1185 0.4434 0.05114
2026 4 3 61133 0.0911 0.4189 0.06412 2026 4 24 61154 0.1198 0.4440 0.05098
2026 4 4 61134 0.0920 0.4199 0.06350 2026 4 25 61155 0.1211 0.4446 0.05062
2026 4 5 61135 0.0929 0.4208 0.06309 2026 4 26 61156 0.1225 0.4451 0.05006
2026 4 6 61136 0.0938 0.4218 0.06288 2026 4 27 61157 0.1238 0.4456 0.04937
2026 4 7 61137 0.0947 0.4227 0.06283 2026 4 28 61158 0.1252 0.4461 0.04862
2026 4 8 61138 0.0956 0.4237 0.06289 2026 4 29 61159 0.1266 0.4466 0.04789
2026 4 9 61139 0.0966 0.4246 0.06299 2026 4 30 61160 0.1280 0.4471 0.04728
2026 4 10 61140 0.0975 0.4255 0.06304 2026 5 1 61161 0.1294 0.4475 0.04684
2026 4 11 61141 0.0985 0.4263 0.06296 2026 5 2 61162 0.1308 0.4479 0.04661
2026 4 12 61142 0.0995 0.4272 0.06269 2026 5 3 61163 0.1322 0.4483 0.04660
2026 4 13 61143 0.1006 0.4281 0.06217 2026 5 4 61164 0.1336 0.4487 0.04677
2026 4 14 61144 0.1016 0.4289 0.06138 2026 5 5 61165 0.1350 0.4490 0.04708
2026 4 15 61145 0.1027 0.4297 0.06038 2026 5 6 61166 0.1365 0.4494 0.04745
2026 4 16 61146 0.1037 0.4305 0.05926 2026 5 7 61167 0.1379 0.4497 0.04781
2026 4 17 61147 0.1048 0.4313 0.05817 2026 5 8 61168 0.1394 0.4499 0.04809
2026 4 18 61148 0.1060 0.4321 0.05726 2026 5 9 61169 0.1409 0.4502 0.04821
2026 4 19 61149 0.1071 0.4328 0.05662 2026 5 10 61170 0.1423 0.4504 0.04812
2026 4 20 61150 0.1082 0.4335 0.05628 2026 5 11 61171 0.1438 0.4507 0.04780
2026 4 21 61151 0.1094 0.4343 0.05617 2026 5 12 61172 0.1453 0.4509 0.04727
2026 4 22 61152 0.1106 0.4350 0.05617 2026 5 13 61173 0.1468 0.4510 0.04658
2026 4 23 61153 0.1118 0.4356 0.05612 2026 5 14 61174 0.1483 0.4512 0.04584
2026 4 24 61154 0.1130 0.4363 0.05592 2026 5 15 61175 0.1498 0.4513 0.04522
2026 4 25 61155 0.1142 0.4370 0.05551 2026 5 16 61176 0.1513 0.4514 0.04482
2026 4 26 61156 0.1154 0.4376 0.05489 2026 5 17 61177 0.1528 0.4515 0.04472
2026 4 27 61157 0.1167 0.4382 0.05412 2026 5 18 61178 0.1543 0.4515 0.04488
2026 4 28 61158 0.1179 0.4388 0.05327 2026 5 19 61179 0.1558 0.4516 0.04520
2026 4 29 61159 0.1192 0.4393 0.05243 2026 5 20 61180 0.1574 0.4516 0.04552
2026 4 30 61160 0.1205 0.4399 0.05167 2026 5 21 61181 0.1589 0.4516 0.04569
2026 5 1 61161 0.1218 0.4404 0.05106 2026 5 22 61182 0.1604 0.4515 0.04565
2026 5 2 61162 0.1231 0.4409 0.05062 2026 5 23 61183 0.1619 0.4515 0.04538
2026 5 3 61163 0.1244 0.4414 0.05035 2026 5 24 61184 0.1635 0.4514 0.04493
2026 5 4 61164 0.1258 0.4419 0.05022 2026 5 25 61185 0.1650 0.4513 0.04438
2026 5 5 61165 0.1271 0.4423 0.05019 2026 5 26 61186 0.1665 0.4511 0.04383
2026 5 6 61166 0.1285 0.4428 0.05018 2026 5 27 61187 0.1680 0.4510 0.04335
2026 5 7 61167 0.1298 0.4432 0.05014 2026 5 28 61188 0.1696 0.4508 0.04300
2026 5 8 61168 0.1312 0.4436 0.04999 2026 5 29 61189 0.1711 0.4506 0.04285
2026 5 9 61169 0.1326 0.4439 0.04969 2026 5 30 61190 0.1726 0.4504 0.04291
2026 5 10 61170 0.1340 0.4443 0.04920 2026 5 31 61191 0.1741 0.4501 0.04318
2026 5 11 61171 0.1354 0.4446 0.04852 2026 6 1 61192 0.1756 0.4499 0.04364
2026 5 12 61172 0.1368 0.4449 0.04766 2026 6 2 61193 0.1771 0.4496 0.04422
2026 5 13 61173 0.1382 0.4452 0.04669 2026 6 3 61194 0.1787 0.4492 0.04485
2026 5 14 61174 0.1396 0.4454 0.04572 2026 6 4 61195 0.1802 0.4489 0.04543
2026 5 15 61175 0.1410 0.4457 0.04492 2026 6 5 61196 0.1817 0.4485 0.04588
2026 5 16 61176 0.1425 0.4459 0.04441 2026 6 6 61197 0.1832 0.4481 0.04616
2026 5 17 61177 0.1439 0.4461 0.04425 2026 6 7 61198 0.1846 0.4477 0.04624
2026 5 18 61178 0.1454 0.4462 0.04443 2026 6 8 61199 0.1861 0.4473 0.04613
2026 5 19 61179 0.1468 0.4464 0.04482 2026 6 9 61200 0.1876 0.4468 0.04588
2026 5 20 61180 0.1483 0.4465 0.04526 2026 6 10 61201 0.1891 0.4463 0.04558
2026 5 21 61181 0.1497 0.4466 0.04563 2026 6 11 61202 0.1905 0.4458 0.04535
2026 5 22 61182 0.1512 0.4467 0.04582 2026 6 12 61203 0.1920 0.4453 0.04531
2026 5 23 61183 0.1526 0.4468 0.04584 2026 6 13 61204 0.1934 0.4448 0.04557
2026 5 24 61184 0.1541 0.4468 0.04574 2026 6 14 61205 0.1949 0.4442 0.04613
2026 5 25 61185 0.1556 0.4468 0.04560 2026 6 15 61206 0.1963 0.4436 0.04692
2026 5 26 61186 0.1570 0.4468 0.04551 2026 6 16 61207 0.1977 0.4430 0.04780
2026 5 27 61187 0.1585 0.4468 0.04553 2026 6 17 61208 0.1992 0.4423 0.04862
2026 5 28 61188 0.1600 0.4467 0.04573 2026 6 18 61209 0.2006 0.4417 0.04926
2026 5 29 61189 0.1615 0.4466 0.04613 2026 6 19 61210 0.2019 0.4410 0.04971
2026 5 30 61190 0.1629 0.4465 0.04673 2026 6 20 61211 0.2033 0.4403 0.05001
2026 5 31 61191 0.1644 0.4464 0.04754 2026 6 21 61212 0.2047 0.4395 0.05025
2026 6 1 61192 0.1659 0.4462 0.04850 2026 6 22 61213 0.2060 0.4388 0.05052
2026 6 2 61193 0.1673 0.4461 0.04955 2026 6 23 61214 0.2074 0.4380 0.05088
2026 6 3 61194 0.1688 0.4459 0.05060 2026 6 24 61215 0.2087 0.4372 0.05142
2026 6 4 61195 0.1703 0.4456 0.05158 2026 6 25 61216 0.2100 0.4364 0.05216
2026 6 5 61196 0.1717 0.4454 0.05243 2026 6 26 61217 0.2113 0.4356 0.05312
2026 6 6 61197 0.1732 0.4451 0.05309 2026 6 27 61218 0.2126 0.4347 0.05430
2026 6 7 61198 0.1747 0.4448 0.05353 2026 6 28 61219 0.2139 0.4338 0.05565
2026 6 8 61199 0.1761 0.4445 0.05378 2026 6 29 61220 0.2152 0.4330 0.05707
2026 6 9 61200 0.1776 0.4442 0.05389 2026 6 30 61221 0.2164 0.4320 0.05853
2026 6 10 61201 0.1790 0.4438 0.05396 2026 7 1 61222 0.2176 0.4311 0.05998
2026 6 11 61202 0.1804 0.4435 0.05412 2026 7 2 61223 0.2188 0.4301 0.06134
2026 6 12 61203 0.1819 0.4431 0.05448 2026 7 3 61224 0.2200 0.4292 0.06252
2026 6 13 61204 0.1833 0.4426 0.05516 2026 7 4 61225 0.2212 0.4282 0.06353
2026 6 14 61205 0.1847 0.4422 0.05615 2026 7 5 61226 0.2224 0.4272 0.06436
2026 6 15 61206 0.1861 0.4417 0.05730 2026 7 6 61227 0.2235 0.4261 0.06499
2026 6 16 61207 0.1875 0.4412 0.05855 2026 7 7 61228 0.2246 0.4251 0.06548
2026 6 17 61208 0.1889 0.4407 0.05970 2026 7 8 61229 0.2257 0.4240 0.06596
2026 6 18 61209 0.1903 0.4402 0.06064 2026 7 9 61230 0.2268 0.4229 0.06655
2026 6 19 61210 0.1917 0.4396 0.06134 2026 7 10 61231 0.2279 0.4218 0.06737
2026 6 20 61211 0.1930 0.4391 0.06189 2026 7 11 61232 0.2290 0.4207 0.06851
2026 6 21 61212 0.1944 0.4385 0.06231 2026 7 12 61233 0.2300 0.4196 0.06984
2026 6 22 61213 0.1957 0.4378 0.06270 2026 7 13 61234 0.2310 0.4184 0.07124
2026 6 23 61214 0.1971 0.4372 0.06319 2026 7 14 61235 0.2320 0.4173 0.07262
2026 6 24 61215 0.1984 0.4365 0.06381 2026 7 15 61236 0.2330 0.4161 0.07380
2026 6 25 61216 0.1997 0.4359 0.06463 2026 7 16 61237 0.2339 0.4149 0.07471
2026 6 26 61217 0.2010 0.4352 0.06565 2026 7 17 61238 0.2348 0.4137 0.07537
2026 6 27 61218 0.2023 0.4344 0.06693 2026 7 18 61239 0.2357 0.4124 0.07589
2026 6 28 61219 0.2036 0.4337 0.06834 2026 7 19 61240 0.2366 0.4112 0.07634
2026 6 29 61220 0.2048 0.4329 0.06988 2026 7 20 61241 0.2375 0.4099 0.07687
2026 6 30 61221 0.2061 0.4321 0.07149 2026 7 21 61242 0.2383 0.4087 0.07758
2026 7 1 61222 0.2073 0.4313 0.07309 2026 7 22 61243 0.2391 0.4074 0.07853
2026 7 2 61223 0.2085 0.4305 0.07453 2026 7 23 61244 0.2399 0.4061 0.07974
2026 7 3 61224 0.2097 0.4297 0.07579 2026 7 24 61245 0.2407 0.4048 0.08117
2026 7 4 61225 0.2109 0.4288 0.07685 2026 7 25 61246 0.2415 0.4034 0.08280
2026 7 5 61226 0.2121 0.4279 0.07772 2026 7 26 61247 0.2422 0.4021 0.08458
2026 7 6 61227 0.2132 0.4270 0.07845 2026 7 27 61248 0.2429 0.4008 0.08631
2026 7 7 61228 0.2144 0.4261 0.07908 2026 7 28 61249 0.2435 0.3994 0.08803
2026 7 8 61229 0.2155 0.4252 0.07971 2026 7 29 61250 0.2442 0.3980 0.08961
2026 7 9 61230 0.2166 0.4242 0.08048 2026 7 30 61251 0.2448 0.3967 0.09098
2026 7 10 61231 0.2177 0.4233 0.08139 2026 7 31 61252 0.2454 0.3953 0.09210
2026 7 11 61232 0.2188 0.4223 0.08254 2026 8 1 61253 0.2460 0.3939 0.09305
2026 7 12 61233 0.2198 0.4213 0.08400 2026 8 2 61254 0.2465 0.3925 0.09376
2026 7 13 61234 0.2209 0.4203 0.08562 2026 8 3 61255 0.2471 0.3910 0.09433
2026 7 14 61235 0.2219 0.4192 0.08710 2026 8 4 61256 0.2476 0.3896 0.09486
2026 7 15 61236 0.2229 0.4182 0.08840 2026 8 5 61257 0.2480 0.3882 0.09546
2026 7 16 61237 0.2238 0.4171 0.08945 2026 8 6 61258 0.2485 0.3867 0.09621
2026 7 17 61238 0.2248 0.4160 0.09020 2026 8 7 61259 0.2489 0.3853 0.09719
2026 7 18 61239 0.2257 0.4149 0.09079 2026 8 8 61260 0.2493 0.3838 0.09842
2026 7 19 61240 0.2267 0.4138 0.09128 2026 8 9 61261 0.2497 0.3824 0.09975
2026 7 20 61241 0.2276 0.4127 0.09179 2026 8 10 61262 0.2500 0.3809 0.10111
2026 7 21 61242 0.2284 0.4115 0.09251 2026 8 11 61263 0.2503 0.3794 0.10236
2026 7 22 61243 0.2293 0.4104 0.09346 2026 8 12 61264 0.2506 0.3779 0.10342
2026 7 23 61244 0.2301 0.4092 0.09462 2026 8 13 61265 0.2509 0.3764 0.10415
2026 7 24 61245 0.2309 0.4080 0.09598 2026 8 14 61266 0.2511 0.3749 0.10465
2026 7 25 61246 0.2317 0.4068 0.09752 2026 8 15 61267 0.2513 0.3734 0.10504
2026 7 26 61247 0.2325 0.4056 0.09923 2026 8 16 61268 0.2515 0.3719 0.10544
2026 7 27 61248 0.2332 0.4044 0.10098 2026 8 17 61269 0.2516 0.3704 0.10598
2026 7 28 61249 0.2339 0.4031 0.10263 2026 8 18 61270 0.2517 0.3689 0.10669
2026 7 29 61250 0.2346 0.4019 0.10410 2026 8 19 61271 0.2518 0.3674 0.10761
2026 7 30 61251 0.2353 0.4006 0.10535 2026 8 20 61272 0.2519 0.3659 0.10876
2026 7 31 61252 0.2360 0.3994 0.10625 2026 8 21 61273 0.2519 0.3644 0.11000
2026 8 1 61253 0.2366 0.3981 0.10700 2026 8 22 61274 0.2519 0.3629 0.11133
2026 8 2 61254 0.2372 0.3968 0.10755 2026 8 23 61275 0.2519 0.3614 0.11280
2026 8 3 61255 0.2378 0.3955 0.10800 2026 8 24 61276 0.2519 0.3599 0.11427
2026 8 4 61256 0.2383 0.3942 0.10837 2026 8 25 61277 0.2518 0.3584 0.11553
2026 8 5 61257 0.2388 0.3929 0.10886 2026 8 26 61278 0.2517 0.3568 0.11661
2026 8 6 61258 0.2393 0.3916 0.10961 2026 8 27 61279 0.2516 0.3553 0.11746
2026 8 7 61259 0.2398 0.3902 0.11059 2026 8 28 61280 0.2514 0.3538 0.11800
2026 8 8 61260 0.2403 0.3889 0.11182 2026 8 29 61281 0.2512 0.3523 0.11833
2026 8 9 61261 0.2407 0.3876 0.11317 2026 8 30 61282 0.2510 0.3508 0.11845
2026 8 10 61262 0.2411 0.3862 0.11450 2026 8 31 61283 0.2508 0.3493 0.11847
2026 8 11 61263 0.2415 0.3848 0.11570 2026 9 1 61284 0.2505 0.3478 0.11861
2026 8 12 61264 0.2418 0.3835 0.11665 2026 9 2 61285 0.2502 0.3463 0.11895
2026 8 13 61265 0.2422 0.3821 0.11726 2026 9 3 61286 0.2499 0.3448 0.11950
2026 8 14 61266 0.2424 0.3807 0.11763 2026 9 4 61287 0.2495 0.3433 0.12026
2026 8 15 61267 0.2427 0.3793 0.11793 2026 9 5 61288 0.2491 0.3419 0.12120
2026 8 16 61268 0.2430 0.3780 0.11819 2026 9 6 61289 0.2487 0.3404 0.12222
2026 8 17 61269 0.2432 0.3766 0.11850 2026 9 7 61290 0.2483 0.3389 0.12315
2026 8 18 61270 0.2434 0.3752 0.11910 2026 9 8 61291 0.2478 0.3374 0.12381
2026 8 19 61271 0.2435 0.3738 0.12000 2026 9 9 61292 0.2473 0.3360 0.12415
2026 8 20 61272 0.2437 0.3724 0.12109 2026 9 10 61293 0.2468 0.3345 0.12418
2026 8 21 61273 0.2438 0.3710 0.12242 2026 9 11 61294 0.2463 0.3331 0.12391
2026 8 22 61274 0.2439 0.3696 0.12379 2026 9 12 61295 0.2457 0.3317 0.12365
2026 8 23 61275 0.2439 0.3682 0.12516 2026 9 13 61296 0.2451 0.3302 0.12342
2026 8 24 61276 0.2440 0.3668 0.12644 2026 9 14 61297 0.2445 0.3288 0.12336
2026 8 25 61277 0.2440 0.3654 0.12762 2026 9 15 61298 0.2438 0.3274 0.12345
2026 8 26 61278 0.2439 0.3639 0.12856 2026 9 16 61299 0.2431 0.3260 0.12376
2026 8 27 61279 0.2439 0.3625 0.12930 2026 9 17 61300 0.2424 0.3246 0.12436
2026 8 28 61280 0.2438 0.3611 0.12977 2026 9 18 61301 0.2417 0.3233 0.12508
2026 8 29 61281 0.2437 0.3597 0.13002 2026 9 19 61302 0.2409 0.3219 0.12593
2026 8 30 61282 0.2436 0.3583 0.13010 2026 9 20 61303 0.2402 0.3205 0.12675
2026 8 31 61283 0.2434 0.3569 0.13012 2026 9 21 61304 0.2393 0.3192 0.12745
2026 9 1 61284 0.2432 0.3555 0.13019 2026 9 22 61305 0.2385 0.3179 0.12802
2026 9 2 61285 0.2430 0.3541 0.13033 2026 9 23 61306 0.2376 0.3165 0.12837
2026 9 3 61286 0.2428 0.3527 0.13061 2026 9 24 61307 0.2368 0.3152 0.12843
2026 9 4 61287 0.2425 0.3513 0.13112 2026 9 25 61308 0.2359 0.3140 0.12824
2026 9 5 61288 0.2422 0.3499 0.13176 2026 9 26 61309 0.2349 0.3127 0.12791
2026 9 6 61289 0.2419 0.3486 0.13238 2026 9 27 61310 0.2340 0.3114 0.12744
2026 9 7 61290 0.2415 0.3472 0.13286 2026 9 28 61311 0.2330 0.3102 0.12695
2026 9 8 61291 0.2411 0.3458 0.13307 2026 9 29 61312 0.2320 0.3089 0.12669
2026 9 9 61292 0.2407 0.3444 0.13301 2026 9 30 61313 0.2309 0.3077 0.12674
2026 9 10 61293 0.2403 0.3431 0.13275 2026 10 1 61314 0.2299 0.3065 0.12703
2026 9 11 61294 0.2399 0.3417 0.13228 2026 10 2 61315 0.2288 0.3053 0.12758
2026 9 12 61295 0.2394 0.3404 0.13182 2026 10 3 61316 0.2277 0.3042 0.12811
2026 9 13 61296 0.2389 0.3390 0.13136 2026 10 4 61317 0.2266 0.3030 0.12855
2026 9 14 61297 0.2383 0.3377 0.13101 2026 10 5 61318 0.2254 0.3019 0.12877
2026 9 15 61298 0.2378 0.3364 0.13082 2026 10 6 61319 0.2243 0.3008 0.12874
2026 9 16 61299 0.2372 0.3351 0.13083 2026 10 7 61320 0.2231 0.2997 0.12843
2026 9 17 61300 0.2366 0.3338 0.13104 2026 10 8 61321 0.2219 0.2986 0.12794
2026 9 18 61301 0.2359 0.3325 0.13133 2026 10 9 61322 0.2207 0.2975 0.12733
2026 9 19 61302 0.2353 0.3312 0.13171 2026 10 10 61323 0.2194 0.2965 0.12674
2026 9 20 61303 0.2346 0.3299 0.13210 2026 10 11 61324 0.2181 0.2955 0.12625
2026 9 21 61304 0.2339 0.3286 0.13238 2026 10 12 61325 0.2169 0.2944 0.12592
2026 9 22 61305 0.2331 0.3274 0.13247 2026 10 13 61326 0.2155 0.2935 0.12581
2026 9 23 61306 0.2323 0.3261 0.13234 2026 10 14 61327 0.2142 0.2925 0.12578
2026 9 24 61307 0.2316 0.3249 0.13197 2026 10 15 61328 0.2129 0.2916 0.12586
2026 9 25 61308 0.2307 0.3237 0.13133 2026 10 16 61329 0.2115 0.2906 0.12604
2026 9 26 61309 0.2299 0.3225 0.13057 2026 10 17 61330 0.2101 0.2897 0.12624
2026 9 27 61310 0.2290 0.3213 0.12980 2026 10 18 61331 0.2087 0.2889 0.12633
2026 9 28 61311 0.2282 0.3201 0.12907 2026 10 19 61332 0.2073 0.2880 0.12628
2026 9 29 61312 0.2273 0.3189 0.12856 2026 10 20 61333 0.2059 0.2872 0.12598
2026 9 30 61313 0.2263 0.3178 0.12825 2026 10 21 61334 0.2044 0.2863 0.12548
2026 10 1 61314 0.2254 0.3167 0.12823 2026 10 22 61335 0.2030 0.2856 0.12481
2026 10 2 61315 0.2244 0.3155 0.12839 2026 10 23 61336 0.2015 0.2848 0.12391
2026 10 3 61316 0.2234 0.3144 0.12872 2026 10 24 61337 0.2000 0.2840 0.12296
2026 10 4 61317 0.2224 0.3133 0.12899 2026 10 25 61338 0.1985 0.2833 0.12193
2026 10 5 61318 0.2213 0.3123 0.12909 2026 10 26 61339 0.1970 0.2826 0.12096
2026 10 6 61319 0.2203 0.3112 0.12904 2026 10 27 61340 0.1954 0.2819 0.12015
2026 10 7 61320 0.2192 0.3101 0.12871 2026 10 28 61341 0.1939 0.2813 0.11958
2026 10 8 61321 0.2181 0.3091 0.12823 2026 10 29 61342 0.1923 0.2807 0.11925
2026 10 9 61322 0.2169 0.3081 0.12763 2026 10 30 61343 0.1907 0.2801 0.11901
2026 10 10 61323 0.2158 0.3071 0.12702 2026 10 31 61344 0.1891 0.2795 0.11877
2026 10 11 61324 0.2146 0.3061 0.12646 2026 11 1 61345 0.1875 0.2789 0.11842
2026 10 12 61325 0.2134 0.3052 0.12607 2026 11 2 61346 0.1859 0.2784 0.11783
2026 10 13 61326 0.2122 0.3043 0.12588 2026 11 3 61347 0.1843 0.2779 0.11699
2026 10 14 61327 0.2110 0.3033 0.12585 2026 11 4 61348 0.1827 0.2774 0.11597
2026 10 15 61328 0.2098 0.3024 0.12602 2026 11 5 61349 0.1810 0.2770 0.11486
2026 10 16 61329 0.2085 0.3016 0.12630 2026 11 6 61350 0.1794 0.2765 0.11373
2026 10 17 61330 0.2072 0.3007 0.12661 2026 11 7 61351 0.1777 0.2761 0.11276
2026 10 18 61331 0.2059 0.2999 0.12683 2026 11 8 61352 0.1760 0.2758 0.11204
2026 10 19 61332 0.2046 0.2990 0.12689 2026 11 9 61353 0.1743 0.2754 0.11155
2026 10 20 61333 0.2033 0.2982 0.12680 2026 11 10 61354 0.1727 0.2751 0.11135
2026 10 21 61334 0.2019 0.2975 0.12644 2026 11 11 61355 0.1710 0.2748 0.11130
2026 10 22 61335 0.2005 0.2967 0.12584 2026 11 12 61356 0.1693 0.2745 0.11143
2026 10 23 61336 0.1992 0.2960 0.12511 2026 11 13 61357 0.1676 0.2743 0.11162
2026 10 24 61337 0.1978 0.2952 0.12426 2026 11 14 61358 0.1658 0.2741 0.11190
2026 10 25 61338 0.1964 0.2946 0.12345 2026 11 15 61359 0.1641 0.2739 0.11208
2026 10 26 61339 0.1949 0.2939 0.12281 2026 11 16 61360 0.1624 0.2737 0.11212
2026 10 27 61340 0.1935 0.2932 0.12239 2026 11 17 61361 0.1607 0.2736 0.11208
2026 10 28 61341 0.1920 0.2926 0.12222 2026 11 18 61362 0.1590 0.2735 0.11181
2026 10 29 61342 0.1906 0.2920 0.12229 2026 11 19 61363 0.1572 0.2734 0.11139
2026 10 30 61343 0.1891 0.2914 0.12254 2026 11 20 61364 0.1555 0.2733 0.11081
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)
60959 -120.67 0.72 -9.76 0.02 60973 -118.69 0.97 -9.58 0.12
60960 -120.67 0.85 -9.67 0.05 60974 -118.34 1.09 -9.59 0.08
60961 -120.61 0.85 -9.74 0.05 60975 -118.01 1.09 -9.62 0.08
60962 -120.34 0.95 -9.85 0.06 60976 -117.77 1.20 -9.66 0.00
60977 -117.53 1.22 -9.56 0.01
60978 -117.30 1.22 -9.32 0.01
60979 -117.17 1.22 -9.10 0.01
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)
60959 0.295 0.287 -0.064 0.017 60973 0.419 0.386 0.010 0.119
60960 0.308 0.339 -0.063 0.047 60974 0.431 0.433 0.013 0.084
60961 0.323 0.339 -0.063 0.047 60975 0.444 0.433 0.015 0.084
60962 0.340 0.379 -0.062 0.062 60976 0.458 0.477 0.014 0.003
60977 0.472 0.484 0.011 0.012
60978 0.486 0.484 0.008 0.012
60979 0.500 0.484 0.004 0.012
)--"; )--";

View File

@ -1100,7 +1100,8 @@ protected:
} else if (input_msg.withKey(MCC_COMMPROTO_KEYWORD_TELEMETRY_STR)) { } else if (input_msg.withKey(MCC_COMMPROTO_KEYWORD_TELEMETRY_STR)) {
MccTelemetryData tdata; MccTelemetryData tdata;
auto t_err = mount_ptr->telemetryData(&tdata); // auto t_err = mount_ptr->telemetryData(&tdata);
auto t_err = mount_ptr->waitForTelemetryData(&tdata);
if (t_err) { if (t_err) {
err = mcc_deduce_error_code(t_err, MccGenericMountNetworkServerErrorCode::ERROR_MOUNT_GET_TELEMETRY); err = mcc_deduce_error_code(t_err, MccGenericMountNetworkServerErrorCode::ERROR_MOUNT_GET_TELEMETRY);
} else { } else {
@ -1150,7 +1151,8 @@ protected:
{ {
MccTelemetryData tdata; MccTelemetryData tdata;
auto t_err = mount.telemetryData(&tdata); auto t_err = mount.waitForTelemetryData(&tdata);
// auto t_err = mount.telemetryData(&tdata);
if (t_err) { if (t_err) {
return mcc_deduce_error_code(t_err, MccGenericMountNetworkServerErrorCode::ERROR_MOUNT_GET_TELEMETRY); return mcc_deduce_error_code(t_err, MccGenericMountNetworkServerErrorCode::ERROR_MOUNT_GET_TELEMETRY);
} }

View File

@ -24,7 +24,8 @@ enum class MccTelemetryErrorCode : int {
ERROR_HARDWARE_GETPOS, ERROR_HARDWARE_GETPOS,
ERROR_UPDATE_STOPPED, ERROR_UPDATE_STOPPED,
ERROR_DATA_TIMEOUT, ERROR_DATA_TIMEOUT,
ERROR_UNSUPPORTED_COORD_PAIR ERROR_UNSUPPORTED_COORD_PAIR,
ERROR_UPDATE_LOOP_WAIT
}; };
} // namespace mcc } // namespace mcc
@ -75,6 +76,8 @@ struct MccTelemetryCategory : public std::error_category {
return "a timeout occured while waiting for new data"; return "a timeout occured while waiting for new data";
case MccTelemetryErrorCode::ERROR_UNSUPPORTED_COORD_PAIR: case MccTelemetryErrorCode::ERROR_UNSUPPORTED_COORD_PAIR:
return "unsupported coordinate pair"; return "unsupported coordinate pair";
case MccTelemetryErrorCode::ERROR_UPDATE_LOOP_WAIT:
return "a timeout occured while waiting to exit the update loop";
default: default:
return "UNKNOWN"; return "UNKNOWN";
} }
@ -104,6 +107,8 @@ public:
static constexpr auto defaultUpdateInterval = std::chrono::milliseconds(100); static constexpr auto defaultUpdateInterval = std::chrono::milliseconds(100);
static constexpr auto defaultInternalUpdateTimeout = defaultUpdateInterval * 5; static constexpr auto defaultInternalUpdateTimeout = defaultUpdateInterval * 5;
static constexpr auto defaultUpdatingTimeout = std::chrono::milliseconds(500);
typedef std::error_code error_t; typedef std::error_code error_t;
@ -256,6 +261,8 @@ public:
}; };
_updateFunc = [controls, this](std::stop_token stop_token) -> std::error_code { _updateFunc = [controls, this](std::stop_token stop_token) -> std::error_code {
std::lock_guard lock{*_updateMutex};
// first, update mount quantities // first, update mount quantities
typename hardware_t::hardware_state_t hw_pos; typename hardware_t::hardware_state_t hw_pos;
auto hw_err = controls->hardwareGetState(&hw_pos); auto hw_err = controls->hardwareGetState(&hw_pos);
@ -394,26 +401,38 @@ public:
// update thread // update thread
// _updatingFuture = std::async( _internalUpdatingStopSource = std::stop_source{};
// std::launch::async, *_internalUpdating = false;
// [this](std::stop_token stoken) {
_dataUpdatingRequested->clear();
_dataUpdatingStart->clear();
_updatingFuture = std::async(
std::launch::async,
[controls, this](std::stop_token stoken) {
bool stop_flag = stoken.stop_requested();
// controls->logTrace(std::format("stop_requested() = {}", stop_flag));
// while (!stoken.stop_requested()) { // while (!stoken.stop_requested()) {
// { while (!stop_flag) {
// std::unique_lock ulock{*_updateMutex}; _dataUpdatingRequested->wait(false);
// bool ok = _updateCondVar->wait(ulock, [&stoken, this]() -> bool {
// return _dataUpdatingRequested || stoken.stop_requested();
// });
// }
stop_flag = stoken.stop_requested();
if (!stop_flag) {
// if (!stoken.stop_requested()) { // if (!stoken.stop_requested()) {
// std::lock_guard lock{*_timeoutMutex}; *_internalUpdating = true;
std::lock_guard lock{*_timeoutMutex};
// _lastUpdateError = _updateFunc(stoken); _dataUpdatingStart->test_and_set();
// } _dataUpdatingStart->notify_all();
// }
// }, _lastUpdateError = _updateFunc(stoken);
// _internalUpdatingStopSource.get_token());
_dataUpdatingStart->clear();
_dataUpdatingRequested->clear();
}
}
},
_internalUpdatingStopSource.get_token());
} }
@ -428,11 +447,9 @@ public:
{ {
stopInternalTelemetryDataUpdating(); stopInternalTelemetryDataUpdating();
if (_internalUpdatingFuture.valid()) { if (_updatingFuture.valid()) {
// try to exit correctly // try to exit correctly
// auto status = _internalUpdatingFuture.wait_for(std::chrono::seconds(1)); _updatingFuture.wait_for(std::chrono::seconds(1));
_internalUpdatingFuture.wait_for(std::chrono::seconds(1));
// _internalUpdatingFuture.get();
} }
}; };
@ -480,67 +497,56 @@ public:
{ {
using intv_t = std::remove_cvref_t<decltype(_currentUpdateInterval)>; using intv_t = std::remove_cvref_t<decltype(_currentUpdateInterval)>;
_internalUpdatingStopSource = std::stop_source{}; // reset state if (_internalUpdatingStopSource.stop_requested()) {
_internalUpdatingStopSource = std::stop_source{}; // reset stop source
if (_updatingFuture.valid()) { // it should not be!!!
// updating loop was stopped, just wait fo future result
// it must return immediately!
auto status = _updatingFuture.wait_for(std::chrono::milliseconds(500));
if (status == std::future_status::ready) { // OK!
} else if (status == std::future_status::deferred) { // ???!!!!
_updatingFuture.get();
} else {
_lastUpdateError = MccTelemetryErrorCode::ERROR_UPDATE_LOOP_WAIT;
}
startInternalTelemetryDataUpdating();
*_internalUpdating = true; *_internalUpdating = true;
} else {
startInternalTelemetryDataUpdating();
_internalUpdatingFuture = std::async( *_internalUpdating = true;
std::launch::async,
[this](std::stop_token stop_token) -> error_t {
while (!stop_token.stop_requested()) {
// while (true) {
_lastUpdateError = updateTelemetryData(_currentUpdateTimeout);
if (_lastUpdateError) {
*_internalUpdating = false;
return _lastUpdateError;
} }
} // here the loop is already started
// auto nn = std::this_thread::get_id();
std::this_thread::sleep_for(_currentUpdateInterval);
// {
// std::lock_guard lock{*_currentUpdateIntervalMutex};
// // compute it here because of possible changing _currentUpdateInterval
// auto sleep_td = _currentUpdateInterval / internalUpdatingIntervalDiv;
// for (uint16_t i = 0; i < internalUpdatingIntervalDiv - 1; ++i) {
// if (stop_token.stop_requested()) {
// break;
// }
// std::this_thread::sleep_for(sleep_td);
// }
// if (stop_token.stop_requested()) {
// break;
// }
// if constexpr (std::floating_point<intv_t>) {
// std::this_thread::sleep_for(sleep_td);
// } else {
// auto rem = _currentUpdateInterval % internalUpdatingIntervalDiv;
// if (rem.count()) {
// std::this_thread::sleep_for(rem);
// } else {
// std::this_thread::sleep_for(sleep_td);
// }
// }
// }
}
*_internalUpdating = false;
return MccTelemetryErrorCode::ERROR_OK;
},
_internalUpdatingStopSource.get_token());
} }
void stopInternalTelemetryDataUpdating() void stopInternalTelemetryDataUpdating()
{ {
// reset all possible locks
_internalUpdatingStopSource.request_stop(); _internalUpdatingStopSource.request_stop();
_dataUpdatingRequested->test_and_set();
_dataUpdatingRequested->notify_one();
_dataUpdatingStart->test_and_set();
_dataUpdatingStart->notify_all();
auto status = _updatingFuture.wait_for(std::chrono::milliseconds(500));
if (status == std::future_status::ready) { // OK!
} else if (status == std::future_status::deferred) { // ???!!!!
_updatingFuture.get();
} else {
_lastUpdateError = MccTelemetryErrorCode::ERROR_UPDATE_LOOP_WAIT;
}
_dataUpdatingRequested->clear();
_dataUpdatingStart->clear();
*_internalUpdating = false; *_internalUpdating = false;
} }
@ -553,64 +559,39 @@ public:
error_t updateTelemetryData(traits::mcc_time_duration_c auto const& timeout) error_t updateTelemetryData(traits::mcc_time_duration_c auto const& timeout)
{ {
{ // trigger updating
std::lock_guard thread_lock{*_updateMutex}; _dataUpdatingRequested->test_and_set();
_dataUpdatingRequested->notify_one();
std::stop_source stop_source; // wait for updating start
_dataUpdatingStart->wait(false);
*_isDataUpdated = false; if (_timeoutMutex->try_lock_for(timeout)) {
_timeoutMutex->unlock();
// std::future<error_t> update_ft = std::async(std::launch::async, _updateFunc, stop_source.get_token()); } else {
// // std::future<error_t> update_ft = _lastUpdateError = MccTelemetryErrorCode::ERROR_DATA_TIMEOUT;
// // std::async(std::launch::async, _updateFunc, _internalUpdatingStopSource.get_token());
// auto status = update_ft.wait_for(timeout);
// if (status == std::future_status::ready) {
// *_isDataUpdated = true;
// _lastUpdateError = update_ft.get();
// } else if (status == std::future_status::deferred) { // std::async was invoked in this thread, get
// result
// _lastUpdateError = update_ft.get();
// if (!_lastUpdateError) {
// *_isDataUpdated = true;
// }
// } else { // timeout
// stop_source.request_stop();
// _lastUpdateError = MccTelemetryErrorCode::ERROR_DATA_TIMEOUT;
// }
_lastUpdateError = _updateFunc(_internalUpdatingStopSource.get_token());
*_isDataUpdated = true;
} }
// unblock waiting threads even in the case of timeout!
_updateCondVar->notify_all();
// *_isDataUpdated = false;
return _lastUpdateError; return _lastUpdateError;
} }
// block the thread and wait for data to be ready (internal synchronization) // block the thread and wait for data to be ready (internal synchronization)
error_t waitForTelemetryData(mcc_telemetry_data_c auto* tdata, traits::mcc_time_duration_c auto const& timeout) template <traits::mcc_time_duration_c DT = decltype(MccTelemetry::defaultUpdatingTimeout)>
error_t waitForTelemetryData(mcc_telemetry_data_c auto* tdata,
const DT& timeout = MccTelemetry::defaultUpdatingTimeout)
{ {
if (tdata == nullptr) { if (tdata == nullptr) {
return MccTelemetryErrorCode::ERROR_NULLPTR; return MccTelemetryErrorCode::ERROR_NULLPTR;
} }
std::unique_lock ulock(*_updateMutex);
auto res = _updateCondVar->wait_for(ulock, timeout, [this]() -> bool { return *_isDataUpdated; }); updateTelemetryData(timeout);
if (!res) {
return MccTelemetryErrorCode::ERROR_DATA_TIMEOUT;
}
// std::lock_guard thread_lock{*_updateMutex};
if (!_lastUpdateError) { if (!_lastUpdateError) {
std::lock_guard thread_lock{*_updateMutex};
mcc_copy_telemetry_data(_data, tdata); mcc_copy_telemetry_data(_data, tdata);
} }
return _lastUpdateError; return _lastUpdateError;
} }
@ -742,7 +723,8 @@ protected:
std::unique_ptr<std::condition_variable> _updateCondVar; std::unique_ptr<std::condition_variable> _updateCondVar;
std::future<void> _updatingFuture{}; std::future<void> _updatingFuture{};
std::unique_ptr<std::atomic_bool> _dataUpdatingRequested{new std::atomic_bool{false}}; std::unique_ptr<std::atomic_flag> _dataUpdatingRequested{new std::atomic_flag{}};
std::unique_ptr<std::atomic_flag> _dataUpdatingStart{new std::atomic_flag{}};
std::unique_ptr<std::timed_mutex> _timeoutMutex{new std::timed_mutex()}; std::unique_ptr<std::timed_mutex> _timeoutMutex{new std::timed_mutex()};
error_t _lastUpdateError{MccTelemetryErrorCode::ERROR_OK}; error_t _lastUpdateError{MccTelemetryErrorCode::ERROR_OK};