This repository has been archived on 2026-10-26. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
KNZ_GeoTrackLab/headers/select_epo.h
T
KenanZhu111 37473233c2 UPDATE MANY NWE FUNCTIONS
Origin project is based on visual studio solution,
so, when you load all the files in your editor,
it can be cause errors. So, modify is a good choice
2024-10-01 22:06:38 +08:00

37 lines
974 B
C

#ifndef _SELECT_EPO_H_
#define _SELECT_EPO_H_
#include<math.h>
#include"public.h"
/* -------------------------------------------------------------------------- */
/// @brief 寻找与观测历元最近的卫星广播历元
/// @param SecofWeek 计算得到的观测历元的周内秒
/// @param sPRN 需要匹配的该历元卫星号
/// @param nav_b 导航文件数据块结构体,与卫星号匹配
/// @param gps_satnum 该历元的GPS卫星数量
/// @return 返回最佳历元的绝对历元序号
/* -------------------------------------------------------------------------- */
extern int select_epoch(double SecofWeek, int sPRN, pnav_body nav_b, int gps_satnum)
{
int best_epoch = 0;
double min = 10000;//初始化最小值
double Min;
int i;
for (i = 0; i < gps_satnum; i++)
{
if (sPRN == nav_b[i].sPRN_GPS)
{
Min = fabs(SecofWeek - nav_b[i].TOE);
if (Min <= min)
{
best_epoch = i;
min = Min;
}
}
}
return best_epoch;
}
#endif