Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl -w
- #use strict; #Esta linea es para hacer obligatorio la declaracion de variablesuse
- use Device::SerialPort; # Declaramos el Modulo para manejo de puertos
- my $serial = Device::SerialPort->new("/dev/ttyUSB0") || die "No se pudo abrir el puerto"; # configuracion del Puerto serial USB
- $serial->baudrate(4800); # Velocidad del Puerto o Razon de Bits(9600)
- $serial->read_char_time(0); # don't wait for each character
- $serial->read_const_time(1000); # 1 second per unfulfilled "read" call
- $serial->write_settings; #
- # Envio de Datos por el Puerto Serial
- my $data;
- while(1){
- my ($count,$saw)=$serial->read(1);
- if($saw ne '$'){ # $
- $data .=$saw;
- }else{
- #http://aprs.gids.nl/nmea/#rmc
- #eg2. $GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7,191194,020.3,E*68
- #225446 Time of fix 22:54:46 UTC
- #A Navigation receiver warning A = OK, V = warning
- #4916.45,N Latitude 49 deg. 16.45 min North
- #12311.12,W Longitude 123 deg. 11.12 min West
- #000.5 Speed over ground, Knots
- #054.7 Course Made Good, True
- #191194 Date of fix 19 November 1994
- #020.3,E Magnetic variation 20.3 deg East
- #*68 mandatory checksum
- my ($id,$hora,$estado,$lat,$c_lat,$lng,$c_lng,$velocidad,$curso,$fecha,$variacion_mag,$chsum) = split(",",$data);
- if($id eq 'GPRMC'){
- #print "ID " .$id."\t".$estado."\t".$hora."\t".$lat."\t".$c_lat."\t".$lng."\t".$c_lng."\n";
- #print $c_lat.",".$c_lng."\n";#S,W
- my $lat_map = substr($lat,2,length($lat)) / 60 + substr($lat,0,2);
- my $lng_map = substr($lng,3,length($lng)) / 60 + substr($lng,0,3) ;
- if($c_lat eq 'S'){
- $lat_map = $lat_map * -1;
- }
- if($c_lng eq 'W'){
- $lng_map = $lng_map * -1;
- }
- #print $lat_map.",".$lng_map."\n";
- print "http://maps.google.cl/maps?q=".$lat_map.",".$lng_map."\n";
- }
- $data = '';
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement