Archived
Major update: Improve the function and operation logic of software input and output
This commit is contained in:
1 parent
c44c1df50f
commit
2ca57dcb64
4 files changed
+84
-5
No files matched your search
@@ -243,6 +243,8 @@
|
|||||||
result_file = fopen(".\\Observation_Station_Site-Solving_by_Matlab\\LLA_result_for_Matlab.txt", "a+");
|
result_file = fopen(".\\Observation_Station_Site-Solving_by_Matlab\\LLA_result_for_Matlab.txt", "a+");
|
||||||
fprintf(result_file, "\nEND");
|
fprintf(result_file, "\nEND");
|
||||||
fclose(result_file);
|
fclose(result_file);
|
||||||
|
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -27,8 +27,46 @@ int main(void)
|
|||||||
pobs_epoch obs_e = NULL;
|
pobs_epoch obs_e = NULL;
|
||||||
pobs_body obs_b = NULL;//创建结构体指针,并将其初始化为空
|
pobs_body obs_b = NULL;//创建结构体指针,并将其初始化为空
|
||||||
|
|
||||||
|
int over = 0;
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
while(over == 0)
|
||||||
|
{
|
||||||
|
int langop;
|
||||||
|
char obs_flie[20];
|
||||||
|
char nav_file[20];
|
||||||
|
|
||||||
|
printf("**************SPP-pseudorange-positioning**************\n");
|
||||||
|
printf("**@Author: KenanZhu\n**@Date: 2024/09/21\n**@Make by: C\n");
|
||||||
|
printf("**@INTRO: The main functions of the software include:\n");
|
||||||
|
printf("**read RINEX3.04 files, and output three formats of document files,\n");
|
||||||
|
printf("**please cooperate with the corresponding tools for processing.\n");
|
||||||
|
printf("**Specific please see:\n https://github.com/KenanZhu111/SPP_-pseudorange-positioning\n");
|
||||||
|
printf("*******************************************************\n\n");
|
||||||
|
|
||||||
|
printf("请选择您的语言:/Please choose your language\n(1)ENG/(0)中文\n");
|
||||||
|
scanf("%d",&langop);
|
||||||
|
if (langop == 0)
|
||||||
|
{ printf("本程序只支持 ver3.04 RINEX文件的读取\n");
|
||||||
|
printf("请输入观测数据文件的文件名(包含拓展名):\n");
|
||||||
|
scanf("%s", &obs_flie);}
|
||||||
|
if (langop == 1)
|
||||||
|
{ printf("This program only supports reading ver3.04 RINEX files\n");
|
||||||
|
printf("Please enter the file name (including the extension) of the observation data file.:\n");
|
||||||
|
scanf("%s", &obs_flie);}
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
//O文件读取
|
//O文件读取
|
||||||
fp_obs = fopen("alic0600.22o", "r");//以只读的方式打开O文件
|
fp_obs = fopen(obs_flie, "r");
|
||||||
|
if (langop == 0 && fp_obs == NULL)
|
||||||
|
{printf("观测文件%s读取失败,请检查文件名或者确认文件是否被移动\n", obs_flie);break;}
|
||||||
|
else if (langop == 0 && fp_obs != NULL)
|
||||||
|
{printf("观测文件%s读取成功,正在处理数据\n", obs_flie);}
|
||||||
|
|
||||||
|
if (langop == 1 && fp_obs == NULL)
|
||||||
|
{printf("Observation file %s failed to be read. Please check the file name or confirm whether the file has been moved\n", obs_flie);break;}
|
||||||
|
else if (langop == 1 && fp_obs != NULL)
|
||||||
|
{printf("The observation file %s has been read successfully and data is being processed\n", obs_flie);}
|
||||||
|
|
||||||
int o_epochnum = get_epochnum(fp_obs);//O文件历元数
|
int o_epochnum = get_epochnum(fp_obs);//O文件历元数
|
||||||
rewind(fp_obs);
|
rewind(fp_obs);
|
||||||
obs_h = (pobs_head)malloc(sizeof(obs_head));//给O文件头开辟空间
|
obs_h = (pobs_head)malloc(sizeof(obs_head));//给O文件头开辟空间
|
||||||
@@ -41,8 +79,28 @@ int main(void)
|
|||||||
}
|
}
|
||||||
fclose(fp_obs);//关闭O文件
|
fclose(fp_obs);//关闭O文件
|
||||||
|
|
||||||
|
if (langop == 0)
|
||||||
|
{ printf("观测文件读取完成!\n");
|
||||||
|
printf("请输入导航文件的文件名(包含拓展名):\n");
|
||||||
|
scanf("%s", &nav_file);}
|
||||||
|
if (langop == 1)
|
||||||
|
{ printf("This program only supports reading ver3.04 RINEX files\n");
|
||||||
|
printf("Please enter the file name (including the extension) of the Navigation data file.:\n");
|
||||||
|
scanf("%s", &nav_file);}
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
//N文件读取
|
//N文件读取
|
||||||
fp_nav = fopen("brdm0600.22p", "r");//以只读的方式打开N文件
|
fp_nav = fopen(nav_file, "r");
|
||||||
|
fp_obs = fopen(obs_flie, "r");
|
||||||
|
if (langop == 0 && fp_nav == NULL)
|
||||||
|
{printf("导航文件%s读取失败,请检查文件名或者确认文件是否被移动\n", nav_file);break;}
|
||||||
|
else if (langop == 0 && fp_nav != NULL)
|
||||||
|
{printf("观测文件%s读取成功,正在处理数据\n", nav_file);}
|
||||||
|
|
||||||
|
if (langop == 1 && fp_nav == NULL)
|
||||||
|
{printf("Navigation file %s failed to be read. Please check the file name or confirm whether the file has been moved\n", nav_file);break;}
|
||||||
|
else if (langop == 1 && fp_nav != NULL)
|
||||||
|
{printf("The Navigation file %s has been read successfully and data is being processed\n", nav_file);}
|
||||||
|
|
||||||
int gps_satnum = getgpssatnum(fp_nav);//获取导航文件GPS卫星数据块数
|
int gps_satnum = getgpssatnum(fp_nav);//获取导航文件GPS卫星数据块数
|
||||||
rewind(fp_nav);//将文件指针返回值起始位置
|
rewind(fp_nav);//将文件指针返回值起始位置
|
||||||
nav_h = (pnav_head)malloc(sizeof(nav_head));//给N文件头开辟空间
|
nav_h = (pnav_head)malloc(sizeof(nav_head));//给N文件头开辟空间
|
||||||
@@ -54,14 +112,34 @@ int main(void)
|
|||||||
}
|
}
|
||||||
fclose(fp_nav);//关闭N文件
|
fclose(fp_nav);//关闭N文件
|
||||||
|
|
||||||
|
if (langop == 0)
|
||||||
|
{printf("导航文件读取完成!\n");printf("正在计算数据>\n");}
|
||||||
|
if (langop == 1)
|
||||||
|
{printf("Navigation file read complete!\n");printf("Calculating data>\n");}
|
||||||
|
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
if (fp_obs != NULL && fp_nav != NULL)
|
||||||
|
{
|
||||||
blh = (pblh)malloc(sizeof(pblh) * o_epochnum *256);
|
blh = (pblh)malloc(sizeof(pblh) * o_epochnum *256);
|
||||||
enu = (penu)malloc(sizeof(penu) * o_epochnum *256);
|
enu = (penu)malloc(sizeof(penu) * o_epochnum *256);
|
||||||
rah = (prah)malloc(sizeof(prah) * o_epochnum *256);
|
rah = (prah)malloc(sizeof(prah) * o_epochnum *256);
|
||||||
pos_t = (ppos_t)malloc(sizeof(ppos_t) * o_epochnum * 256);
|
pos_t = (ppos_t)malloc(sizeof(ppos_t) * o_epochnum * 256);
|
||||||
station = (pstation)malloc(sizeof(pstation) * o_epochnum * 256);
|
station = (pstation)malloc(sizeof(pstation) * o_epochnum * 256);
|
||||||
|
|
||||||
sat_gps_pos_clac(result_file, nav_b, obs_e, obs_b, obs_h, station, pos_t, blh, enu, rah, o_epochnum, gps_satnum);
|
over = sat_gps_pos_clac(result_file, nav_b, obs_e, obs_b, obs_h, station, pos_t, blh, enu, rah, o_epochnum, gps_satnum);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
if (langop == 0)
|
||||||
|
{ if (over == 1)
|
||||||
|
{printf("数据生成完毕!");}
|
||||||
|
if (over != 1)
|
||||||
|
{printf("数据处理发生错误!");break;}}
|
||||||
|
if (langop == 1)
|
||||||
|
{ if (over == 1)
|
||||||
|
{printf("Data generation completed!");}
|
||||||
|
if (over != 1)
|
||||||
|
{printf("Data processing error!");break;}}
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user