Archived
Rename the Project:
1.Update KNZ_Plot 2.Update mpre GUI parts
This commit is contained in:
1 parent
d5a7fd37ce
commit
c6d0e5bb48
11 files changed
+108
-136
No files matched your search
+30
-76
@@ -16,60 +16,25 @@
|
|||||||
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \
|
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \
|
||||||
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
|
||||||
|
|
||||||
//FILE SELECT DIALOGS
|
|
||||||
#define FILEEXOP TEXT("RINEX OBS(*.o*.*.*obs.*.*d)\0*.*o;*.*obs;*.*d\0"\
|
|
||||||
"All Files(*.*)\0*.*\0\0");
|
|
||||||
|
|
||||||
#define FILEEXNP TEXT("RINEX NAV(*.*nav.*.hnav.*.gnav.*.qnav.*.*n.*.*g.*.*h.*.*q.*.*p)\0*.*nav;*.hnav;*.gnav;*.qnav;*.*n;*.*g;*.*h;*.*q;*.*p\0"\
|
|
||||||
"All Files(*.*)\0*.*\0\0")
|
|
||||||
|
|
||||||
#define FILEEXSV TEXT("Spos Files(*.sp*)\0*.sp\0"\
|
|
||||||
"All Files(*.*)\0*.*\0\0");
|
|
||||||
|
|
||||||
//DEF MAIN WINDOW BUTTONS
|
|
||||||
#define OBSBUTTON 3301
|
|
||||||
#define NAVBUTTON 3302
|
|
||||||
#define CALBUTTON 3303
|
|
||||||
#define OPTBUTTON 3304
|
|
||||||
#define PLOBUTTON 3305
|
|
||||||
#define OBSCLEAR 3306
|
|
||||||
#define OBSRELOD 3307
|
|
||||||
#define NAVCLEAR 3308
|
|
||||||
#define NAVRELOD 3309
|
|
||||||
#define PROGRESS 3310
|
|
||||||
//DEF MAIN WINDOW GNSS NUTTONS
|
|
||||||
#define GPSCHECK 5500
|
|
||||||
#define GLOCHECK 5501
|
|
||||||
#define BEICHECK 5502
|
|
||||||
#define GALCHECK 5503
|
|
||||||
#define SBACHECK 5504
|
|
||||||
#define SYSGROUP 1001
|
|
||||||
//DEF OPTIONS WINDOW CHECK+BOXS
|
|
||||||
#define OPTDFION 7001
|
|
||||||
#define OPTDFTRO 7002
|
|
||||||
#define OPTCONFI 7003
|
|
||||||
|
|
||||||
HWND hwndb[15];//BUTTON HANDLE
|
HWND hwndb[15];//BUTTON HANDLE
|
||||||
HWND hwndopt;//OPTIONS HANDLE
|
HWND hwndopt;//OPTIONS HANDLE
|
||||||
HWND hwndopt_def_ion;//DEFAULT ION COR
|
HWND hwndopt_def_ion;//DEFAULT ION COR
|
||||||
HWND hwndopt_def_tro;//DEFAULT TRO COR
|
HWND hwndopt_def_tro;//DEFAULT TRO COR
|
||||||
HWND hwndopt_confirm;//OPTION CONFIRM
|
HWND hwndopt_confirm;//OPTION CONFIRM
|
||||||
|
|
||||||
|
FILE* fp_nav = NULL;
|
||||||
|
FILE* fp_obs = NULL;
|
||||||
|
FILE* result_file = NULL;
|
||||||
|
|
||||||
FILE * fp_nav = NULL;
|
pnav_head nav_h = NULL;
|
||||||
FILE * fp_obs = NULL;
|
pnav_body nav_b = NULL;
|
||||||
FILE * result_file = NULL;
|
pobs_head obs_h = NULL;
|
||||||
|
pobs_epoch obs_e = NULL;
|
||||||
pnav_head nav_h = NULL;
|
pobs_body obs_b = NULL;
|
||||||
pnav_body nav_b = NULL;
|
|
||||||
pobs_head obs_h = NULL;
|
|
||||||
pobs_epoch obs_e = NULL;
|
|
||||||
pobs_body obs_b = NULL;
|
|
||||||
|
|
||||||
/*INITIAL CONST*/
|
/*INITIAL CONST*/
|
||||||
int o_epochnum = 0;
|
int o_epochnum = 0;
|
||||||
int gps_satnum = 0;
|
int satnum = 0;
|
||||||
int bds_satnum = 0;
|
|
||||||
|
|
||||||
/*INITIAL SETTINGS*/
|
/*INITIAL SETTINGS*/
|
||||||
static int ionoption = 0;
|
static int ionoption = 0;
|
||||||
@@ -81,20 +46,20 @@ char nav_f[MAX_PATH] = { 0 };
|
|||||||
char path[MAX_PATH];
|
char path[MAX_PATH];
|
||||||
const wchar_t wpath[MAX_PATH];//PROGRAM'S FOLDER
|
const wchar_t wpath[MAX_PATH];//PROGRAM'S FOLDER
|
||||||
|
|
||||||
static void ProgressBar(HWND hwnd, int msec)
|
static void ProgressBar(HWND hwnd, int BEG, int DES)
|
||||||
{
|
{
|
||||||
PBRANGE range;
|
PBRANGE range;
|
||||||
SendMessage(hwnd, PBM_SETRANGE, (WPARAM)FALSE, (LPARAM)(MAKELPARAM(0, 100)));
|
SendMessage(hwnd, PBM_SETRANGE, (WPARAM)FALSE, (LPARAM)(MAKELPARAM(0, 100)));
|
||||||
SendMessage(hwnd, PBM_GETRANGE, (WPARAM)TRUE, (LPARAM)&range);
|
SendMessage(hwnd, PBM_GETRANGE, (WPARAM)TRUE, (LPARAM)&range);
|
||||||
SendMessage(hwnd, PBM_SETPOS, (WPARAM)range.iLow, (LPARAM)0);
|
SendMessage(hwnd, PBM_SETPOS, (WPARAM)BEG, (LPARAM)0);
|
||||||
while (TRUE) {
|
for (int i = BEG; i < DES; i++) {
|
||||||
SendMessage(hwnd, PBM_DELTAPOS, (WPARAM)((range.iHigh - range.iLow) / 100), (LPARAM)0); Sleep(msec);
|
SendMessage(hwnd, PBM_SETPOS, (WPARAM)(int)( i / 10), (LPARAM)0);
|
||||||
if (SendMessage(hwnd, PBM_GETPOS, (WPARAM)0, (LPARAM)0) == range.iHigh)
|
if (SendMessage(hwnd, PBM_GETPOS, (WPARAM)0, (LPARAM)0) == range.iHigh * DES/PBSTATEFULL)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
SendMessage(hwnd, PBM_SETPOS, (WPARAM)range.iHigh, (LPARAM)0);
|
SendMessage(hwnd, PBM_SETPOS, (WPARAM)DES, (LPARAM)0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int FileSelobsDialog(const wchar_t* path)//FILEDIALOG FOR OBS
|
static int FileSelobsDialog(const wchar_t* path)//FILEDIALOG FOR OBS
|
||||||
@@ -149,16 +114,16 @@ int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _
|
|||||||
wndclass.cbClsExtra = 0;
|
wndclass.cbClsExtra = 0;
|
||||||
wndclass.cbWndExtra = 0;
|
wndclass.cbWndExtra = 0;
|
||||||
wndclass.hInstance = hInstance;
|
wndclass.hInstance = hInstance;
|
||||||
wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON2));
|
wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
|
||||||
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
|
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
|
||||||
wndclass.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
|
wndclass.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
|
||||||
wndclass.lpszMenuName = NULL;
|
wndclass.lpszMenuName = NULL;
|
||||||
wndclass.lpszClassName = TEXT("SPP");
|
wndclass.lpszClassName = TEXT("CAL");
|
||||||
|
|
||||||
RegisterClass(&wndclass);
|
RegisterClass(&wndclass);
|
||||||
|
|
||||||
wndclass.lpfnWndProc = OptWndProc;
|
wndclass.lpfnWndProc = OptWndProc;
|
||||||
wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON3));
|
wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON2));
|
||||||
wndclass.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
|
wndclass.hbrBackground = (HBRUSH)(COLOR_BTNFACE + 1);
|
||||||
wndclass.lpszMenuName = NULL;
|
wndclass.lpszMenuName = NULL;
|
||||||
wndclass.lpszClassName = TEXT("OPT");
|
wndclass.lpszClassName = TEXT("OPT");
|
||||||
@@ -167,8 +132,8 @@ int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _
|
|||||||
|
|
||||||
HWND hwnd;
|
HWND hwnd;
|
||||||
hwnd = CreateWindow(
|
hwnd = CreateWindow(
|
||||||
TEXT("SPP"),
|
TEXT("CAL"),
|
||||||
TEXT("SPP Calculate"),
|
TEXT("KNZ_Calculate"),
|
||||||
WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
|
WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
@@ -203,7 +168,7 @@ int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _
|
|||||||
{
|
{
|
||||||
SendMessage(hwndb[i], WM_SETFONT, (WPARAM)hbFont, 1);
|
SendMessage(hwndb[i], WM_SETFONT, (WPARAM)hbFont, 1);
|
||||||
}
|
}
|
||||||
Delico = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1));
|
Delico = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON3));
|
||||||
Relico = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON4));
|
Relico = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON4));
|
||||||
SendMessage(hwndb[11], BM_SETIMAGE, IMAGE_ICON, (LPARAM)Delico);
|
SendMessage(hwndb[11], BM_SETIMAGE, IMAGE_ICON, (LPARAM)Delico);
|
||||||
SendMessage(hwndb[12], BM_SETIMAGE, IMAGE_ICON, (LPARAM)Relico);
|
SendMessage(hwndb[12], BM_SETIMAGE, IMAGE_ICON, (LPARAM)Relico);
|
||||||
@@ -240,7 +205,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){
|
|||||||
case WM_CREATE:
|
case WM_CREATE:
|
||||||
{
|
{
|
||||||
getcwd(path, sizeof(path));//GET THE PROGRAM'S FOLDER
|
getcwd(path, sizeof(path));//GET THE PROGRAM'S FOLDER
|
||||||
const char plot[] = "SPP_plot.exe";
|
const char plot[] = "KNZ_Plot.exe";
|
||||||
sprintf(path, "%s\\%s", path, plot);
|
sprintf(path, "%s\\%s", path, plot);
|
||||||
|
|
||||||
cxchar = LOWORD(GetDialogBaseUnits());
|
cxchar = LOWORD(GetDialogBaseUnits());
|
||||||
@@ -338,16 +303,12 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){
|
|||||||
if (obs_h && obs_e && obs_b)
|
if (obs_h && obs_e && obs_b)
|
||||||
{
|
{
|
||||||
read_o_h(fp_obs, obs_h);
|
read_o_h(fp_obs, obs_h);
|
||||||
|
ProgressBar(hwndPB, PBSTATENONE, PBSTATEHALF);
|
||||||
read_o_b(fp_obs, obs_e, obs_b, obs_h->obstypenum_gps, obs_h->obstypenum_bds);
|
read_o_b(fp_obs, obs_e, obs_b, obs_h->obstypenum_gps, obs_h->obstypenum_bds);
|
||||||
}
|
}
|
||||||
fclose(fp_obs);
|
fclose(fp_obs);
|
||||||
|
|
||||||
ProgressBar(hwndPB, 5);
|
ProgressBar(hwndPB, PBSTATEHALF, PBSTATEFULL);
|
||||||
|
|
||||||
if (o_epochnum > 0)
|
|
||||||
{
|
|
||||||
MessageBox(hwnd, TEXT("File of Obs load complete!"), TEXT("NOTICE"), MB_ICONASTERISK | MB_OK);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -366,25 +327,18 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){
|
|||||||
if (fp_nav != NULL)
|
if (fp_nav != NULL)
|
||||||
{
|
{
|
||||||
strcpy(nav_f, nav_file);
|
strcpy(nav_f, nav_file);
|
||||||
gps_satnum = getgpssatnum(fp_nav);
|
satnum = getsatnum(fp_nav);
|
||||||
rewind(fp_nav);
|
|
||||||
bds_satnum = getbdssatnum(fp_nav);
|
|
||||||
rewind(fp_nav);
|
rewind(fp_nav);
|
||||||
nav_h = (pnav_head)malloc(sizeof(nav_head));
|
nav_h = (pnav_head)malloc(sizeof(nav_head));
|
||||||
nav_b = (pnav_body)malloc(sizeof(nav_body) * (gps_satnum + bds_satnum));
|
nav_b = (pnav_body)malloc(sizeof(nav_body) * (satnum));
|
||||||
if (nav_h && nav_b)
|
if (nav_h && nav_b)
|
||||||
{
|
{
|
||||||
read_n_h(fp_nav, nav_h);
|
read_n_h(fp_nav, nav_h);
|
||||||
|
ProgressBar(hwndPB, PBSTATENONE, PBSTATEHALF);
|
||||||
read_n_b(fp_nav, nav_b);
|
read_n_b(fp_nav, nav_b);
|
||||||
}
|
}
|
||||||
fclose(fp_nav);
|
fclose(fp_nav);
|
||||||
|
ProgressBar(hwndPB, PBSTATEHALF, PBSTATEFULL);
|
||||||
ProgressBar(hwndPB, 1);
|
|
||||||
|
|
||||||
if (gps_satnum > 0)
|
|
||||||
{
|
|
||||||
MessageBox(hwnd, TEXT("File of Nav load complete !"), TEXT("NOTICE"), MB_ICONASTERISK | MB_OK);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -435,7 +389,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){
|
|||||||
case NAVRELOD:
|
case NAVRELOD:
|
||||||
if (fp_nav != NULL)
|
if (fp_nav != NULL)
|
||||||
{
|
{
|
||||||
if (gps_satnum > 0)
|
if (satnum > 100)
|
||||||
{
|
{
|
||||||
MessageBox(hwnd, TEXT("File of Nav Reload complete !"), TEXT("NOTICE"), MB_ICONASTERISK | MB_OK);
|
MessageBox(hwnd, TEXT("File of Nav Reload complete !"), TEXT("NOTICE"), MB_ICONASTERISK | MB_OK);
|
||||||
break;
|
break;
|
||||||
@@ -487,7 +441,7 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){
|
|||||||
|
|
||||||
sat_gps_pos_clac(result_file, hwndPB,
|
sat_gps_pos_clac(result_file, hwndPB,
|
||||||
nav_b, obs_e, obs_b, obs_h,
|
nav_b, obs_e, obs_b, obs_h,
|
||||||
o_epochnum, gps_satnum,
|
o_epochnum, satnum,
|
||||||
res_file, obs_f, nav_f,
|
res_file, obs_f, nav_f,
|
||||||
ionoption, trooption);
|
ionoption, trooption);
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -69,7 +69,7 @@ pos_ts gps_pos(int sPRN, int best_epoch, double GPSsec,
|
|||||||
/* ------------------------------- GPS卫星位置计算&输出 ------------------------------ */
|
/* ------------------------------- GPS卫星位置计算&输出 ------------------------------ */
|
||||||
void sat_gps_pos_clac(FILE* result_file,HWND hwndPB,
|
void sat_gps_pos_clac(FILE* result_file,HWND hwndPB,
|
||||||
pnav_body nav_b, pobs_epoch obs_e, pobs_body obs_b,pobs_head obs_h,
|
pnav_body nav_b, pobs_epoch obs_e, pobs_body obs_b,pobs_head obs_h,
|
||||||
int o_epochnum, int gps_satnum,
|
int o_epochnum, int satnum,
|
||||||
char res_file[MAX_PATH], char obs_file[MAX_PATH], char nav_file[MAX_PATH],
|
char res_file[MAX_PATH], char obs_file[MAX_PATH], char nav_file[MAX_PATH],
|
||||||
int ionoption, int trooption)
|
int ionoption, int trooption)
|
||||||
{
|
{
|
||||||
@@ -88,7 +88,7 @@ void sat_gps_pos_clac(FILE* result_file,HWND hwndPB,
|
|||||||
result_file = fopen(res_file, "w");
|
result_file = fopen(res_file, "w");
|
||||||
fclose(result_file);
|
fclose(result_file);
|
||||||
result_file = fopen(res_file, "a+");
|
result_file = fopen(res_file, "a+");
|
||||||
fprintf(result_file, "@ GENERATE PROGRAM : SPP Calculate v0.4.7\n");
|
fprintf(result_file, "@ GENERATE PROGRAM : KNZ_Calculate v0.9.7\n");
|
||||||
fprintf(result_file, "@ GENERATE TYPE : Satellite Position\n");
|
fprintf(result_file, "@ GENERATE TYPE : Satellite Position\n");
|
||||||
fprintf(result_file, "@ GENERATE TIME : %s", ctime(&gen_time));
|
fprintf(result_file, "@ GENERATE TIME : %s", ctime(&gen_time));
|
||||||
fprintf(result_file, "@ OBS FILE PATH : %s\n", obs_file);
|
fprintf(result_file, "@ OBS FILE PATH : %s\n", obs_file);
|
||||||
@@ -129,7 +129,7 @@ void sat_gps_pos_clac(FILE* result_file,HWND hwndPB,
|
|||||||
{
|
{
|
||||||
double GPSsec = Time2GPSsec(y, m, d, h, min, sec);//转换为GPS周内秒
|
double GPSsec = Time2GPSsec(y, m, d, h, min, sec);//转换为GPS周内秒
|
||||||
int sPRN = obs_e[i].sPRN_GPS[j];
|
int sPRN = obs_e[i].sPRN_GPS[j];
|
||||||
int best_epoch = select_epoch(GPSsec, sPRN, nav_b, gps_satnum); //遍历N文件GPS卫星数据块,寻找最佳历元
|
int best_epoch = select_epoch(GPSsec, sPRN, nav_b, satnum, GPS); //遍历N文件GPS卫星数据块,寻找最佳历元
|
||||||
double detat_toc = GPSsec - nav_b[best_epoch].TOE;//观测时刻 - 参考时刻
|
double detat_toc = GPSsec - nav_b[best_epoch].TOE;//观测时刻 - 参考时刻
|
||||||
//计算近似的信号传播时间,接收机钟差已初始化为0(伪距/光速-接收机钟差+卫星钟差)
|
//计算近似的信号传播时间,接收机钟差已初始化为0(伪距/光速-接收机钟差+卫星钟差)
|
||||||
pos_t.delta_t[sPRN] = (obs_b[i].obs_gps[j][Code2Type(C1C, obs_h->obstypenum_gps, obs_h->obscode_gps)] / C_V) - station.delta_TR + nav_b[best_epoch].sa0 + nav_b[best_epoch].sa1 * detat_toc + nav_b[best_epoch].sa2 * pow(detat_toc, 2);
|
pos_t.delta_t[sPRN] = (obs_b[i].obs_gps[j][Code2Type(C1C, obs_h->obstypenum_gps, obs_h->obscode_gps)] / C_V) - station.delta_TR + nav_b[best_epoch].sa0 + nav_b[best_epoch].sa1 * detat_toc + nav_b[best_epoch].sa2 * pow(detat_toc, 2);
|
||||||
|
|||||||
@@ -1,5 +1,44 @@
|
|||||||
#ifndef _PUBLIC_H_
|
#ifndef _PUBLIC_H_
|
||||||
#define _PUBLIC_H_
|
#define _PUBLIC_H_
|
||||||
|
/*---------------------------------- FOR UI ----------------------------------*/
|
||||||
|
//FILE SELECT DIALOGS
|
||||||
|
#define FILEEXOP TEXT("RINEX OBS(*.o*.*.*obs.*.*d)\0*.*o;*.*obs;*.*d\0"\
|
||||||
|
"All Files(*.*)\0*.*\0\0");
|
||||||
|
|
||||||
|
#define FILEEXNP TEXT("RINEX NAV(*.*nav.*.hnav.*.gnav.*.qnav.*.*n.*.*g.*.*h.*.*q.*.*p)\0*.*nav;*.hnav;*.gnav;*.qnav;*.*n;*.*g;*.*h;*.*q;*.*p\0"\
|
||||||
|
"All Files(*.*)\0*.*\0\0")
|
||||||
|
|
||||||
|
#define FILEEXSV TEXT("Spos Files(*.sp*)\0*.sp\0"\
|
||||||
|
"All Files(*.*)\0*.*\0\0");
|
||||||
|
|
||||||
|
//DEF MAIN WINDOW BUTTONS
|
||||||
|
#define OBSBUTTON 3301
|
||||||
|
#define NAVBUTTON 3302
|
||||||
|
#define CALBUTTON 3303
|
||||||
|
#define OPTBUTTON 3304
|
||||||
|
#define PLOBUTTON 3305
|
||||||
|
#define OBSCLEAR 3306
|
||||||
|
#define OBSRELOD 3307
|
||||||
|
#define NAVCLEAR 3308
|
||||||
|
#define NAVRELOD 3309
|
||||||
|
#define PROGRESS 3310
|
||||||
|
//DEF MAIN WINDOW GNSS NUTTONS
|
||||||
|
#define GPSCHECK 5500
|
||||||
|
#define GLOCHECK 5501
|
||||||
|
#define BEICHECK 5502
|
||||||
|
#define GALCHECK 5503
|
||||||
|
#define SBACHECK 5504
|
||||||
|
#define SYSGROUP 1001
|
||||||
|
//DEF OPTIONS WINDOW CHECK+BOXS
|
||||||
|
#define OPTDFION 7001
|
||||||
|
#define OPTDFTRO 7002
|
||||||
|
#define OPTCONFI 7003
|
||||||
|
|
||||||
|
//DEFINE PROGRESSBAR STATE
|
||||||
|
#define PBSTATENONE 0
|
||||||
|
#define PBSTATEHALF 500
|
||||||
|
#define PBSTATEFULL 1000
|
||||||
|
|
||||||
|
|
||||||
/* ------------------------------ WGS-84 CONST ------------------------------ */
|
/* ------------------------------ WGS-84 CONST ------------------------------ */
|
||||||
#define a 6378137.0
|
#define a 6378137.0
|
||||||
@@ -9,6 +48,8 @@
|
|||||||
#define math_e 2.718281828459
|
#define math_e 2.718281828459
|
||||||
#define PI 3.141592653589793
|
#define PI 3.141592653589793
|
||||||
#define Earth_e 7.2921151467e-5
|
#define Earth_e 7.2921151467e-5
|
||||||
|
|
||||||
|
|
||||||
/* ----------------------------- GPS OBSERV TYPE ---------------------------- */
|
/* ----------------------------- GPS OBSERV TYPE ---------------------------- */
|
||||||
#define C1C 1
|
#define C1C 1
|
||||||
#define C1S 2
|
#define C1S 2
|
||||||
@@ -31,6 +72,16 @@
|
|||||||
#define C5I 17
|
#define C5I 17
|
||||||
#define C5Q 18
|
#define C5Q 18
|
||||||
#define C5X 19
|
#define C5X 19
|
||||||
|
|
||||||
|
|
||||||
|
/* ------------------------------- GNSS CODE -------------------------------- */
|
||||||
|
#define GPS 0
|
||||||
|
#define BDS 1
|
||||||
|
#define CAL 2
|
||||||
|
#define GLO 3
|
||||||
|
#define SBAS 4
|
||||||
|
|
||||||
|
|
||||||
/* ------------------------------ FOR CALMOD.H ------------------------------ */
|
/* ------------------------------ FOR CALMOD.H ------------------------------ */
|
||||||
#define MAXRINEX 1000
|
#define MAXRINEX 1000
|
||||||
//卫星位置结构体
|
//卫星位置结构体
|
||||||
|
|||||||
+9
-45
@@ -243,9 +243,9 @@ extern void read_o_b(FILE* fp_obs, pobs_epoch obs_e, pobs_body obs_b, int type_g
|
|||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
/* ---------------------- 获取文件数据块行数,从END OF HEADER后开始起算 --------------------- */
|
/* ---------------------- 获取文件数据块行数,从END OF HEADER后开始起算 --------------------- */
|
||||||
int getgpssatnum(FILE* fp_nav)
|
int getsatnum(FILE* fp_nav)
|
||||||
{
|
{
|
||||||
int gps_satnum = 0;
|
int satnum = 0;
|
||||||
int flag = 0;
|
int flag = 0;
|
||||||
char buff[MAXRINEX];//用来存放读取到的字符串
|
char buff[MAXRINEX];//用来存放读取到的字符串
|
||||||
char satvar;
|
char satvar;
|
||||||
@@ -263,54 +263,18 @@ int getgpssatnum(FILE* fp_nav)
|
|||||||
while (fgets(buff, MAXRINEX, fp_nav))
|
while (fgets(buff, MAXRINEX, fp_nav))
|
||||||
{
|
{
|
||||||
strncpy(&satvar, buff + 0, 1);
|
strncpy(&satvar, buff + 0, 1);
|
||||||
if (satvar != 'G')
|
if (satvar == 'G' || satvar == 'E' || satvar == 'R' || satvar == 'S' || satvar == 'C' || satvar == 'I' || satvar == 'J')
|
||||||
|
{
|
||||||
|
satnum++;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (satvar == 'G')
|
|
||||||
{
|
|
||||||
gps_satnum++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return gps_satnum;
|
|
||||||
}
|
|
||||||
|
|
||||||
int getbdssatnum(FILE* fp_nav)
|
|
||||||
{
|
|
||||||
int bds_satnum = 0;
|
|
||||||
int flag = 0;
|
|
||||||
char buff[MAXRINEX];//用来存放读取到的字符串
|
|
||||||
char satvar;
|
|
||||||
char* lable = buff + 60;
|
|
||||||
//fgets函数,读取一行,当读取结束后返回NULL指针,格式如下:
|
|
||||||
//wchar_t * fgets ( wchar_t * str, int num, FILE * stream );
|
|
||||||
while (fgets(buff, MAXRINEX, fp_nav))
|
|
||||||
{
|
|
||||||
if (strstr(lable, "END OF HEADER"))
|
|
||||||
{
|
|
||||||
flag = 1;
|
|
||||||
}
|
|
||||||
if (flag == 1)
|
|
||||||
{
|
|
||||||
while (fgets(buff, MAXRINEX, fp_nav))
|
|
||||||
{
|
|
||||||
strncpy(&satvar, buff + 0, 1);
|
|
||||||
if (satvar != 'C')
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
else if (satvar == 'C')
|
|
||||||
{
|
|
||||||
bds_satnum++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return bds_satnum;
|
return satnum;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -------------------------------- 读取N文件数据头 -------------------------------- */
|
/* -------------------------------- 读取N文件数据头 -------------------------------- */
|
||||||
@@ -390,7 +354,7 @@ void read_n_h(FILE* fp_nav, pnav_head nav_h)
|
|||||||
void read_n_b(FILE* fp_nav, pnav_body nav_b)
|
void read_n_b(FILE* fp_nav, pnav_body nav_b)
|
||||||
{
|
{
|
||||||
int i_g = 0;//第i_g个卫星数据
|
int i_g = 0;//第i_g个卫星数据
|
||||||
char buff[84] = { 0 };
|
char buff[MAXRINEX] = { 0 };
|
||||||
char flag = { 0 };//判断符号
|
char flag = { 0 };//判断符号
|
||||||
while (fgets(buff, MAXRINEX, fp_nav))
|
while (fgets(buff, MAXRINEX, fp_nav))
|
||||||
{
|
{
|
||||||
|
|||||||
+12
-9
@@ -10,24 +10,27 @@
|
|||||||
/// @param SecofWeek 计算得到的观测历元的周内秒
|
/// @param SecofWeek 计算得到的观测历元的周内秒
|
||||||
/// @param sPRN 需要匹配的该历元卫星号
|
/// @param sPRN 需要匹配的该历元卫星号
|
||||||
/// @param nav_b 导航文件数据块结构体,与卫星号匹配
|
/// @param nav_b 导航文件数据块结构体,与卫星号匹配
|
||||||
/// @param gps_satnum 该历元的GPS卫星数量
|
/// @param satnum 广播星历卫星数量
|
||||||
|
/// @param syscode 卫星系统代码,详情见PPUBLIC.H
|
||||||
/// @return 返回最佳历元的绝对历元序号
|
/// @return 返回最佳历元的绝对历元序号
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
extern int select_epoch(double SecofWeek, int sPRN, pnav_body nav_b, int gps_satnum)
|
extern int select_epoch(double SecofWeek, int sPRN, pnav_body nav_b, int satnum, int syscode)
|
||||||
{
|
{
|
||||||
int best_epoch = 0;
|
int best_epoch = 0;
|
||||||
double min = 10000;//初始化最小值
|
double min = 10000;//初始化最小值
|
||||||
double Min;
|
double Min;
|
||||||
int i;
|
if (syscode == GPS)
|
||||||
for (i = 0; i < gps_satnum; i++)
|
|
||||||
{
|
{
|
||||||
if (sPRN == nav_b[i].sPRN_GPS)
|
for (int i = 0; i < satnum; i++)
|
||||||
{
|
{
|
||||||
Min = fabs(SecofWeek - nav_b[i].TOE);
|
if (sPRN == nav_b[i].sPRN_GPS)
|
||||||
if (Min <= min)
|
|
||||||
{
|
{
|
||||||
best_epoch = i;
|
Min = fabs(SecofWeek - nav_b[i].TOE);
|
||||||
min = Min;
|
if (Min <= min)
|
||||||
|
{
|
||||||
|
best_epoch = i;
|
||||||
|
min = Min;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 6.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.6 KiB |
+3
-3
@@ -1,17 +1,17 @@
|
|||||||
//{{NO_DEPENDENCIES}}
|
//{{NO_DEPENDENCIES}}
|
||||||
// Microsoft Visual C++ 生成的包含文件。
|
// Microsoft Visual C++ 生成的包含文件。
|
||||||
// 供 SPP_Calculate.rc 使用
|
// 供 SPP_calculate.rc 使用
|
||||||
//
|
//
|
||||||
#define IDI_ICON1 101
|
#define IDI_ICON1 101
|
||||||
#define IDI_ICON2 102
|
#define IDI_ICON2 102
|
||||||
#define IDI_ICON3 103
|
#define IDI_ICON3 103
|
||||||
#define IDI_ICON4 104
|
#define IDI_ICON4 105
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 105
|
#define _APS_NEXT_RESOURCE_VALUE 106
|
||||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1001
|
#define _APS_NEXT_CONTROL_VALUE 1001
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
|
|||||||
Reference in new issue
Block a user