def SetGyroscopeData(dataGyroscope): global gyroSampleRate sensorCollector = Sensors(gyroSampleRate, magnSampleRate) rate = sensorCollector.GetAccelGyroFreqByValue(gyroSampleRate) while (True): localMiliseconds = int(str(datetime.now()).replace(".", ":")[:-3][-3:]) # Wait til a second pass for ctdr in range(1, int(rate + 1)): # Collect information from gyroscope while (not (int( (ctdr - 1) * (1000.0 / rate)) <= localMiliseconds < int(ctdr * (1000.0 / rate)))): try: localMiliseconds = int( str(datetime.now()).replace(".", ":")[:-3][-3:]) except: pass if (ctdr == 1): del dataGyroscope[:] dataGyroscope.append(sensorCollector.ReadGyroscope())