Исходный код 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 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),
)