Исходный код soniks_client.antenna.tracking.normal

"""Стратегия слежения для обычного ротатора с азимутом 0–360°."""

from soniks_client.antenna.tracking.base import TrackingStrategy


[документация] class NormalStrategy(TrackingStrategy): """Обычный режим. Азимут 0..360, угловое расстояние — кратчайшее через 0/360."""
[документация] def prepare_pass(self, aos_az: float, max_az: float, los_az: float) -> None: # подготовка не требуется """Подготовка не требуется.""" return
[документация] def transform_target(self, sat_az, sat_alt, cur_rot_az, cur_rot_alt): """Вернуть азимут спутника как есть, ограничив угол места снизу.""" return sat_az, self._clamp_min_elevation(sat_alt)
[документация] def calculate_delta(self, target_az, target_alt, cur_az, cur_alt): """Вернуть рассогласование, считая азимут по кратчайшему пути через 0/360.""" return ( self.shortest_angular_delta(target_az, cur_az), abs(target_alt - cur_alt), )