def receiveCommand(ser,latitude,longitude):
	logger.debug("__Init__ receiving PCN command function")
	i = 0
	while True:
		try:
			#print 'receive:'
			data = ser.read(300)
			if(len(data)>0):
				commandAnalyzer = CommandAnalyzer(data)
				if (commandAnalyzer.getCommandName() == 'gcounters'):
					commandAnalyzer.printCommandInfo()
					#busClient.service.insertpassengerMAC('unishuttle04', latitude,longitude,str(datetime.datetime.now()),1,2)
					passengerOn = commandAnalyzer.getNumberPassengerOn()
					passengerOff = commandAnalyzer.getNumberPassengerOff()
					if(passengerOn !=0 or passengerOff !=0):
                                                tmpSt = "insert into passengerMAC(host,source,destination,datetime,on,off,lat,lon) values (%s, %s, %s, %s, %s, %s, %s, %s)" % (hostname,commandAnalyzer.getSource(),commandAnalyzer.getDestination(), str(datetime.datetime.now()), str(passengerOn), str(passengerOff), str(globalLatitude), str(globalLongitude))
						print tmpSt
						logger.debug("__PCN receive data__: %s", tmpSt)
						busClient.service.insertpassengerMAC(hostname, globalLongitude, globalLatitude,str(datetime.datetime.now()),1,str(passengerOn))
						busClient.service.insertpassengerMAC(hostname, globalLongitude, globalLatitude,str(datetime.datetime.now()),0,str(passengerOff))
						print 'send reset:',ser.write(PCNCommand.RESET)
		except:
			print 'receive data from pcn failed'
			logger.debug("__PCN receive data__: receive data from pcn failed or cannot send data to server")

		sleep(0.5)
    def add(self, command):
        commandAnalyzer = CommandAnalyzer(command)
        commandName = commandAnalyzer.getCommandName()

        if (commandName == 'gcounters'):
            commandAnalyzer.printCommandInfo()
            passengerOn = commandAnalyzer.getNumberPassengerOn()
            passengerOff = commandAnalyzer.getNumberPassengerOff()

            if (passengerOn != 0 or passengerOff != 0):
                stopActivity = StopActivity()
                stopActivity.setSource(commandAnalyzer.getSource())
                stopActivity.setDestination(commandAnalyzer.getDestination())
                stopActivity.setStatus('')
                stopActivity.setDateTime(str(datetime.datetime.now()))
                stopActivity.setPassengerOn(passengerOn)
                stopActivity.setPassengerOff(passengerOff)
                self.stopActivities.append(stopActivity)

                self.length += 1
예제 #3
0
def receiveCommand(ser,latitude,longitude):
	i = 0
	while True:
		try:
			#print 'receive:'
			data = ser.read(300)
			if(len(data)>0):
				commandAnalyzer = CommandAnalyzer(data)
				if (commandAnalyzer.getCommandName() == 'gcounters'):
					commandAnalyzer.printCommandInfo()
					#busClient.service.insertpassengerMAC('unishuttle04', latitude,longitude,str(datetime.datetime.now()),1,2)
					passengerOn = commandAnalyzer.getNumberPassengerOn()
					passengerOff = commandAnalyzer.getNumberPassengerOff()
					if(passengerOn !=0 or passengerOff !=0):
						print 'insert values(source,destination,datetime,on,off,lat,lon)',commandAnalyzer.getSource(),commandAnalyzer.getDestination(), str(datetime.datetime.now()), passengerOn, passengerOff, latitude, longitude
						logger.debug("__PCN receive data__: normal receive data")
						#busClient.service.insertpassengerMAC('unishuttle04', latitude,longitude,str(datetime.datetime.now()),1,passengerOn)
						#busClient.service.insertpassengerMAC('unishuttle04', latitude,longitude,str(datetime.datetime.now()),0,passengerOff)
						print 'send reset:',ser.write(PCNCommand.RESET)
		except:
			print 'receive data from pcn failed'
			logger.debug("__PCN receive data__: receive data from pcn failed")

		sleep(1)
from sys import getsizeof
from binascii import hexlify

from pcncommand import PCNCommand
from commandanalyzer import CommandAnalyzer
from stopactivity import StopActivities
from csvpassenger import CSVPassenger

ser = 'Serial port'

command = PCNCommand.GET_COUNTERS
#pcnCommand = PCNCommand()
#command = pcnCommand.getCommand('gcounters')

commandAnalyzer = CommandAnalyzer(command)
commandAnalyzer.printCommandInfo()

stopActivities = StopActivities()


#print 'len',len(stopActivities.getStopActivities())
#=====================================================
#send command to pcn
#=====================================================
def sendCommand(ser):
    while True:
        #print 'send:',ser
        sleep(0.5)


#=====================================================