Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

proyecto final de carrera, lectura datos GPS

Buenas a todos, os explico mi problema. Estoy realizando un proyecto final de carrera que consiste en la lectura del puerto serie y posterior representación de los datos en la pantalla del pc. Concretamente los datos los recibo de un GPS.

El tema de la lectura de datos lo tengo tengo controlado, el problema me viene cuando quiero interpretar una de las sentencias que me envia el GPS.

La sentencia que me llega es:

$GPGSV, 4, 1, 13, 02, 02, 213, 5, 03, -3, 000, 2, 11, 00, 121, 14, 13, 172, 05 *65

donde cada campo es lo siguiente:

1=Número total de mensajes de este tipo
2=número de mensaje
3=número total de satélites vistos (este es importante para mi problema)
4=número PRN del satélite
5=Elevación en grados
6=ángulo Azimuth
7=SNR del satélite
8-11=Información sobre el segundo satélite
12-15=Info sobre tercer satélite
16-19=Info sobre cuanrto satélite
20=fin de mensaje

Bien la idea es, el gps cómo mucho puede ver 12 satélites de golpe, por lo tanto en mi panel frontal pondré 12 indicadores númericos del tipo "thermometer" para la representación del campo 7 de cada satélite.

Según el número de satélites que vea el gps la acción de seguir leyendo la sentencia para ir separando los datos de cada satélite lo haré con una estructura "for" donde "n" será el campo 3 de la sentencia (es decir el número de satélites vistos).

El problema me llega cuando leo los datos de cada satélite y quiero que, para el primer satélite el campo 7 me lo represente en el primer indicador "thermometer", para el segundo satélite me lo represente en el segundo indicador, y así sucesivamente hasta que haya leido todos los satélites.

A ver si así queda más claro:

i=0;
for (0, x=n, x++) --> así leemos tantas veces como sea necesario
{
leemos los datos del gps;
guardamos el campo 7 en "thermometer (i)"; --> Esto seria lo que no se como implementar
i= i+1;
}

Bueno no se si me he explicado bien, si alguien me puede ayudar le estaré muy agradecido.

Si no entendeis algo decidmelo e intentaré explicarme mejor la próxima vez.

Un saludo y muchas gracias de antemano.
0 kudos
Mensaje 1 de 2
3.905 Vistas

Hola Zelk eso puede ser fácil de implementa y el chiste es que los valores de los 7 termómetros los tengas en un solo arreglo.

y ya después de este arreglo los saques a cada termómetro.

Lo que haces es cada vez que recibiste la información limpias este arreglo de termómetro. Y después en base a el numero de satélite (lo usas como index para el insert into array, metes el valor de cuanto leíste del arreglo.

Te adjunto un ejemplo espero que te sirva

Saludos

 
Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 2 de 2
3.893 Vistas