X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=research%2FTCS%2Finterface.py;h=22e04a4b1627dd14a35578d402c6bf8dd2d9d7b3;hb=ced554da0fb721d190eed99618e2cd82130f0797;hp=c7253728cba7e1c5b95869ec021eec0a4c9176e9;hpb=924bb138e059f9bc25c41e50eb5e4a52a85977f0;p=matches%2Fhonours.git diff --git a/research/TCS/interface.py b/research/TCS/interface.py index c7253728..22e04a4b 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 i #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, @@ -64,11 +66,12 @@ parameters = odict.odict([ ("Venault Voltage" , None), ("Initial Voltage" , None), ("Heating Current" , None), - ("Heating Voltage" , None), + ("Heating Voltage (across filament)" , None), + ("Heating Voltage (across power supply)", None), ("Chamber Pressure" , None), - ("610B Zero" , None), + #("610B Zero" , None), ("602 Zero" , None), - ("610B Scale" , None), + #("610B Scale" , None), ("602 Scale" , None), ("602 0.1 Battery" , None), ("602 0.03 Battery" , None), @@ -205,11 +208,11 @@ def main(): # Experiment # TODO: Modify data to record here sweep = 1 - while True: + for i in range(0,1): 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 - + setDAC(500) def checkList(): try: @@ -260,8 +263,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 +284,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 +300,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 +336,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)