Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from twisted.application import internet, service
- from twisted.web import server
- from twisted.internet import ssl
- from twisted.internet import reactor
- from twisted.internet.serialport import SerialPort
- from twisted.protocols.basic import LineReceiver
- import operator
- from twisted.python.compat import reduce
- import traceback
- import string
- import time
- import jsonrpclib
- import json
- from math import *
- lastgpsloc = 'empty'
- lastrpt = time.time()
- class gpsReceiver(LineReceiver):
- def __init__(self):
- print 'debug : gpsreceiver init'
- def gpsValid(self, line):
- if not line.startswith('$GPRMC'):
- return False
- strmessage, checksum = line[1:].strip().split('*')
- message = strmessage.split(',')
- checksum, calculated_checksum = int(checksum, 16), reduce(operator.xor, map(ord, strmessage))
- if checksum != calculated_checksum:
- return False
- return True
- def lineReceived(self, line):
- print 'GPS RECEIVED !'
- global lastrpt
- global lastgpsloc
- if self.gpsValid(line) :
- lastgpsloc = line
- print lastgpsloc
- if time.time() - lastrpt >= 1 :
- print 'TIME TO REPORT'
- else :
- print 'Invalid GPS -> %s' % (line)
- class SerialService(service.Service):
- def startService(self):
- print 'debug : Serial Service start'
- try:
- self.gpsport = gpsport
- except :
- print 'GPSport failed'
- #Create Application
- application = service.Application("Serial MultiService Example")
- #Seting Serial
- gpsport = SerialPort(gpsReceiver(), '/dev/pts/4', reactor,baudrate=4800)
- #Create serialService
- #as told at http://www.mentby.com/lucas-taylor/serialport-protocol-as-a-service.html
- serialService = SerialService()
- #Creating Multi Service
- multiService = service.MultiService()
- #Add our Services to multiservice
- serialService.setServiceParent(multiService)
- #Set created application to be serviceparent of multiservice
- multiService.setServiceParent(application)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement