def ultrasonics_thread(self): ''' Repeatedly insert ultrasonics data into the database. ''' ultrasonic = Ultrasonic() ultrasonic_read_id = 0 valid = False while True: try: # TODO: Validity should not come from here, move validity checks # to validity module. ultra_data = ultrasonic.senseUltrasonic() validity = ultra_data['valid'] if any(validity): any_valid_data = True else: any_valid_data = False # TODO: Something doesn't feel right here! if not valid: valid = True up.update_ultrasonics_sensor_validity(self.poly, any_valid_data) up.update_ultrasonics_validity(self.poly, validity) # We need to put the data in, even if it is all 0's. # This gives a fail safe if a script was only relying on sensor data # and not using data validity ins.insert_ultrasonics_reading( self.poly, ultrasonic_read_id, ultra_data ) ultrasonic_read_id += 1 time.sleep(0.2) except Exception as e: # set to invalid if valid: valid = False up.update_ultrasonics_sensor_validity(self.poly, False) traceback.print_exc() print e
import sys from tiberius.control.sensors import Ultrasonic from tiberius.control.sensors import Compass import time if __name__ == "__main__": while(True): u = Ultrasonic() c = Compass() vals = u.senseUltrasonic() heading = c.headingNormalized() print str(vals) print str(heading) time.sleep(1)