La Taberna del Puerto Sergio Ponce
"Se navega por los astros, por la mar, por la tierra, por las gentes, por los sentimientos...Se navega." Altair
VHF: Canal 77   
Regresar   La Taberna del Puerto > Foro > Foros Náuticos > Foro Náutico Deportivo

Avisos

Responder
 
Herramientas Estilo
  #1  
Antiguo 10-07-2014, 18:16
Avatar de ...
...
Invitado
 
Mensajes: n/a
Predeterminado Re: Otra alternativa al ploter

Cita:
Originalmente publicado por sailoog.com Ver mensaje
Navigatrix tambien usa gpsd. Parece ser que gpsd consume bastante y de tenerlo activado seguramente entraria en conflicto con kplex. De hecho en las pruebas que hago siempre lo desactivo ya que es uno de los paquetes necesarios para instalar opencpn.

El segundo link podria ser una solucion ya que lo que hace es parsear una cadena de texto que contiene la linea $GPRMC que es la que contiene la hora. Se podría prescindir de gpsd y gpspipe y escuchar en 10110 hasta encontrar esa linea y usarla como dice la segunda parte del texto. Luego ejecutar ese script cada hora por ejemplo para tener la hora siempre actualizada... es una idea.
Ya lo tengo solucionado.

El truco es iniciar gpsd, sacar la hora, enviarsela al sistema, matar gpsd e iniciar kplex a continuacion.

Cuando vaya a casa os pondre el guion correspondiente modificado asi como la manera de hacer que kplex arranque cuando debe.

Muchas gracias Gillinas por los enlaces.
Citar y responder
  #2  
Antiguo 10-07-2014, 20:18
Avatar de ...
...
Invitado
 
Mensajes: n/a
Predeterminado Re: Otra alternativa al ploter

Cita:
Originalmente publicado por pinguino Ver mensaje

Cuando vaya a casa os pondre el guion correspondiente modificado asi como la manera de hacer que kplex arranque cuando debe.
El programilla en cuestión seria algo así como este:

#Primero reseteamos la fecha para asegurarnos de que la cambia correctamente
sudo date -s '01/01/2014 00:01'
sleep 1
#Apagamos los procesos que podrian causar conflictos
sudo pkill kplex
sudo pkill ntpd
sudo pkill gpsd
#iniciamos gpsd y lo ponemos a escuchar en el primer puerto Serie (suponiendo que el gps esta conectado a el).
sudo gpsd -b -n -D 2 /dev/ttyUSB0
sleep 2
#Extraemos la fecha y la hora del gps y la enviamos a la variable $GPSDATE
sudo GPSDATE=`gpspipe -w | head -10 | grep TPV | sed -r 's/.*"time":"([^"]*)".*/\1/' | head -1`
echo $GPSDATE
#Enviamos los datos de fecha y hora captados desde la variable $GPSDATE al sistema
sudo date -s "$GPSDATE"
#Apagamos gpsd pues no lo necesitamos y entra en conflicto con kplex
sudo pkill gpsd
sudo pkill gpspipe
#Reiniciamos kplex
nohup kplex


Parece que funciona aunque a veces no logra extraer la fecha y hora si no lo ejecutamos un par de veces. No se si será la solución definitiva. Tampoco se si me gusta tener que recurrir a gpsd solo para esta pequeñez.

Si supiera algo de programación de verdad de la buena tal vez seria capaz de extraer esos datos directamente de kplex.

Bueno, tal vez alguno pueda avanzar algo mas basándose en este código.
Citar y responder
  #3  
Antiguo 10-07-2014, 20:57
Avatar de sailoog.com
sailoog.com sailoog.com esta desconectado
Expulsado
 
Registrado: 24-05-2011
Mensajes: 1,237
Agradecimientos que ha otorgado: 413
Recibió 1,358 Agradecimientos en 485 Mensajes
Sexo:
Predeterminado Re: Otra alternativa al ploter

Buena idea. Entiendo que esto sería un ejecutable que el usuario ejecutaria a voluntad no?

Tal vez no funciona a la primera a veces porque el comando sleep lo que hace es intentar dar un tiempo para que el gps emita la linea con la hora y esos segundos pueden que sean insuficientes para asegurar.

Segun tengo entendido gpsd detecta automaticamente los gps conectados por usb. Se puede configurar con sudo dpkg-reconfigure gpsd y asi no habría que indicarselo en la llamada.

Al final no reiniciarias ntpd por si acaso?
Citar y responder
  #4  
Antiguo 10-07-2014, 21:27
Avatar de ...
...
Invitado
 
Mensajes: n/a
Predeterminado Re: Otra alternativa al ploter

Cita:
Originalmente publicado por sailoog.com Ver mensaje
Buena idea. Entiendo que esto sería un ejecutable que el usuario ejecutaria a voluntad no?

Tal vez no funciona a la primera a veces porque el comando sleep lo que hace es intentar dar un tiempo para que el gps emita la linea con la hora y esos segundos pueden que sean insuficientes para asegurar.

Segun tengo entendido gpsd detecta automaticamente los gps conectados por usb. Se puede configurar con sudo dpkg-reconfigure gpsd y asi no habría que indicarselo en la llamada.

Al final no reiniciarias ntpd por si acaso?
Bueno, sleep no hace esa tarea, simplemente espera hasta que el servicio se haya iniciado.

Es el head -10 el que espera a tener 10 lineas de datos gps para extraer la fecha y hora.

La verdad Es que gpsd no termina de funcionar del todo bien en la Raspberry, al menos con mi gps.

Ademas el problema es que a veces obtiene datos erróneos como latitud y longitud en lugar de la hora.

Y bueno... si funcionara el guión la idea seria eliminar también ntpd y ahorrarnos un servicio.
Por supuesto se le puede hacer arrancar de nuevo.

Editado por ... en 10-07-2014 a las 21:31.
Citar y responder
  #5  
Antiguo 10-07-2014, 21:40
Avatar de sailoog.com
sailoog.com sailoog.com esta desconectado
Expulsado
 
Registrado: 24-05-2011
Mensajes: 1,237
Agradecimientos que ha otorgado: 413
Recibió 1,358 Agradecimientos en 485 Mensajes
Sexo:
Predeterminado Re: Otra alternativa al ploter

joer hoy no doy ni una
pues seguiremos investigando la mejor manera...
Citar y responder
  #6  
Antiguo 11-07-2014, 00:34
Avatar de ...
...
Invitado
 
Mensajes: n/a
Predeterminado Re: Otra alternativa al ploter

Bueno, puede que el tema de fijar la hora en la Pi por el gps esté ya solucionado.

No hace falta gpsd.

Usaremos kplex que no incluye gasto de recursos adicionales.

Hay que crear un archivo de entrada-salida con el comando:

mkfifo /tmp/date

Despues hay que añadir a la configuración de kplex en el kplex.conf la siguiente entrada para que envie todos los datos al archivo de entrada-salida:

[file]
direction=out
filename=/tmp/date
persist=yes


Ahora que ya tenemos un sitio de donde extraer los datos NMEA procederemos a leerlos para obtener la hora. Esto lo haremos con el programa que podemos bajarnos de aquí:

https://mega.co.nz/#!1dRwHJqS!MLGJ9y...KhsJ70X3JNd7RY

Al descomprimirlo vereis que hay un binario y un ejecutable llamado hora.sh. Basta con lanzar ./hora.sh en la terminal y usando el binario y kplex se actualizará la hora usando el gps.

Desde luego esto se puede arreglar para que la Raspberry lo haga automáticamente en cada reinicio. Con el tiempo, si funciona bien, lo incluiré en SailPi.
Citar y responder
2 Cofrades agradecieron a este mensaje:
gilinas (11-07-2014), sailoog.com (11-07-2014)
Responder Ver todos los foros en uno

Sergio Ponce

Herramientas
Estilo

Reglas del foro
No puedes crear discusiones
No puedes responder a mensajes
No puedes editar tus adjuntos
No puedes editar tus mensajes

BB code está activado
Emoticonos está activado
El código [IMG] está activado
El código HTML está desactivado
Ir a


Todas las horas son GMT +1. La hora es 23:31.


Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
© La Taberna del Puerto