import u3 from time import sleep def noiselevel( a ): mean = sum(a) / len(a) sdiff = 0 for e in a: sdiff += (e-mean)**2 return ((sdiff/(len(a)-1))**0.5) d = u3.U3() d.configU3() d.configIO( FIOAnalog = 1 ) d.streamConfig( NumChannels = 1, PChannels = [ 0], NChannels = [ 31 ], Resolution = 3, SampleFrequency = 5000 ) def measure(): try: d.streamStart() for r in d.streamData(): if r is not None: if r['errors'] or r['numPackets'] != d.packetsPerRequest or r['missed']: print "error" else: res = noiselevel( r['AIN0'] ) break finally: d.streamStop() return r def writeData( r ): f = open( 'noise.txt', 'w' ) ch0 = r['AIN0'] for i in range(0, len(ch0)-1): f.write( '{0:.6f}\n'.format(ch0[i]) ) f.close() def setVoltage(): f = open( 'setVolts.txt', 'r' ) V = float(f.read()) d.writeRegister(5000,V) #writes the voltage found in setVolts.txt to DAC_0 for i in range(1,1000): writeData( measure() ) sleep(1) setVoltage()