def sendSignal(self): #send date, time and id #need to send to queue instead dateTime = datetime.datetime.utcnow() print dateTime self.__signal = Signal.initializeSignal(self.__ID, self.__Location, dateTime) self.setEmptyFlag(False)
def sendSignal(self, pinNumber): #note that a timedelta is needed due to the use of two sensors a = self.__timestamp + datetime.timedelta(milliseconds=500) if datetime.datetime.now() > a: print "signal callback from signal: " + str(pinNumber) #record the current time and create the string that will be stored into the database self.__timestamp = datetime.datetime.now() self.__signal = Signal.initializeSignal(self.__ID, self.__Location, self.__timestamp) #indicate that a signal was detected self.setEmptyFlag(False) #sets the sensor to the appropriate GPIO pin. The pins are set according to the colour of bin that the sensor is placed in. Each bin has two sensors and the pins have been optimized to make cable management easier. def setGPIOPin(self, ID): if ID is "black": self.__gpiopin1 = 16 self.__gpiopin2 = 18 return elif ID is "green": self.__gpiopin1 = 7 self.__gpiopin2 = 11 return elif ID is "blue": self.__gpiopin1 = 12 self.__gpiopin2 = 22 return elif ID is "grey": self.__gpiopin1 = 35 self.__gpiopin2 = 37 return else: return #sets the empty flag to the given empty variable, also used by Queue class def setEmptyFlag(self, empty): self.__isEmpty = empty #returns the empty flag, used by Queue class def isEmpty(self): return self.__isEmpty def getSignal(self): self.setEmptyFlag(True) return self.__signal
def test_parseSignal(): dateTime = datetime.datetime.utcnow() testSignal = Signal.initializeSignal("green","Nest",dateTime) expectedSignal = ("green,Nest," + str(dateTime)).split(Signal.delim) assert Signal.parseSignal(testSignal) == expectedSignal
def test_initializeSignal(): dateTime = datetime.datetime.utcnow() testSignal = Signal.initializeSignal("green","Nest",dateTime) assert testSignal == ("green,Nest," + str(dateTime))