#! /usr/bin/python
 
import os
from gps import *
from time import *
import time
import threading
import urllib2
import subprocess
from subprocess import call

print 'Setting System Time'
subprocess.call("sudo /home/pi/tripSensr/setTimeFromGPS.sh", shell=True)

gpsd = None
pingNet = None
 
os.system('clear')

def internetUp():
	try:
		response=urllib2.urlopen('http://google.com', timeout=1)
		#return True
		return "Up"
	except urllib2.URLError as err: pass
	#return False
	return "Down"
 
class pollGPSDevice(threading.Thread):
  def __init__(self):
    threading.Thread.__init__(self)
    global gpsd 
    gpsd = gps(mode=WATCH_ENABLE)
    self.current_value = None
    self.running = True
   
  def run(self):
    global gpsd
    while poll.running:
      gpsd.next()

if __name__ == '__main__':
  poll = pollGPSDevice()
  try:
    poll.start() 
    
    while True:

      os.system('clear')
      print
      print 'TripSensr Reading'
      print '----------------------------------------'
      print 'Latitude    ' , gpsd.fix.latitude
      print 'Longitude   ' , gpsd.fix.longitude
      print 'Time UTC    ' , gpsd.utc
      print 'Altitude (m)' , gpsd.fix.altitude
      #print 'eps         ' , gpsd.fix.eps
      #print 'epx         ' , gpsd.fix.epx
      #print 'epv         ' , gpsd.fix.epv
      #print 'ept         ' , gpsd.fix.ept
      print 'Speed (m/s) ' , gpsd.fix.speed
      print 'Climb       ' , gpsd.fix.climb
      print 'Track       ' , gpsd.fix.track
      #print 'Mode        ' , gpsd.fix.mode
      print '*****************************'
      print 'Humidity    ' , 0
      print 'Temperature ' , 0
      print 'N02         ' , 0
      print 'C02         ' , 0
      print '*****************************'
      print 'Last Photo: \t'
      print 'Internet Status: \t', internetUp()  
      print 'Logging State: \t', "Not Logging"
         
      #print
      #print 'sats        ' , gpsd.satellites
 
      time.sleep(5)
 
  except (KeyboardInterrupt, SystemExit):
    print "\nKilling Thread..."
    poll.running = False
    poll.join() 
  print "Done.\nExiting."