HTML - Usar parseo de NMEA en mi pagina web

 
Vista:
sin imagen de perfil

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)

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>&copy; KARMA RODRIGUEZ &nbsp; &nbsp;2018</p>
</div>
</body>
</html>
CODIGO PYTHON PARA PARSEAR :
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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder