gonets_decoderAlmanac/inc/GonetsAlmanac.h

75 lines
2.5 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// Created by dd on 06.06.2023.
//
#ifndef DECODERALMANACH_DECODER_H
#define DECODERALMANACH_DECODER_H
#include "stdint.h"
#include "vector.h"
#include "time.h"
#include "stdbool.h"
typedef struct __attribute__ ((packed)) {
uint8_t NKA;
uint16_t coil;
struct {
uint8_t day;
uint8_t month;
uint8_t year;
} date;
double equator_time;
double semimajor_axis;
double eccentricity;
double inclination;
double periapsis_argument;
double assending_node_longitud;
double saros;
double assending_node_longitude_delta;
double periapsis_argument_delta;
uint8_t validity_interval;
// uint8_t beginDateWTF;
// uint8_t validToWTF;
} tGonetsAlmanac;
//возвращаемое значение
//это количество элемтов в массиве inRange
size_t GonetsAlmanac_GetInRangeForInterval(
tGonetsAlmanac *alms, //массив альманахов
size_t almsCount, //количество элементов в массиве
vector2 geoLocation, //собственная широта и долгота
float rangeDistance, //ограничение по расстоянию до спутника
//интервал времени в течении которого (полностью от начала и до конца)
//спутник должен находиться в зоне видимости
time_t begin,
time_t end,
//возвращаемый массив с номерами спутников
uint8_t *inRange
);
//возвращаемое значение
//это количество элемтов в массиве inRange
size_t GonetsAlmanac_GetInRangeForMoment(
tGonetsAlmanac *alms, //массив альманахов
size_t almsCount, //количество элементов в массиве
vector2 geoLocation, //собственная широта и долгота
float rangeDistance, //ограничение по расстоянию до спутника
time_t moment,//момент времени для которого запрашиваем спутники в зоне видимости
//возвращаемый массив с номерами спутников
uint8_t *inRange
);
float GonetsAlmanac_GetDistanceByAngleDeg(float angleDeg);
bool GonetsAlmanac_IsValid(tGonetsAlmanac *alms, time_t now);
#endif //DECODERALMANACH_DECODER_H