![]() |
|
|
|
| VHF: Canal 77 |    | ![]() |
![]() |
![]() |
![]() |
![]() |
|
|
|
#1
|
||||
|
||||
|
Cita:
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. |
|
#2
|
||||
|
||||
|
Cita:
#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 . |
|
#3
|
||||
|
||||
|
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? |
|
#4
|
||||
|
||||
|
Cita:
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. |
|
#5
|
||||
|
||||
|
joer hoy no doy ni una
![]() pues seguiremos investigando la mejor manera... |
|
#6
|
||||
|
||||
|
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. |
| 2 Cofrades agradecieron a este mensaje: | ||
gilinas (11-07-2014), sailoog.com (11-07-2014) | ||
![]() |
Ver todos los foros en uno |
| Herramientas | |
| Estilo | |
|
|