
Usar parseo de NMEA en mi pagina web
Publicado por anonymous (1 intervención) el 02/10/2018 02:50:49
Hola a todos, cree una pagina web para mostrar instrumentos que usan NMEA, y el parseo lo hice en Python (ùnico còdigo que manejo muy bien), el tema es que HTML5 y Python no se llevan bien (NO lo sabia).
Ando buscando ayuda en eso, unir mi archivo .py a la pagina y que me regrese la lectura en: "resultadopython".
(Les dejo el index.html, style.css y el .py)
Espero puedan ayudarme, desde ya muchisimas gracias.
PD: Añadi el archivo generado de tramas NMEA (lo vitrualizo con el programa VSPE para hacer las pruebas)
CODIGO PYTHON PARA PARSEAR :
GENERADOR DE TRAMAS NMEAS (NO FUNCIONA si no se virtualiza el puerto COM con el programa VSPE)
Ando buscando ayuda en eso, unir mi archivo .py a la pagina y que me regrese la lectura en: "resultadopython".
(Les dejo el index.html, style.css y el .py)
Espero puedan ayudarme, desde ya muchisimas gracias.
PD: Añadi el archivo generado de tramas NMEA (lo vitrualizo con el programa VSPE para hacer las pruebas)
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
<!DOCTYPE html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>NMEA</title>
<link href="http://fonts.googleapis.com/css?family=Arvo" rel="stylesheet" type="text/css" />
<link href="style.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<div id="encabezado">
<div id="cabeza" class="container">
<div id="logo">
<h1>Instrumentos de NMEA</h1>
</div>
</div>
<div id="menu">
<ul>
<li><a href="index.html">TODOS</a></li>
<li><a href="gps.html">GPS</a></li>
<li><a href="radar.html">RADAR</a></li>
<li><a href="meteo.html">METEO</a></li>
<li><a href="ecosonda.html">ECOSONDA</a></li>
</ul>
</div>
</div>
<div id="cubo">
<div id="page">
<div id="box1">
<p><strong>SISTEMA DE INSTRUMENTOS INTEGRADO</strong></p>
</div>
<div id="centro">
<ul id="division">
<li class="nopad"><img src="images/gps2.jpg" width="320" height="150" alt="" title="" /></a> resultadopython</li>
<li><img src="images/radar.jpg" width="320" height="150" alt="" title="" /></a> resultadopython</li>
<li class="nopad"><img src="images/meteo.jpg" width="320" height="150" alt="" title="" /></a>resultadopython</li>
<li><img src="images/eco.png" width="320" height="150" alt="" title="" /></a>resultadopython<li>
</ul>
</div>
</div>
</div>
<div id="footer">
<p>© KARMA RODRIGUEZ 2018</p>
</div>
</body>
</html>
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
# -*- coding: cp1252 -*-
import serial
PUERTO = "COM25"
Baudios = 4800
#====Variables globales del programa a ser mostrados en pagina web===============
latitud = 0
longitud = 0
latitudDireccion =""
longitudDireccion=""
giro=0
hora=0
barco1Latitud=0
vecesCiclo = 500
Serial1 = serial.Serial(PUERTO,Baudios)
while vecesCiclo:
trama_in= Serial1.readline()
parceo_trama= trama_in.split(',')
if (parceo_trama[0][3:]=="GLL"):
latitud=parceo_trama[1]
latitudDireccion=parceo_trama[2]
longitud=parceo_trama[3]
longitudDireccion=parceo_trama[4][:1]
print "la latitud es "+ str(latitud) + " "+ str(latitudDireccion)
print "la longitud es "+ str(longitud) + " "+ str(longitudDireccion)
elif(parceo_trama[0][3:]=="HDT"):
giro = parceo_trama[1]
print "la direccion de giro es " + giro
elif(parceo_trama[0][3:]=="TTM"):
giro = parceo_trama[1]
print "la direccion de pos en latitud del barco 1 es " + barco1Latitud
else:
print "trama nueva"
print parceo_trama[0]
vecesCiclo= vecesCiclo -1
GENERADOR DE TRAMAS NMEAS (NO FUNCIONA si no se virtualiza el puerto COM con el programa VSPE)
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# -*- coding: utf-8 -*-
#!/usr/bin/python
import time
import serial
import re
import sys
Puerto = "COM25"
baudios = 4800
a = 153910
tiempo = 1
def cheksum(nmea):
ch= re.sub("(\n|\r\n)","", nmea[nmea.find("$")+1:nmea.find("*")])
csum=0
for c in ch:
csum^= ord(c)
d = hex(csum)
v = hex(csum).rstrip("L").lstrip("0x")
return v
def EnviarNmea(a):
b = a
d = cheksum(b)
f = str(d).zfill(2)
#g = '%0.2f' %a
e = a+str(f).upper()+'\r\n'
return e
serial_ = serial.Serial(Puerto,baudios)
while True:
"""
datos = ("$GPRMC,"+str(a)+","+str(latitud)+",S,"+str(longitud)+",W,"+velocidad+",47.6,181115,8.6,W,A*",
#"$GPRMB,A,0.03,R,,AAA,3138.1943,S,05604.7608,W,195.782,2.0,,V,A*2C",
#"$GPGGA,"+str(a)+","+str(latitud)+",S,"+str(longitud)+",W,1,04,2.4,-14.0,M,10.0,M,,*",
"$GPGGA,"+str(a)+","+str(latitud)+",S,"+str(longitud)+",W,1,04,2.4,-14,M,10.0,M,,*",
"$GPGLL,"+str(latitud)+",S,"+str(longitud)+",W,153910,A,A*",
"$GPHDT,"+rumbo+".00,T*",
#"$GPBOD,2.0,T,10.6,M,AAA,*33",
#"$GPBWC,"+str(a)+",3138.1943,S,05604.7608,W,2.0,T,10.6,M,195.782,N,AAA,A*",
#"$GPVTG,47.6,T,56.2,M,0.0,N,0.0,K*4A",
#"$GPXTE,A,A,0.03,R,N,A*1E",
#"$PGRME,9.7,M,11.7,M,15.2,M*21",
#"$PGRMZ,-46,f,2*05",
#"$PGRMM,WGS 84*06")
)
"""
datos = ("$GPGLL,3454.227,S,05612.982,W",
"$GPGGA,154950,3454.227,S,05612.982,W,1,4,2.5,5,M,10,M",
"$GPVTG,74.7,T,84.7,M,0.0,N,0.0,K",
"$GPZDA,154950,23,11,2016,0",
"$GPRMC,154950,A,3454.227,S,05612.982,W,0.0,74.7,231116,10,W*78",
"$GPGLL,3454.227,S,05612.982,W",
"$GPGGA,154951,3454.227,S,05612.982,W,1,4,2.5,5,M,10,M",
"$GPVTG,67.6,T,77.6,M,0.0,N,0.1,K",
"$GPZDA,154951,23,11,2016,0",
"$GPRMC,154951,A,3454.227,S,05612.982,W,0.0,67.6,231116,10,W*7A",
"$GPGLL,3454.227,S,05612.982,W",
"$GPGGA,154952,3454.227,S,05612.982,W,1,4,1.5,5,M,10,M",
"$GPVTG,66.8,T,76.8,M,0.0,N,0.1,K",
"$GPZDA,154952,23,11,2016,0",
"$GPRMC,154952,A,3454.227,S,05612.982,W,0.0,66.8,231116,10,W*76",
"$GPGLL,3454.227,S,05612.982,W",
"$GPGGA,154953,3454.227,S,05612.982,W,1,5,1.5,5,M,10,M",
"$GPVTG,69.3,T,79.3,M,0.0,N,0.1,K",
"$GPZDA,154953,23,11,2016,0",
"$GPRMC,154953,A,3454.227,S,05612.982,W,0.0,69.3,231116,10,W*73",
"$GPGLL,3454.227,S,05612.982,W",
"$GPGGA,154954,3454.227,S,05612.982,W,1,5,1.5,5,M,10,M",
"$GPVTG,61.0,T,71.0,M,0.0,N,0.1,K",
"$GPZDA,154954,23,11,2016,0",
"$GPRMC,154954,A,3454.227,S,05612.982,W,0.0,61.0,231116,10,W*7F",
"$GPGLL,3454.227,S,05612.982,W",
"$GPGGA,154955,3454.227,S,05612.982,W,1,5,1.5,5,M,10,M",
"$GPVTG,80.5,T,90.5,M,0.0,N,0.0,K",
"$GPZDA,154955,23,11,2016,0",
"$GPRMC,154955,A,3454.227,S,05612.982,W,0.0,80.5,231116,10,W*74",
"$GPGLL,3454.226,S,05612.981,W",
"$GPGGA,154956,3454.226,S,05612.981,W,1,5,1.5,5,M,10,M",
"$GPVTG,64.0,T,74.0,M,0.0,N,0.0,K",
"$GPZDA,154956,23,11,2016,0",
"$GPRMC,154956,A,3454.226,S,05612.981,W,0.0,64.0,231116,10,W*7A",
"$GPGLL,3454.226,S,05612.981,W",
"$GPHDT,45,T*"
)
#EnviarHDT(float(rumbo))
for i in datos:
trama = i
"""
if (trama[0:6] =="$GPRMC" or trama[0:6] =="$GPGGA" or trama[0:6] == "$GPBWC"):
envio_nuevo = EnviarNmea(i)
serial_.write(envio_nuevo)
print envio_nuevo
else :
serial_.write(i)
print i
"""
envio_nuevo = EnviarNmea(i)
serial_.write(envio_nuevo)
print envio_nuevo
time.sleep(tiempo)
a= a+ 2
if (a >193910):
a = 153910
time.sleep(1)
Valora esta pregunta


0