X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=research%2FTCS%2Finterface.py;h=1b85fb1c8052c7f9e4d404e3c71f7be06c595180;hb=145d3c5838a0ad1f57fcdcdf2e496a32428b7859;hp=eab484bc5ff21e97de268097d6465efb6184a9cb;hpb=33f0a3642c7194040b3f8e5e81828ff5b511e0cf;p=matches%2Fhonours.git diff --git a/research/TCS/interface.py b/research/TCS/interface.py index eab484bc..1b85fb1c 100755 --- a/research/TCS/interface.py +++ b/research/TCS/interface.py @@ -13,7 +13,9 @@ import serial import datetime import odict +import Gnuplot, Gnuplot.funcutils +gnuplot = Gnuplot.Gnuplot() # TODO: Insert variables for calibration purposes here. calibrate = { @@ -33,7 +35,7 @@ calibrate = { # TODO: Adjust aqcuisition parameters here aquire = { "DAC_Sweep" : "0.0 + 50.0*int(step)", # DAC Sweep value (t is in STEPS, not seconds!) - "ADC_Averages" : 2000, + "ADC_Averages" : 200, #"ADC_Vi" : 5, # ADC channel to read back Vi (set by DAC) through #"ADC_Is" : 4, # ADC channel to read back Is through #"ADC_Ie" : 4, # ADC channel to read back Ie through @@ -207,7 +209,7 @@ def main(): sweep = 1 while True: os.system("mkdir -p " + getDate()) - record_data([4, 5, 0], getDate()+"/"+str(getTime())+".dat", None, 4000) + record_data([5], getDate()+"/"+str(getTime())+".dat", None, 4000) sweep += 1 @@ -260,8 +262,11 @@ def checkList(): def record_data(ADC_channels, output, pollTime = None, dac_max = None): if (output != None): + gnuplot("set title \""+str(output)+"\"") output = [log_open(output, "w"), sys.stdout] + else: + gnuplot("set title \"\"") output = [sys.stdout] for field in aquire: @@ -278,6 +283,10 @@ def record_data(ADC_channels, output, pollTime = None, dac_max = None): start_time = time.time() + gnuplot("set xlabel \"DAC (counts)\"") + gnuplot("set ylabel \"ADC (counts)\"") + + for out in output: out.write("\n") out.write("# Experiment " + str(datetime.datetime.now()) + "\n") @@ -290,9 +299,11 @@ def record_data(ADC_channels, output, pollTime = None, dac_max = None): out.write("\n") step = 0 + data = [] # Keep track of data for dynamic plotting dacValue = int(eval(aquire["DAC_Sweep"])) if (setDAC(dacValue) == False): setDAC(dacValue) + time.sleep(2.0) while (pollTime == None or time.time() < start_time + pollTime): if (aquire["DAC_Sweep"] != None): nextDacValue = int(eval(aquire["DAC_Sweep"])) @@ -324,13 +335,19 @@ def record_data(ADC_channels, output, pollTime = None, dac_max = None): end_time = time.time() for out in output: - out.write(str((measure_start + (end_time - measure_start)/2.0 - start_time))) + measure_time = measure_start + (end_time - measure_start)/2.0 - start_time + out.write(str(measure_time)) out.write("\t"+str(dacValue)) + data.append([measure_time, dacValue]) + for adc in raw_adc: out.write("\t" + str(adc[1]) + "\t" + str(adc[2])) + data[len(data)-1].append(adc[1]) + data[len(data)-1].append(adc[2]) out.write("\n") - + + gnuplot.plot(Gnuplot.Data(data, title="t = "+str(measure_time), with_="lp", using="2:3")) for out in output: if out != sys.stdout: log_close(out)