Ejemplo n.º 1
0
    def __init__(self):
        #GPIO Setup
        GPIO.setmode(GPIO.BOARD)
        GPIO.setup(12,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
        GPIO.setup(22,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)
        
        GPIO.add_event_detect(12, GPIO.RISING, callback=self.buttonEvent, bouncetime=1000)
        GPIO.add_event_detect(22, GPIO.RISING, callback=self.saveEvent, bouncetime=1000)
        
        #Sensor Instantiation
        self.accSensor   = accel.Accelerometer()
        self.magSensor   = mag.Magnetometer()
        self.gyroSensor  = gyro.Gyroscope()
        self.pressSensor = press.Pressure()
        self.tempSensor  = temp.Temperature()

        #Calibrate
        self.cal = process_bmp.bmp_processor()
        self.cal.calibrate(self.pressSensor.press)

        #Create the databases
        self.db = dbConnect.connect()
        dbLink.createRawTable(self.db)
        dbLink.createProcessedTable(self.db)
        dbLink.createSaveTable(self.db)
        dbLink.createDateTime(self.db)
    
        #Processor
        self.processor = process.Processor(self.db, self.cal)
        self.last_index = 0
        
        #Set the GPS poller
        self.gpsP = gpsPoll.GpsPoller()

        self.common_delay_time = 0.5
        
        #Initialize the display
        self.edisplay = edisplay.EDisplay()
        
        #Initialize sensor vars
        self.acc = 0
        self.gyro = 0
        self.temp = 0
        self.press = 0
        self.mag = 0
        
        #Initialize gps vars
        self.date = 0
        self.time = 0
        self.lat = 0
        self.lon = 0
        self.speed = 0
        self.alt = 0
        
        self.key_in = 0
        
        self.disp_data = [0,0,0,0,0,0,0,0,0,0,0]
        self.saving_text = "no"
        
        
        self.start_data = True
        self.saving_flag = "no"
        #Initialize saving vars
        self.saving = False
        self.saveStartTime = 0
        self.saveStartDate = 0
        self.saveEndTime = 0
        self.saveEndDate = 0
Ejemplo n.º 2
0
        print "End processing"
        
        
        ret = [ ret_date, ret_time, ret_lat, ret_lon, ret_alt, ret_sp, ret_temp, ret_press, ret_head, ret_gy, ret_ac, count ]
        self.prev_data = ret
        return ret
        
    def err_process(self,   data):
        length = len(data)
        if length >= 1:
            return data[length-1]
        else:
            return "---"
            
    def better_process(self, data):
        length = len(data)
        a = 0.8
        datum = float(data[0])
        if length >= 3:
            for i in range(1, length):
                datum = a*data[i-1] + (1 - a)*datum
        return float(datum)
            
        
if __name__ == '__main__':
    
    db = dbConnect.connect()
    dbLink.createRawTable(db)
    p = Processor(db)
    p.process(0)