Here's an alternative that I'm putting into extensions.py.  Seems to do the 
trick, but could be a little more elegant...
python's re lib isn't as helpful as perl's about capturing values.

import re
import time
import subprocess

def is_ntp_up():
    ntpq_stat = sybprocess.call_check(["/usr/local/bin/ntpq", "-pn"], 
buffsize=1024, shell=False, stderr=subprocess.STDOUT)
    for line in ntpq_stat.split('\n'):
        if re.match("\*\d+\..*\s+\S+\s+\d+", line):
            fields = line.split()
            if int(fields[2]) > -1 and int(fields[2]) < 16:
                return 1
    return 0

wait_loop_limit = 60 # wait up to 5 minutes for ntp to sync
wait_loops      =  0
while is_ntp_up == 0:
    time.sleep(5)
    print "Waiting for NTP to come up"
    wait_loops += 1
    if wait_loops > wait_loop_limit:
        raise Exception(" No ntp sync, exiting now")

Chris

-- 
You received this message because you are subscribed to the Google Groups 
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to weewx-user+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to