Я использую FastRTPS для связи между несколькими процессами в одной системе Linux. Они обмениваются информацией в пакетах. Каждый пакет имеет отметку времени, не зависящую от времени отправки или получения. Таким образом, передаваемая информация может быть использована правильно.
Я думал об использовании:
uint64_t time_in_microseconds = std::chrono::duration_cast
<std::chrono::microseconds>(std::chrono::steady_clock::now()
.time_since_epoch()).count();
чтобы получить метку времени для пакетов.
Тем не менее, устойчивые часы устойчивы между процессами в одной системе? Или только внутри одного процесса?
Если нет, то насколько системные часы изменяются при нормальных условиях? Сколько бы он сдвинулся «назад во времени»? (без настройки вручную, без подключения к интернету, без изменения времени и т. д.)
Спасибо
Редактировать:
Пакеты будут использоваться в алгоритмах оценки состояния и управления. Данные датчика будут, например, перемещаться из процесса чтения датчика в процесс оценки состояния. Информация о состоянии переместится из процесса оценки в процесс контроля. Вот почему я должен иметь возможность измерять интервалы последовательно по всей системе. Ни system_clock, ни stable_clock, кажется, не обеспечивают то, что мне нужно. System_clock согласован, но не монотонен. И устойчивые часы являются монотонными и последовательными внутри одного процесса, но, насколько я вижу, они не согласованы по всей системе? Либо это?