View Single Post
int_ua's Avatar
Posts: 676 | Thanked: 1,067 times | Joined on Jul 2010 @ Kyiv, Ukraine
#1
Main python script, gps_date.py:
Code:
#!/usr/bin/python
import location
import gobject
from sys import stderr


def on_error(control, error, data):
    stderr.write("location error: %d... quitting" % error)
    data.quit()


def on_changed(device, data):
    if not device:
        return

    if device.fix:
        if device.fix[1] & location.GPS_DEVICE_TIME_SET:
            timestamp, accuracy = device.fix[2:4]
            if accuracy == 0:
                print "%d" % timestamp
                data.stop()


def on_stop(control, data):
    data.quit()


def start_location(data):
    data.start()
    return False


method = location.METHOD_USER_SELECTED

loop = gobject.MainLoop()
control = location.GPSDControl.get_default()
device = location.GPSDevice()
control.set_properties(preferred_method=method,
                       preferred_interval=location.INTERVAL_DEFAULT)

control.connect("error-verbose", on_error, loop)
device.connect("changed", on_changed, control)
control.connect("gpsd-stopped", on_stop, loop)

gobject.idle_add(start_location, control)

loop.run()
Bash wrapper, must be executed with su privileges:
Code:
#!/bin/bash
/usr/bin/gnu/date --set "@$(python gps_date.py)"
hwclock -r
hwclock -w
hwclock -r
 

The Following 7 Users Say Thank You to int_ua For This Useful Post: