hola.lo primero es entender como sacar los datos del gps , que formato tienen y que protocolo utilizan.
los modulos gps utilizan como medio de transmision una usart que esta configurada de fabrica a una velocidad determinada.la cual podemos cambiar acudiendo al manual de usuario de dicho gps.
si queremos utilizar un receptor gps comercial.es decir de los que todo el mundo puede comprar en cualquier tienda de aparatos electronicos.
ahora mismo se estan vendiendo mucho los gps bluetooth.
un gps bluetooth es en si dos circuitos separados e interconectados por dos lineas de datos para la comunicacion entre el modulo gps y el modulo bluetooth.
tx(transmision) y rx(recepcion)
muchos de estos gps traen un conector intermedio mini usb para realizar la conexion directamente con el gps.dejando asi anulado el receptor bluetooth.
la conexion de este conector con el ordenador.se puede hacer por el puerto serie com1 ,com2 o el que tengamos habilitado para comunicarnos con el gps.
hay otros gps que son usb.estos basicamente lo que tienen internamente es el gps y un circuito con un chip para adaptar el usb al rs232.
es como si le pusieramos al conector mini usb,un adaptador usb-rs232.porque no tengamos ese puerto en el ordenador.
ahora voy a explicar el protocolo de comunicacion:
el chip del gps.sea el fabricante que sea.sirf,mtk u otro.utiliza un lenguaje propio de comunicacion para dar a conocer las coordenadas,altitud,hora,nº de satelites a la vista,y un monton de datos mas que estan especificados en el datasheet del fabricante.quizas lo mas eficaz sea utilizar el lenguaje propio del fabricante.pero esto haria que si diseñamos un programa para controlar un gps.este solo nos va a funcionar con este tipo de chip.y no nos servira para otro gps de un fabricante diferente.
por eso lo recomendable es utilizar el protocolo NMEA 0183.(National Marine Electronics Association) que es un medio a través del cual los instrumentos marítimos y también la mayoría de los receptores GPS pueden comunicarse los unos con los otros.
este protocolo contiene unos comandos y seguidos de estos estan los datos que nos interesan.
ahora voy a explicar como leer lo que esta transmitiendo el gps por su usart.
si el gps es bluetooth,lo vamos a emparejar con el portatil.para ello el portatil debe disponer de bluetooth o conectarle un adaptador bluetooth.
cuando el bluetooth este activo,allamos emparejado el gps con el ordenador.y tengamos conectados ambos,buscaremos por que puerto com estan conectados.
para esto tenemos que irnos a panel de control-sistema-hardware-administrador de dispositivos-puertos (COM y LPT).
seleccionaremos: puerto de comunicaciones bluetooth.aveces hay dos puertos COM para comunicaciones bluetooth.apuntaremos los dos.
acto seguido abriremos el hiperterminal de windows.y en conectar usando,pondremos uno de los puertos.y le daremos a aceptar.
a continuacion elegimos la velocidad de comunicacion.pero como esta velocidad no es la de la comunicacion entre el chip gps y el receptor interno bluetooth.
pues da igual la que pongamos.asi que pondremos 9600,que nos sobra para la actualizacion de datos que normalmente es de 1 segundo.a no ser que configuremos el gps para menos.pero ya entramos en otro tema.
y cuando le demos a conectar.nos aparecera en el hiperterminal algo asi:
$GPGSV,4,4,13,22,01,326,*4D
$GPRMC,213056.000,A,1234.5678,N,01234.5678,W,0.72,339.97,250209,,,A*7A
$GPVTG,339.97,T,,M,0.72,N,1.33,K,A*3E
$GPGGA,213057.000,1234.5678,N,01234.5678,W,1,6,1.80,235.2,M,49.4,M,,*41
$GPRMC,213057.000,A,1234.5678,N,01234.5678,W,0.69,337.08,250209,,,A*7F
$GPVTG,337.08,T,,M,0.69,N,1.27,K,A*39
$GPGGA,213058.000,1234.5678,N,01234.5678,W,1,6,1.80,236.1,M,49.4,M,,*49
$GPRMC,213058.000,A,1234.5678,N,01234.5678,W,0.76,335.26,250209,,,A*77
$GPVTG,335.26,T,,M,0.76,N,1.40,K,A*38
$GPGGA,213059.000,1234.5678,N,01234.5678,W,1,6,1.80,236.8,M,49.4,M,,*46
$GPRMC,213059.000,A,1234.5678,N,01234.5678,W,0.89,335.08,250209,,,A*7D
$GPVTG,335.08,T,,M,0.89,N,1.65,K,A*33
$GPGGA,213100.000,1234.5678,N,01234.5678,W,1,7,1.80,237.5,M,49.4,M,,*42
$GPRMC,213100.000,A,1234.5678,N,01234.5678,W,0.85,335.08,250209,,,A*78
$GPVTG,335.08,T,,M,0.85,N,1.57,K,A*3E
el gps lo que hace es enviar todos estos caracteres en formato ascii.tal y como los estais viendo.y todos enviados en serie,uno detras de otro.lo unico que separa una trama de otra es el "$".que es el caracter de principio de trama.
asi que en tu caso jonas 13.la trama que te hace falta gestionar es la
$GPGGA,213100.000,1234.5678,N,01234.5678,W,1,7,1.80,237.5,M,49.4,M,,*42ya que contiene la hora y las coordenadas. donde la hora es 213100.000 ->21h31min etc.y las coordenadas son 1234.5678,N, 01234.5678,W
que las he cambiado porque seria la posicion dode estoy ahora mismo.y aunque no pasaria nada por dejarla puesta.pero por si.no valla a tener
un admirador secreto como el de los beatles.
y perdon por mi humor negro.
el programa que debes hacer es un buscador de caracteres.este programa tiene que buscar el primer caracter "$" que aparezca,para luego buscar el "G","P","G","G","A" y si algun caracter no es el que sea igual a la secuencia que te acabo de explicar.entonces reiniciar a buscar otra vez por el "$".
asi de facil.ya solo queda meter los datos posteriores a este comando en la ram del pic.y desde aqui tratarlos para su visualizacion o grabacion.
aqui esta el enlace de un proyecto para visualizar las coordenadas.te recomiendo que le heches un vistazo.te puede ser de gran ayuda:
http://www.todopic.com.ar/foros/index.php?topic=17786.0