-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathRTK.cpp
72 lines (63 loc) · 1.46 KB
/
RTK.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// Read RTK
void Rs232RTK(int cport_nr4, unsigned char buf4[4096], int lon){
auto n = RS232_PollComport(cport_nr4, buf4, lon);
if(n > 0){
buf4[n] = 0; /* always put a "null" at the end of a string! */
for(int i=0; i < n; i++){
if(buf4[i] < 32) buf4[i] = '.'; /* replace unreadable control-codes by dots */
}
}
else printf("Error reading RTK\n");
}
float LatitudRTK, LongitudRTK,SatellitesRTK, LatitudRTKant, LongitudRTKant;
int DesencriptarRTK(){
int apuntador=999;
int cambio = 0;
int lon=100;
for(int i=0;i<lon;i++){
aux1[i] = ' ';
aux2[i] = ' ';
aux3[i] = ' ';
aux4[i] = ' ';
serial[i]=' ';
}
for(int i=0;i<200;i++){
if(buf4[i]=='2' && buf4[i+1]=='0' && buf4[i+4]=='/'){
cambio = 1;
apuntador = i+27;
i = 200;
}
}
// Extracts Latitud
for(int i=0;i<20;i++){
if( buf4[apuntador]==' ' ){
apuntador++;
i=200;
}
else{
aux1[i]=buf4[apuntador];
}
apuntador++;
}
LatitudRTK=atof(aux1);
// Extracts Longitud
for(int i=0;i<20;i++){
if(buf4[apuntador]==' '){
apuntador = apuntador + 17;
i=200;
}
else aux2[i]=buf4[apuntador];
apuntador++;
}
if (atof(aux2)!=-75.099998)
LongitudRTK=atof(aux2);
// Extracts #satellites
for(int i=0;i<20;i++){
if(buf4[apuntador]==' ') i=200;
else aux3[i]=buf4[apuntador];
apuntador++;
}
SatellitesRTK= atoi(aux3);
LatitudRTKant=LatitudRTK;
LongitudRTKant=LongitudRTK;
}