// SPDX-License-Identifier: LGPL-3.0-or-later // ST4-ESP32: Dead-reckoning position tracker // Port of ASCOM AxisMovementTracker.cs using esp_timer microsecond precision #pragma once #include #include #include "ST4Types.h" class ST4Tracker { double position_; double slewRate_; int64_t startTime_; mutable SemaphoreHandle_t mutex_; double calculateDelta() const; public: ST4Tracker(); ~ST4Tracker(); void begin(); void start(double slewRate); void stop(); double position() const; void setPosition(double pos); double slewRate() const; bool isMoving() const; };