X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=research%2FTCS%2Finterface.py;h=1b85fb1c8052c7f9e4d404e3c71f7be06c595180;hb=145d3c5838a0ad1f57fcdcdf2e496a32428b7859;hp=4090b4858eada08036cade204a8b5798bfb3989a;hpb=3a10dc9ac7b374fc9ca94bd256a1e1feee5af52d;p=matches%2Fhonours.git diff --git a/research/TCS/interface.py b/research/TCS/interface.py index 4090b485..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 = { @@ -32,7 +34,7 @@ calibrate = { } # TODO: Adjust aqcuisition parameters here -aquire = { "DAC_Sweep" : "0.0 + 50.0*int(step/60)", # DAC Sweep value (t is in STEPS, not seconds!) +aquire = { "DAC_Sweep" : "0.0 + 50.0*int(step)", # DAC Sweep value (t is in STEPS, not seconds!) "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 @@ -45,7 +47,7 @@ aquire = { "DAC_Sweep" : "0.0 + 50.0*int(step/60)", # DAC Sweep value (t is in S #Setup the serial connection parameters ser = serial.Serial( - port="/dev/ttyUSB0", # Modify as needed (note: in linux need to run `sudo chmod a+rw /dev/ttyUSBX' to set permissions) + port="/dev/ttyUSB1", # Modify as needed (note: in linux need to run `sudo chmod a+rw /dev/ttyUSBX' to set permissions) # Do not change the values below here (unless AVR butterfly is reprogrammed to use different values) baudrate=4800, @@ -207,7 +209,7 @@ def main(): sweep = 1 while True: os.system("mkdir -p " + getDate()) - record_data([4, 5], 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)