Automatic commit. Mon Aug 6 12:00:04 WST 2012
[matches/honours.git] / research / TCS / interface.py
index a650834..3816785 100755 (executable)
@@ -31,12 +31,12 @@ calibrate = {
 }
 
 # TODO: Adjust aqcuisition parameters here
-aquire = { "DAC_Sweep" : "0.0 + 250.0*int(step/1000)", # DAC Sweep value (t is in STEPS, not seconds!)
+aquire = { "DAC_Sweep" : "2000",#"0.0 + 100.0*int(step/120)", # 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
        "ADC_Ie" : 4, # ADC channel to read back Ie through
-       "DAC_Settle" : 2.0, # Time in seconds to wait for DAC to stabilise
+       "DAC_Settle" : 0.0, # Time in seconds to wait for DAC to stabilise
        #"response_wait" : 0.2, # Time to wait in seconds between sending data and reading back
        "start_date" : None
 }
@@ -64,11 +64,21 @@ parameters = {
        "Heating Current" : None,
        "Heating Voltage" : None,
        "Chamber Pressure" : None,
+       "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
+       "602 0.001 Battery" : None, 
+       "ADC Battery" : None,
+       "ADC Regulator" : None,
+       "Title" : None,
+       "Comment" : None,
+       "Data" : None,
+
 }
 
 def getTime():
@@ -139,34 +149,57 @@ def main():
 
        
        
+               
 
        # Experiment
        # TODO: Modify data to record here
        sweep = 1
-       #record_data([4, 5], getDate()+"/"+str(getTime())+".dat", None, None, "Measure emission&sample current varying with time, constant initial energy.")
        while True:
                os.system("mkdir -p " + getDate())
-               record_data([4, 5], getDate()+"/"+str(getTime())+".dat", None, 2300, "Sweep " + str(sweep) + " (started on " + aquire["start_date"]+")")
+               record_data([4, 5], getDate()+"/"+str(getTime())+".dat", None, 4000)
                sweep += 1
        
 
-def checkList():
+def checkList(output_file):
+       try:
+               input_file = open(getDate()+"/checklist", "r")
+       except:
+               input_file = None
+
+       if (input_file != None):
+               for line in input_file:
+                       k = line.split("=")
+                       item = k[0].strip(" \r\n")
+                       value = k[1].strip(" \r\n")
+                       if (item in parameters):
+                               parameters[item] = value
+       
+               print("Checklist found. Overwrite? [Y/n]")
+               response = sys.stdin.readline().strip(" \r\n")
+               if (response == "" or response == "y" or response == "Y"):
+                       input_file = None
        
-       output = open(getDate()+"/checklist", "w", 0)
+       if (input_file == None):
+               for item in parameters:
+                       sys.stdout.write("\""+str(item)+"\" = " + str(parameters[item]) + " New value?: ")
+                       response = sys.stdin.readline().strip("\r\n ")
+                       if (response != ""):
+                               parameters[item] = response
+                       sys.stdout.write("\n")
+                       
+
+       checklist = open(getDate()+"/checklist", "w", 0)
        for item in parameters:
-               sys.stdout.write("Enter value for \""+str(item)+"\": ")
-               parameters[item] = sys.stdin.readline().strip("\r\n ")
-               sys.stdout.write("\n")
-               output.write(str(parameters[item]) + "\n")
+               checklist.write("# "+str(item) + " = " + str(parameters[item]) + "\n")
+               output_file.write("# "+str(item) + " = " + str(parameters[item]) + "\n")
 
 
-def record_data(ADC_channels, output, pollTime = None, dac_max = None, comment = None):
+
+def record_data(ADC_channels, output, pollTime = None, dac_max = None):
+       
        if (output != None):
                output = [open(output, "w", 0), sys.stdout]
-               if (comment == None):
-                       print("Enter a comment for the experiment.")
-                       comment = sys.stdin.readline().strip("\r\n ")
-               output[0].write("# Comment: "+str(comment)+"\n")
+               #checkList(output[0])
        else:
                output = [sys.stdout]
 
@@ -191,9 +224,13 @@ def record_data(ADC_channels, output, pollTime = None, dac_max = None, comment =
                        nextDacValue = int(eval(aquire["DAC_Sweep"]))
                        if (nextDacValue != dacValue):
                                dacValue = nextDacValue
+                               if (dacValue < 0):
+                                       break
                                setDAC(dacValue)
                        step += 1
-               if (dac_max != None and dacValue == dac_max):
+               
+
+               if (dac_max != None and dacValue >= dac_max):
                        break
 
                measure_start = time.time()

UCC git Repository :: git.ucc.asn.au