📄 gps_parsing.c
字号:
#include <ez8.h>
#include <stdio.h>
#include <string.h>
#include <sio.h>
#include <stdlib.h>
#include "GPS_parsing.h"
char RMC[100];
char GGA[100];
char *GGAstring(void) {
char GGAstr[100];
select_port(_UART0);
scanf("%s", &GGAstr);
while (GGAstr[4] != 'G')
scanf("%s", &GGAstr);
select_port(_UART1);
return (GGAstr);
}
char *RMCstring(void) {
char RMCstr[100];
select_port(_UART0);
scanf("%s", &RMCstr);
while (RMCstr[3] != 'R')
scanf("%s", &RMCstr);
select_port(_UART1);
return (RMCstr);
}
void RMCtime(char *RMCstr) {
extern char timeRMC[];
int i = 0;
while (RMCstr[i] != ',')
i++;
i++;
if (RMCstr[i] != ',') {
strncpy(timeRMC, &RMCstr[i], 10);
timeRMC[10] = '\0';
strcpy(RMC, &RMCstr[i+11]);
}
else {
select_port(_UART1);
printf("No time logged.\n");
timeRMC[0] = '\0';
}
}
void RMClat(void) {
int i = 0;
extern char latRMC[];
extern char NS;
while (RMC[i] != ',')
i++;
i++;
if (RMC[i] != ',') {
strncpy(latRMC, &RMC[i], 11);
NS = latRMC[10];
latRMC[9] = '\0';
strcpy(RMC, &RMC[i+12]);
}
else {
select_port(_UART1);
printf("No valid latitude logged.\n");
latRMC[0] = '\0';
}
}
void RMClong(void) {
int i = 0;
extern char longRMC[];
extern char EW;
if (RMC[i] != ',') {
strncpy(longRMC, &RMC[i], 12);
EW = longRMC[11];
longRMC[10] = '\0';
strcpy(RMC, &RMC[i+13]);
}
else {
select_port(_UART1);
printf("No valid longitude logged.\n");
longRMC[0] = '\0';
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -