File NavTelemetry.hpp¶
File List > Components > NavTelemetry > NavTelemetry.hpp
Go to the documentation of this file
#ifndef ORION_NAV_TELEMETRY_HPP
#define ORION_NAV_TELEMETRY_HPP
#include "Orion/Components/NavTelemetry/NavTelemetryComponentAc.hpp"
namespace Orion {
class NavTelemetry final : public NavTelemetryComponentBase {
public:
explicit NavTelemetry(const char* compName);
~NavTelemetry();
private:
// -----------------------------------------------------------------------
// Port handlers
// -----------------------------------------------------------------------
NavState navStateGet_handler(FwIndexType portNum) override;
void schedIn_handler(FwIndexType portNum, U32 context) override;
// -----------------------------------------------------------------------
// Internal helpers
// -----------------------------------------------------------------------
void pollSimSat();
static F64 haversineDistanceKm(F64 lat1, F64 lon1, F64 lat2, F64 lon2);
void updateCommWindow();
// -----------------------------------------------------------------------
// State
// -----------------------------------------------------------------------
F64 m_lat;
F64 m_lon;
F64 m_alt;
F64 m_gsDistanceKm;
bool m_inCommWindow;
U32 m_schedCounter;
// Ground station configuration (read from env vars at construction)
F64 m_gsLat;
F64 m_gsLon;
F64 m_gsRangeKm;
};
} // namespace Orion
#endif // ORION_NAV_TELEMETRY_HPP