Ich entwickle ein Programm, um ein Ereignis zu erzeugen, wann immer eine Geschwindigkeit auf einem GPS erreicht wird. Der Code, den ich zur Zeit zu ändern versuchen unter:gps events und wenn statements
from gps import *
import time
import threading
import math
class GpsController(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.gpsd = gps(mode=WATCH_ENABLE) #starting the stream of info
self.running = False
def run(self):
self.running = True
while self.running:
# grab EACH set of gpsd info to clear the buffer
self.gpsd.next()
def stopController(self):
self.running = False
@property
def fix(self):
return self.gpsd.fix
@property
def utc(self):
return self.gpsd.utc
@property
def satellites(self):
return self.gpsd.satellites
if __name__ == '__main__':
# create the controller
gpsc = GpsController()
try:
# start controller
gpsc.start()
while True:
#print "latitude ", gpsc.fix.laif
#print "longitude ", gpsc.fix.longitude
#print "time utc ", gpsc.utc, " + ", gpsc.fix.time
#print "altitude (m)", gpsc.fix.altitude
#print "eps ", gpsc.fix.eps
#print "epx ", gpsc.fix.epx
#print "epv ", gpsc.fix.epv
#print "ept ", gpsc.gpsd.fix.ept
print "speed (m/s) ", gpsc.fix.speed
#print "climb ", gpsc.fix.climb
#print "track ", gpsc.fix.track
#print "mode ", gpsc.fix.mode
#print "sats ", gpsc.satellites
time.sleep(1)
#Error
#except:
# print "Unexpected error:", sys.exc_info()[0]
# raise
#Ctrl C
except KeyboardInterrupt:
print "User cancelled"
finally:
print "Stopping gps controller"
gpsc.stopController()
#wait for the thread to finish
gpsc.join()
print "Done"
ich eine „if“ Anweisung, um das Programm hinzuzufügen bin zu wollen, zunächst mit der Geschwindigkeit aussieht übertragen werden und den Druck oder die Aktivierung ein Ereignisses, wenn die Geschwindigkeit einen erreicht bestimmte Nummer.
Ich bin mir nicht sicher, wo und wann ich den "if" Code hinzufügen soll.
Ich habe vergessen zu erwähnen, dass es eine kontinuierliche Schleife sein würde, die die Geschwindigkeit betrachtet und das Ereignis auslöst. Ich werde es testen, indem ich in der Zwischenzeit eine blinkende LED auslösen lasse. Danke für Ihre Hilfe! – Byrne