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));
setTelemetryDataUpdateInterval(_mountConfig.hardwarePollingPeriod());
// setTelemetryDataUpdateInterval(_mountConfig.hardwarePollingPeriod());
setTelemetryUpdateTimeout(_mountConfig.movingModelParams().telemetryTimeout);
startInternalTelemetryDataUpdating();
std::this_thread::sleep_for(std::chrono::milliseconds(100));
// std::this_thread::sleep_for(std::chrono::milliseconds(100));
bool ok = isInternalTelemetryDataUpdating();
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")
find_package(Threads REQUIRED)
# ******* SPDLOG LIBRARY *******
@ -79,7 +80,7 @@ set(MCC_LIBRARY mcc)
add_library(${MCC_LIBRARY} INTERFACE ${MCC_LIBRARY_SRC})
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_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
$<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 *
**********************************************************************
30 October 2025 Vol. XXXVIII No. 044
20 November 2025 Vol. XXXVIII No. 047
______________________________________________________________________
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 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
25 11 14 60993 0.15642 .00009 0.31566 .00009 0.086436 0.000011
25 11 15 60994 0.15459 .00009 0.31596 .00009 0.085644 0.000011
25 11 16 60995 0.15290 .00009 0.31633 .00009 0.084908 0.000011
25 11 17 60996 0.15108 .00009 0.31661 .00009 0.084301 0.000011
25 11 18 60997 0.14916 .00009 0.31650 .00009 0.083875 0.000012
25 11 19 60998 0.14739 .00009 0.31629 .00009 0.083648 0.000010
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,
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
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)
x = 0.1356 + 0.0739 cos A - 0.1246 sin A - 0.0602 cos C + 0.0286 sin C
y = 0.3909 - 0.1070 cos A - 0.0778 sin A + 0.0286 cos C + 0.0602 sin C
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:
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
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 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
2025 11 21 61000 0.1441 0.3160 0.08366
2025 11 22 61001 0.1425 0.3160 0.08387
2025 11 23 61002 0.1411 0.3160 0.08414
2025 11 24 61003 0.1398 0.3161 0.08437
2025 11 25 61004 0.1385 0.3162 0.08450
2025 11 26 61005 0.1372 0.3163 0.08443
2025 11 27 61006 0.1359 0.3165 0.08414
2025 11 28 61007 0.1346 0.3167 0.08359
2025 11 29 61008 0.1334 0.3169 0.08280
2025 11 30 61009 0.1321 0.3171 0.08184
2025 12 1 61010 0.1309 0.3173 0.08085
2025 12 2 61011 0.1297 0.3176 0.07998
2025 12 3 61012 0.1285 0.3178 0.07935
2025 12 4 61013 0.1273 0.3180 0.07904
2025 12 5 61014 0.1261 0.3183 0.07901
2025 12 6 61015 0.1250 0.3186 0.07915
2025 12 7 61016 0.1238 0.3189 0.07931
2025 12 8 61017 0.1227 0.3192 0.07937
2025 12 9 61018 0.1216 0.3195 0.07923
2025 12 10 61019 0.1205 0.3198 0.07891
2025 12 11 61020 0.1194 0.3202 0.07844
2025 12 12 61021 0.1183 0.3206 0.07790
2025 12 13 61022 0.1172 0.3210 0.07736
2025 12 14 61023 0.1161 0.3213 0.07692
2025 12 15 61024 0.1150 0.3218 0.07663
2025 12 16 61025 0.1139 0.3222 0.07652
2025 12 17 61026 0.1129 0.3226 0.07662
2025 12 18 61027 0.1118 0.3231 0.07693
2025 12 19 61028 0.1108 0.3236 0.07742
2025 12 20 61029 0.1097 0.3241 0.07803
2025 12 21 61030 0.1087 0.3246 0.07869
2025 12 22 61031 0.1077 0.3251 0.07931
2025 12 23 61032 0.1067 0.3256 0.07981
2025 12 24 61033 0.1057 0.3262 0.08012
2025 12 25 61034 0.1047 0.3268 0.08021
2025 12 26 61035 0.1037 0.3274 0.08008
2025 12 27 61036 0.1027 0.3280 0.07978
2025 12 28 61037 0.1017 0.3286 0.07939
2025 12 29 61038 0.1008 0.3292 0.07905
2025 12 30 61039 0.0998 0.3299 0.07887
2025 12 31 61040 0.0989 0.3306 0.07894
2026 1 1 61041 0.0980 0.3313 0.07927
2026 1 2 61042 0.0971 0.3320 0.07980
2026 1 3 61043 0.0962 0.3327 0.08039
2026 1 4 61044 0.0953 0.3334 0.08090
2026 1 5 61045 0.0944 0.3342 0.08121
2026 1 6 61046 0.0936 0.3350 0.08127
2026 1 7 61047 0.0927 0.3357 0.08113
2026 1 8 61048 0.0919 0.3365 0.08087
2026 1 9 61049 0.0911 0.3374 0.08059
2026 1 10 61050 0.0903 0.3382 0.08037
2026 1 11 61051 0.0895 0.3390 0.08029
2026 1 12 61052 0.0887 0.3399 0.08037
2026 1 13 61053 0.0880 0.3408 0.08064
2026 1 14 61054 0.0873 0.3416 0.08110
2026 1 15 61055 0.0865 0.3425 0.08171
2026 1 16 61056 0.0858 0.3435 0.08243
2026 1 17 61057 0.0851 0.3444 0.08317
2026 1 18 61058 0.0845 0.3453 0.08384
2026 1 19 61059 0.0838 0.3463 0.08436
2026 1 20 61060 0.0832 0.3472 0.08466
2026 1 21 61061 0.0826 0.3482 0.08471
2026 1 22 61062 0.0820 0.3492 0.08452
2026 1 23 61063 0.0814 0.3502 0.08414
2026 1 24 61064 0.0808 0.3512 0.08366
2026 1 25 61065 0.0803 0.3522 0.08320
2026 1 26 61066 0.0798 0.3533 0.08287
2026 1 27 61067 0.0793 0.3543 0.08275
2026 1 28 61068 0.0788 0.3554 0.08286
2026 1 29 61069 0.0783 0.3564 0.08317
2026 1 30 61070 0.0779 0.3575 0.08357
2026 1 31 61071 0.0775 0.3586 0.08390
2026 2 1 61072 0.0771 0.3597 0.08406
2026 2 2 61073 0.0767 0.3608 0.08396
2026 2 3 61074 0.0763 0.3619 0.08361
2026 2 4 61075 0.0760 0.3630 0.08307
2026 2 5 61076 0.0757 0.3641 0.08244
2026 2 6 61077 0.0754 0.3652 0.08183
2026 2 7 61078 0.0751 0.3664 0.08134
2026 2 8 61079 0.0748 0.3675 0.08100
2026 2 9 61080 0.0746 0.3686 0.08087
2026 2 10 61081 0.0744 0.3698 0.08092
2026 2 11 61082 0.0742 0.3709 0.08114
2026 2 12 61083 0.0741 0.3721 0.08147
2026 2 13 61084 0.0739 0.3733 0.08184
2026 2 14 61085 0.0738 0.3744 0.08218
2026 2 15 61086 0.0737 0.3756 0.08240
2026 2 16 61087 0.0736 0.3768 0.08240
2026 2 17 61088 0.0736 0.3780 0.08215
2026 2 18 61089 0.0736 0.3792 0.08162
2026 2 19 61090 0.0736 0.3803 0.08087
2026 2 20 61091 0.0736 0.3815 0.07998
2026 2 21 61092 0.0736 0.3827 0.07909
2026 2 22 61093 0.0737 0.3839 0.07833
2026 2 23 61094 0.0738 0.3851 0.07779
2026 2 24 61095 0.0739 0.3863 0.07750
2026 2 25 61096 0.0741 0.3875 0.07743
2026 2 26 61097 0.0742 0.3887 0.07749
2026 2 27 61098 0.0744 0.3899 0.07754
2026 2 28 61099 0.0746 0.3911 0.07747
2026 3 1 61100 0.0749 0.3923 0.07717
2026 3 2 61101 0.0751 0.3934 0.07662
2026 3 3 61102 0.0754 0.3946 0.07584
2026 3 4 61103 0.0757 0.3958 0.07493
2026 3 5 61104 0.0760 0.3970 0.07399
2026 3 6 61105 0.0764 0.3982 0.07312
2026 3 7 61106 0.0768 0.3993 0.07240
2026 3 8 61107 0.0772 0.4005 0.07188
2026 3 9 61108 0.0776 0.4017 0.07160
2026 3 10 61109 0.0780 0.4028 0.07151
2026 3 11 61110 0.0785 0.4040 0.07155
2026 3 12 61111 0.0790 0.4051 0.07167
2026 3 13 61112 0.0795 0.4063 0.07179
2026 3 14 61113 0.0800 0.4074 0.07181
2026 3 15 61114 0.0806 0.4085 0.07166
2026 3 16 61115 0.0812 0.4096 0.07127
2026 3 17 61116 0.0818 0.4107 0.07060
2026 3 18 61117 0.0824 0.4119 0.06967
2026 3 19 61118 0.0831 0.4129 0.06856
2026 3 20 61119 0.0838 0.4140 0.06739
2026 3 21 61120 0.0845 0.4151 0.06632
2026 3 22 61121 0.0852 0.4162 0.06547
2026 3 23 61122 0.0859 0.4172 0.06490
2026 3 24 61123 0.0867 0.4183 0.06460
2026 3 25 61124 0.0875 0.4193 0.06448
2026 3 26 61125 0.0883 0.4204 0.06440
2026 3 27 61126 0.0891 0.4214 0.06425
2026 3 28 61127 0.0899 0.4224 0.06392
2026 3 29 61128 0.0908 0.4234 0.06336
2026 3 30 61129 0.0917 0.4244 0.06260
2026 3 31 61130 0.0926 0.4253 0.06168
2026 4 1 61131 0.0935 0.4263 0.06070
2026 4 2 61132 0.0945 0.4272 0.05976
2026 4 3 61133 0.0954 0.4282 0.05895
2026 4 4 61134 0.0964 0.4291 0.05833
2026 4 5 61135 0.0974 0.4300 0.05792
2026 4 6 61136 0.0985 0.4309 0.05771
2026 4 7 61137 0.0995 0.4317 0.05767
2026 4 8 61138 0.1006 0.4326 0.05773
2026 4 9 61139 0.1017 0.4334 0.05783
2026 4 10 61140 0.1028 0.4343 0.05788
2026 4 11 61141 0.1039 0.4351 0.05781
2026 4 12 61142 0.1050 0.4359 0.05754
2026 4 13 61143 0.1061 0.4366 0.05702
2026 4 14 61144 0.1073 0.4374 0.05624
2026 4 15 61145 0.1085 0.4381 0.05525
2026 4 16 61146 0.1097 0.4389 0.05414
2026 4 17 61147 0.1109 0.4396 0.05306
2026 4 18 61148 0.1121 0.4403 0.05215
2026 4 19 61149 0.1134 0.4409 0.05153
2026 4 20 61150 0.1146 0.4416 0.05121
2026 4 21 61151 0.1159 0.4422 0.05113
2026 4 22 61152 0.1172 0.4428 0.05115
2026 4 23 61153 0.1185 0.4434 0.05114
2026 4 24 61154 0.1198 0.4440 0.05098
2026 4 25 61155 0.1211 0.4446 0.05062
2026 4 26 61156 0.1225 0.4451 0.05006
2026 4 27 61157 0.1238 0.4456 0.04937
2026 4 28 61158 0.1252 0.4461 0.04862
2026 4 29 61159 0.1266 0.4466 0.04789
2026 4 30 61160 0.1280 0.4471 0.04728
2026 5 1 61161 0.1294 0.4475 0.04684
2026 5 2 61162 0.1308 0.4479 0.04661
2026 5 3 61163 0.1322 0.4483 0.04660
2026 5 4 61164 0.1336 0.4487 0.04677
2026 5 5 61165 0.1350 0.4490 0.04708
2026 5 6 61166 0.1365 0.4494 0.04745
2026 5 7 61167 0.1379 0.4497 0.04781
2026 5 8 61168 0.1394 0.4499 0.04809
2026 5 9 61169 0.1409 0.4502 0.04821
2026 5 10 61170 0.1423 0.4504 0.04812
2026 5 11 61171 0.1438 0.4507 0.04780
2026 5 12 61172 0.1453 0.4509 0.04727
2026 5 13 61173 0.1468 0.4510 0.04658
2026 5 14 61174 0.1483 0.4512 0.04584
2026 5 15 61175 0.1498 0.4513 0.04522
2026 5 16 61176 0.1513 0.4514 0.04482
2026 5 17 61177 0.1528 0.4515 0.04472
2026 5 18 61178 0.1543 0.4515 0.04488
2026 5 19 61179 0.1558 0.4516 0.04520
2026 5 20 61180 0.1574 0.4516 0.04552
2026 5 21 61181 0.1589 0.4516 0.04569
2026 5 22 61182 0.1604 0.4515 0.04565
2026 5 23 61183 0.1619 0.4515 0.04538
2026 5 24 61184 0.1635 0.4514 0.04493
2026 5 25 61185 0.1650 0.4513 0.04438
2026 5 26 61186 0.1665 0.4511 0.04383
2026 5 27 61187 0.1680 0.4510 0.04335
2026 5 28 61188 0.1696 0.4508 0.04300
2026 5 29 61189 0.1711 0.4506 0.04285
2026 5 30 61190 0.1726 0.4504 0.04291
2026 5 31 61191 0.1741 0.4501 0.04318
2026 6 1 61192 0.1756 0.4499 0.04364
2026 6 2 61193 0.1771 0.4496 0.04422
2026 6 3 61194 0.1787 0.4492 0.04485
2026 6 4 61195 0.1802 0.4489 0.04543
2026 6 5 61196 0.1817 0.4485 0.04588
2026 6 6 61197 0.1832 0.4481 0.04616
2026 6 7 61198 0.1846 0.4477 0.04624
2026 6 8 61199 0.1861 0.4473 0.04613
2026 6 9 61200 0.1876 0.4468 0.04588
2026 6 10 61201 0.1891 0.4463 0.04558
2026 6 11 61202 0.1905 0.4458 0.04535
2026 6 12 61203 0.1920 0.4453 0.04531
2026 6 13 61204 0.1934 0.4448 0.04557
2026 6 14 61205 0.1949 0.4442 0.04613
2026 6 15 61206 0.1963 0.4436 0.04692
2026 6 16 61207 0.1977 0.4430 0.04780
2026 6 17 61208 0.1992 0.4423 0.04862
2026 6 18 61209 0.2006 0.4417 0.04926
2026 6 19 61210 0.2019 0.4410 0.04971
2026 6 20 61211 0.2033 0.4403 0.05001
2026 6 21 61212 0.2047 0.4395 0.05025
2026 6 22 61213 0.2060 0.4388 0.05052
2026 6 23 61214 0.2074 0.4380 0.05088
2026 6 24 61215 0.2087 0.4372 0.05142
2026 6 25 61216 0.2100 0.4364 0.05216
2026 6 26 61217 0.2113 0.4356 0.05312
2026 6 27 61218 0.2126 0.4347 0.05430
2026 6 28 61219 0.2139 0.4338 0.05565
2026 6 29 61220 0.2152 0.4330 0.05707
2026 6 30 61221 0.2164 0.4320 0.05853
2026 7 1 61222 0.2176 0.4311 0.05998
2026 7 2 61223 0.2188 0.4301 0.06134
2026 7 3 61224 0.2200 0.4292 0.06252
2026 7 4 61225 0.2212 0.4282 0.06353
2026 7 5 61226 0.2224 0.4272 0.06436
2026 7 6 61227 0.2235 0.4261 0.06499
2026 7 7 61228 0.2246 0.4251 0.06548
2026 7 8 61229 0.2257 0.4240 0.06596
2026 7 9 61230 0.2268 0.4229 0.06655
2026 7 10 61231 0.2279 0.4218 0.06737
2026 7 11 61232 0.2290 0.4207 0.06851
2026 7 12 61233 0.2300 0.4196 0.06984
2026 7 13 61234 0.2310 0.4184 0.07124
2026 7 14 61235 0.2320 0.4173 0.07262
2026 7 15 61236 0.2330 0.4161 0.07380
2026 7 16 61237 0.2339 0.4149 0.07471
2026 7 17 61238 0.2348 0.4137 0.07537
2026 7 18 61239 0.2357 0.4124 0.07589
2026 7 19 61240 0.2366 0.4112 0.07634
2026 7 20 61241 0.2375 0.4099 0.07687
2026 7 21 61242 0.2383 0.4087 0.07758
2026 7 22 61243 0.2391 0.4074 0.07853
2026 7 23 61244 0.2399 0.4061 0.07974
2026 7 24 61245 0.2407 0.4048 0.08117
2026 7 25 61246 0.2415 0.4034 0.08280
2026 7 26 61247 0.2422 0.4021 0.08458
2026 7 27 61248 0.2429 0.4008 0.08631
2026 7 28 61249 0.2435 0.3994 0.08803
2026 7 29 61250 0.2442 0.3980 0.08961
2026 7 30 61251 0.2448 0.3967 0.09098
2026 7 31 61252 0.2454 0.3953 0.09210
2026 8 1 61253 0.2460 0.3939 0.09305
2026 8 2 61254 0.2465 0.3925 0.09376
2026 8 3 61255 0.2471 0.3910 0.09433
2026 8 4 61256 0.2476 0.3896 0.09486
2026 8 5 61257 0.2480 0.3882 0.09546
2026 8 6 61258 0.2485 0.3867 0.09621
2026 8 7 61259 0.2489 0.3853 0.09719
2026 8 8 61260 0.2493 0.3838 0.09842
2026 8 9 61261 0.2497 0.3824 0.09975
2026 8 10 61262 0.2500 0.3809 0.10111
2026 8 11 61263 0.2503 0.3794 0.10236
2026 8 12 61264 0.2506 0.3779 0.10342
2026 8 13 61265 0.2509 0.3764 0.10415
2026 8 14 61266 0.2511 0.3749 0.10465
2026 8 15 61267 0.2513 0.3734 0.10504
2026 8 16 61268 0.2515 0.3719 0.10544
2026 8 17 61269 0.2516 0.3704 0.10598
2026 8 18 61270 0.2517 0.3689 0.10669
2026 8 19 61271 0.2518 0.3674 0.10761
2026 8 20 61272 0.2519 0.3659 0.10876
2026 8 21 61273 0.2519 0.3644 0.11000
2026 8 22 61274 0.2519 0.3629 0.11133
2026 8 23 61275 0.2519 0.3614 0.11280
2026 8 24 61276 0.2519 0.3599 0.11427
2026 8 25 61277 0.2518 0.3584 0.11553
2026 8 26 61278 0.2517 0.3568 0.11661
2026 8 27 61279 0.2516 0.3553 0.11746
2026 8 28 61280 0.2514 0.3538 0.11800
2026 8 29 61281 0.2512 0.3523 0.11833
2026 8 30 61282 0.2510 0.3508 0.11845
2026 8 31 61283 0.2508 0.3493 0.11847
2026 9 1 61284 0.2505 0.3478 0.11861
2026 9 2 61285 0.2502 0.3463 0.11895
2026 9 3 61286 0.2499 0.3448 0.11950
2026 9 4 61287 0.2495 0.3433 0.12026
2026 9 5 61288 0.2491 0.3419 0.12120
2026 9 6 61289 0.2487 0.3404 0.12222
2026 9 7 61290 0.2483 0.3389 0.12315
2026 9 8 61291 0.2478 0.3374 0.12381
2026 9 9 61292 0.2473 0.3360 0.12415
2026 9 10 61293 0.2468 0.3345 0.12418
2026 9 11 61294 0.2463 0.3331 0.12391
2026 9 12 61295 0.2457 0.3317 0.12365
2026 9 13 61296 0.2451 0.3302 0.12342
2026 9 14 61297 0.2445 0.3288 0.12336
2026 9 15 61298 0.2438 0.3274 0.12345
2026 9 16 61299 0.2431 0.3260 0.12376
2026 9 17 61300 0.2424 0.3246 0.12436
2026 9 18 61301 0.2417 0.3233 0.12508
2026 9 19 61302 0.2409 0.3219 0.12593
2026 9 20 61303 0.2402 0.3205 0.12675
2026 9 21 61304 0.2393 0.3192 0.12745
2026 9 22 61305 0.2385 0.3179 0.12802
2026 9 23 61306 0.2376 0.3165 0.12837
2026 9 24 61307 0.2368 0.3152 0.12843
2026 9 25 61308 0.2359 0.3140 0.12824
2026 9 26 61309 0.2349 0.3127 0.12791
2026 9 27 61310 0.2340 0.3114 0.12744
2026 9 28 61311 0.2330 0.3102 0.12695
2026 9 29 61312 0.2320 0.3089 0.12669
2026 9 30 61313 0.2309 0.3077 0.12674
2026 10 1 61314 0.2299 0.3065 0.12703
2026 10 2 61315 0.2288 0.3053 0.12758
2026 10 3 61316 0.2277 0.3042 0.12811
2026 10 4 61317 0.2266 0.3030 0.12855
2026 10 5 61318 0.2254 0.3019 0.12877
2026 10 6 61319 0.2243 0.3008 0.12874
2026 10 7 61320 0.2231 0.2997 0.12843
2026 10 8 61321 0.2219 0.2986 0.12794
2026 10 9 61322 0.2207 0.2975 0.12733
2026 10 10 61323 0.2194 0.2965 0.12674
2026 10 11 61324 0.2181 0.2955 0.12625
2026 10 12 61325 0.2169 0.2944 0.12592
2026 10 13 61326 0.2155 0.2935 0.12581
2026 10 14 61327 0.2142 0.2925 0.12578
2026 10 15 61328 0.2129 0.2916 0.12586
2026 10 16 61329 0.2115 0.2906 0.12604
2026 10 17 61330 0.2101 0.2897 0.12624
2026 10 18 61331 0.2087 0.2889 0.12633
2026 10 19 61332 0.2073 0.2880 0.12628
2026 10 20 61333 0.2059 0.2872 0.12598
2026 10 21 61334 0.2044 0.2863 0.12548
2026 10 22 61335 0.2030 0.2856 0.12481
2026 10 23 61336 0.2015 0.2848 0.12391
2026 10 24 61337 0.2000 0.2840 0.12296
2026 10 25 61338 0.1985 0.2833 0.12193
2026 10 26 61339 0.1970 0.2826 0.12096
2026 10 27 61340 0.1954 0.2819 0.12015
2026 10 28 61341 0.1939 0.2813 0.11958
2026 10 29 61342 0.1923 0.2807 0.11925
2026 10 30 61343 0.1907 0.2801 0.11901
2026 10 31 61344 0.1891 0.2795 0.11877
2026 11 1 61345 0.1875 0.2789 0.11842
2026 11 2 61346 0.1859 0.2784 0.11783
2026 11 3 61347 0.1843 0.2779 0.11699
2026 11 4 61348 0.1827 0.2774 0.11597
2026 11 5 61349 0.1810 0.2770 0.11486
2026 11 6 61350 0.1794 0.2765 0.11373
2026 11 7 61351 0.1777 0.2761 0.11276
2026 11 8 61352 0.1760 0.2758 0.11204
2026 11 9 61353 0.1743 0.2754 0.11155
2026 11 10 61354 0.1727 0.2751 0.11135
2026 11 11 61355 0.1710 0.2748 0.11130
2026 11 12 61356 0.1693 0.2745 0.11143
2026 11 13 61357 0.1676 0.2743 0.11162
2026 11 14 61358 0.1658 0.2741 0.11190
2026 11 15 61359 0.1641 0.2739 0.11208
2026 11 16 61360 0.1624 0.2737 0.11212
2026 11 17 61361 0.1607 0.2736 0.11208
2026 11 18 61362 0.1590 0.2735 0.11181
2026 11 19 61363 0.1572 0.2734 0.11139
2026 11 20 61364 0.1555 0.2733 0.11081
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)
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
60973 -118.69 0.97 -9.58 0.12
60974 -118.34 1.09 -9.59 0.08
60975 -118.01 1.09 -9.62 0.08
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
MJD dX error dY error
(msec. of arc)
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
60973 0.419 0.386 0.010 0.119
60974 0.431 0.433 0.013 0.084
60975 0.444 0.433 0.015 0.084
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)) {
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) {
err = mcc_deduce_error_code(t_err, MccGenericMountNetworkServerErrorCode::ERROR_MOUNT_GET_TELEMETRY);
} else {
@ -1150,7 +1151,8 @@ protected:
{
MccTelemetryData tdata;
auto t_err = mount.telemetryData(&tdata);
auto t_err = mount.waitForTelemetryData(&tdata);
// auto t_err = mount.telemetryData(&tdata);
if (t_err) {
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_UPDATE_STOPPED,
ERROR_DATA_TIMEOUT,
ERROR_UNSUPPORTED_COORD_PAIR
ERROR_UNSUPPORTED_COORD_PAIR,
ERROR_UPDATE_LOOP_WAIT
};
} // namespace mcc
@ -75,6 +76,8 @@ struct MccTelemetryCategory : public std::error_category {
return "a timeout occured while waiting for new data";
case MccTelemetryErrorCode::ERROR_UNSUPPORTED_COORD_PAIR:
return "unsupported coordinate pair";
case MccTelemetryErrorCode::ERROR_UPDATE_LOOP_WAIT:
return "a timeout occured while waiting to exit the update loop";
default:
return "UNKNOWN";
}
@ -104,6 +107,8 @@ public:
static constexpr auto defaultUpdateInterval = std::chrono::milliseconds(100);
static constexpr auto defaultInternalUpdateTimeout = defaultUpdateInterval * 5;
static constexpr auto defaultUpdatingTimeout = std::chrono::milliseconds(500);
typedef std::error_code error_t;
@ -256,6 +261,8 @@ public:
};
_updateFunc = [controls, this](std::stop_token stop_token) -> std::error_code {
std::lock_guard lock{*_updateMutex};
// first, update mount quantities
typename hardware_t::hardware_state_t hw_pos;
auto hw_err = controls->hardwareGetState(&hw_pos);
@ -394,26 +401,38 @@ public:
// update thread
// _updatingFuture = std::async(
// std::launch::async,
// [this](std::stop_token stoken) {
// while (!stoken.stop_requested()) {
// {
// std::unique_lock ulock{*_updateMutex};
_internalUpdatingStopSource = std::stop_source{};
*_internalUpdating = false;
// bool ok = _updateCondVar->wait(ulock, [&stoken, this]() -> bool {
// return _dataUpdatingRequested || stoken.stop_requested();
// });
// }
_dataUpdatingRequested->clear();
_dataUpdatingStart->clear();
// if (!stoken.stop_requested()) {
// std::lock_guard lock{*_timeoutMutex};
_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 (!stop_flag) {
_dataUpdatingRequested->wait(false);
// _lastUpdateError = _updateFunc(stoken);
// }
// }
// },
// _internalUpdatingStopSource.get_token());
stop_flag = stoken.stop_requested();
if (!stop_flag) {
// if (!stoken.stop_requested()) {
*_internalUpdating = true;
std::lock_guard lock{*_timeoutMutex};
_dataUpdatingStart->test_and_set();
_dataUpdatingStart->notify_all();
_lastUpdateError = _updateFunc(stoken);
_dataUpdatingStart->clear();
_dataUpdatingRequested->clear();
}
}
},
_internalUpdatingStopSource.get_token());
}
@ -428,11 +447,9 @@ public:
{
stopInternalTelemetryDataUpdating();
if (_internalUpdatingFuture.valid()) {
if (_updatingFuture.valid()) {
// try to exit correctly
// auto status = _internalUpdatingFuture.wait_for(std::chrono::seconds(1));
_internalUpdatingFuture.wait_for(std::chrono::seconds(1));
// _internalUpdatingFuture.get();
_updatingFuture.wait_for(std::chrono::seconds(1));
}
};
@ -480,67 +497,56 @@ public:
{
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!
*_internalUpdating = true;
_internalUpdatingFuture = std::async(
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);
// }
// }
// }
} else if (status == std::future_status::deferred) { // ???!!!!
_updatingFuture.get();
} else {
_lastUpdateError = MccTelemetryErrorCode::ERROR_UPDATE_LOOP_WAIT;
}
*_internalUpdating = false;
return MccTelemetryErrorCode::ERROR_OK;
},
_internalUpdatingStopSource.get_token());
startInternalTelemetryDataUpdating();
*_internalUpdating = true;
} else {
startInternalTelemetryDataUpdating();
*_internalUpdating = true;
}
} // here the loop is already started
}
void stopInternalTelemetryDataUpdating()
{
// reset all possible locks
_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;
}
@ -553,64 +559,39 @@ public:
error_t updateTelemetryData(traits::mcc_time_duration_c auto const& timeout)
{
{
std::lock_guard thread_lock{*_updateMutex};
// trigger updating
_dataUpdatingRequested->test_and_set();
_dataUpdatingRequested->notify_one();
std::stop_source stop_source;
*_isDataUpdated = false;
// std::future<error_t> update_ft = std::async(std::launch::async, _updateFunc, stop_source.get_token());
// // 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;
// wait for updating start
_dataUpdatingStart->wait(false);
if (_timeoutMutex->try_lock_for(timeout)) {
_timeoutMutex->unlock();
} else {
_lastUpdateError = MccTelemetryErrorCode::ERROR_DATA_TIMEOUT;
}
// unblock waiting threads even in the case of timeout!
_updateCondVar->notify_all();
// *_isDataUpdated = false;
return _lastUpdateError;
}
// 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) {
return MccTelemetryErrorCode::ERROR_NULLPTR;
}
std::unique_lock ulock(*_updateMutex);
auto res = _updateCondVar->wait_for(ulock, timeout, [this]() -> bool { return *_isDataUpdated; });
if (!res) {
return MccTelemetryErrorCode::ERROR_DATA_TIMEOUT;
}
// std::lock_guard thread_lock{*_updateMutex};
updateTelemetryData(timeout);
if (!_lastUpdateError) {
std::lock_guard thread_lock{*_updateMutex};
mcc_copy_telemetry_data(_data, tdata);
}
return _lastUpdateError;
}
@ -742,7 +723,8 @@ protected:
std::unique_ptr<std::condition_variable> _updateCondVar;
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()};
error_t _lastUpdateError{MccTelemetryErrorCode::ERROR_OK};