Add laser_tracking_cli_tool/src/tracking.h

This commit is contained in:
Mika 2026-05-17 02:07:31 +00:00
parent 8adac2f6db
commit aa564b5a88

View file

@ -0,0 +1,67 @@
/*
* tracking.h - Einfache, simulierte Tracking-API
*
* Definiert die Struktur 'tracking_status' und zwei Funktionen:
* - start_tracking(target_satellite, elevation_angle, status_out, debug)
* - get_status(status_out)
*
* Diese Implementierung simuliert ein Laser-Tracking-System für Satelliten und
* steuert KEINE echte Hardware.
*/
#ifndef TRACKING_H
#define TRACKING_H
#include <stdbool.h>
#include <time.h>
/*
* Datenstruktur: tracking_status
* Felder (aus der API-Beschreibung):
* - active : bool, ob Tracking aktiv ist
* - last_update : Zeitstempel der letzten Aktualisierung
* - deviation : Abweichung vom Sollwinkel in Grad
*/
typedef struct tracking_status {
bool active;
time_t last_update;
double deviation;
} tracking_status;
/*
* start_tracking
*
* Startet ein simuliertes Tracking auf den angegebenen Satelliten mit
* gegebener Elevation. Es wird KEINE echte Hardware angesprochen.
*
* Parameter:
* - target_satellite : Name/ID des Satelliten (nicht NULL)
* - elevation_angle : Elevation in Grad (0.090.0)
* - status_out : Pointer auf tracking_status, wird gefüllt
* - debug : wenn != 0, werden Debug-Ausgaben erzeugt
*
* Rückgabewert:
* - true bei Erfolg (Simulation)
* - false bei Fehler (z.B. ungültige Parameter)
*/
bool start_tracking(const char *target_satellite,
double elevation_angle,
tracking_status *status_out,
int debug);
/*
* get_status
*
* Liefert den aktuellen simulierten Tracking-Status. In dieser einfachen
* Demo wird bei jedem Aufruf ein plausibler Status generiert.
*
* Parameter:
* - status_out : Pointer auf tracking_status, wird gefüllt
*
* Rückgabewert:
* - true bei Erfolg
* - false bei Fehler (z.B. NULL-Pointer)
*/
bool get_status(tracking_status *status_out);
#endif /* TRACKING_H */