X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=research%2FTCS%2Finterface.py;h=7553ab4dddc81319768f780a5031fb3491e05a12;hb=719c502e645607bc071ffbf41a455db899bef8a7;hp=9e39fd45ec097646784e0fe7a1018e6edfcdc970;hpb=88432baa0ee699e35b3f3ddfe4e680044c0d22ec;p=matches%2Fhonours.git diff --git a/research/TCS/interface.py b/research/TCS/interface.py index 9e39fd45..7553ab4d 100755 --- a/research/TCS/interface.py +++ b/research/TCS/interface.py @@ -35,8 +35,8 @@ calibrate = { } # TODO: Adjust aqcuisition parameters here -aquire = { "DAC_Sweep" : "0.0 + 10.0*int(step)", # DAC Sweep value (t is in STEPS, not seconds!) - "ADC_Averages" : 200, +aquire = { "DAC_Sweep" : "0.0 + 1.0*int(step)", # DAC Sweep value (t is in STEPS, not seconds!) + "ADC_Averages" : 100, #"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 @@ -48,7 +48,7 @@ aquire = { "DAC_Sweep" : "0.0 + 10.0*int(step)", # DAC Sweep value (t is in STEP #Setup the serial connection parameters ser = serial.Serial( - port="/dev/ttyUSB1", # Modify as needed (note: in linux need to run `sudo chmod a+rw /dev/ttyUSBX' to set permissions) + port="/dev/ttyUSB0", # 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, @@ -63,12 +63,14 @@ ser = serial.Serial( # Put things that are being changed a lot near the top of the list. parameters = odict.odict([ ("Chamber Pressure" , None), # Chamber pressure now automatically determined - ("Venault Voltage" , None), + ("Deflection Voltage" , None), ("Title" , None), ("Comment" , None), + ("602 Scale" , None), + ("Venault Voltage" , None), ("Accelerating Voltage" , None), ("Focus Voltage" , None), - ("Deflection Voltage" , None), + ("Initial Voltage" , None), ("Heating Current" , None), ("Heating Voltage (across filament)" , None), @@ -76,15 +78,15 @@ parameters = odict.odict([ #("610B Zero" , None), ("602 Zero" , None), #("610B Scale" , None), - ("602 Scale" , None), + ("602 0.1 Battery" , None), ("602 0.03 Battery" , None), ("602 0.01 Battery" , None), ("602 0.003 Battery" , None), ("602 0.001 Battery" , None), - ("ADC Regulator" , None), ("Sample", None), ("Sample Angle", None), + ("ADC Regulator" , None), ("Data" , None), ("Parameters last checked", None) ]) @@ -96,8 +98,15 @@ def getDate(): return str(datetime.datetime.now()).split(" ")[0] def getPressure(): - p = subprocess.Popen("./pressure/get_pressure.sh", stdout=subprocess.PIPE) - return float(p.stdout.readline().strip(" \r\n\t")) + + try: + p = subprocess.Popen("./pressure/get_pressure.sh", stdout=subprocess.PIPE) + #p = subprocess.Popen("./this_program_does_not_exist.sh", stdout=subprocess.PIPE) + #result = float("a") + result = float(p.stdout.readline().strip(" \r\n\t")) + except: + return 0.0 + return result # Used for when I press Control-C to stop things @@ -218,13 +227,25 @@ def main(): # Experiment # TODO: Modify data to record here sweep = 1 - for i in range(0,5): - #while True: + #for i in range(0,1): + while True: os.system("mkdir -p " + getDate()) - record_data([5], getDate()+"/"+str(getTime())+".dat", None, 4000) + record_data([5], getDate()+"/"+str(getTime())+".dat", None, 4001) + + try: + pass + #os.system("echo \"Sweep number " + str(sweep) + " completed\" | festival --tts") + except: + pass sweep += 1 #setDAC(500) + try: + os.system("echo \"Experiment complete\" | festival --tts") + except: + pass + + def checkList(): try: input_file = log_open(getDate()+"/checklist", "r") @@ -261,7 +282,7 @@ def checkList(): continue if item == "Chamber Pressure": #sys.stdout.write("\""+str(item)+"\" = " + str(parameters[item]) + " - get new pressure... ") - #parameters[item] = getPressure() + parameters[item] = getPressure() #sys.stdout.write(str(parameters[item]) + "\n") continue @@ -371,7 +392,10 @@ def record_data(ADC_channels, output, pollTime = None, dac_max = None): data[len(data)-1].append(adc[2]) out.write("\n") - + #gnuplot("set yrange [0:1023]") + #gnuplot("set xrange [0:4000]") + gnuplot("set xlabel \"DAC (counts)\"") + gnuplot("set ylabel \"Sample Current (ADC counts)\"") gnuplot.plot(Gnuplot.Data(data, title="t = "+str(measure_time), with_="lp", using="2:3")) for out in output: if out != sys.stdout: