Форум КРЕЙТ

Форум КРЕЙТ (https://forum.kreit.ru/index.php)
-   Контроллеры ТЭКОН (https://forum.kreit.ru/forumdisplay.php?f=8)
-   -   Вопрос по чтению расширенных архивов (https://forum.kreit.ru/showthread.php?t=545)

lers 25.07.2012 05:42

Вопрос по чтению расширенных архивов
 
Добрый день.

Если при чтении расширенных архивов воспользоваться формулой, которая приведена в документе Т10.06.59РД в пункте 5.3.2, считываются данные не за ту дату, для которой рассчитывался маркер.
Опытным путём выяснили, что данные считываются правильно если к полученному по формуле значению Т прибавить ещё 3. Скажите в чём может быть причина?

Вот код, которая применяется для расчёта маркера. Обратите внимание, что к значению t прибавляется ещё тройка. В этом случае данные считываются корректно.

int m = (dtRead.Month < 3) ? (dtRead.Month + 13) : (dtRead.Month + 1);
int y = (dtRead.Month < 3) ? (dtRead.Year - 1) : dtRead.Year;
int t = (int)(365.25F * y) + (int)(30.6F * m) + dtRead.Day - 694066 + 3;
int marker = t % 42;

gae 25.07.2012 11:46

Вопрос по чтению расширенных архивов
 
И программы ТЭКОН, и наши программы ЭВМ (например, Телемост, см. на сайте) в части чтения/записи расширенных архивов были написаны очень много лет назад, с тех пор ничего не менялось. Вопросов не возникало. Вы просто не учитываете принципы работы часовых архивов ТЭКОН, описанные в РЭ. Данные в расширенных архивах появляются только спустя 4 дня, до этого хранятся в простых часовых архивах, имеющих глубину 4 суток. По окончании каждых суток каждая страница простых часовых архивов "переталкивается" на бОльшую глубину, самая свежая очищается, а с последней страницы данные переносятся в расширенный архив. Таким образом, по маркеру текущей даты всегда будут храниться данные, сформированные 3 дня назад, вот откуда Ваша "эмпирическая тройка".


Текущее время: 21:23. Часовой пояс GMT +5.

Powered by vBulletin® Version 3.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot

Время генерации страницы 0.03582 секунды с 10 запросами