Compare commits

..

No commits in common. "e529265a63b7de9a0b4316020b895b7e850ff4c4" and "6214b82a6cf67feefeb6deb67cd25c0ceffa9b3d" have entirely different histories.

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