def re_measure(cycle=1): Temp = Ud = Ud_m = Id = 0. if ag.temperature() >= 50.0: print "Hi, temperature! Cool!" ag.stop_output("all") ag.state_output() while ag.temperature() >= 40.0: print "Current Temperature: %.2f, Delay: %d sec" % ( ag.temperature(),60 * MEASURE_DELAY ) print "Delay" for sec in xrange( 12 * MEASURE_DELAY ): print "%d, " % (sec*5), time.sleep(5) ag.start_output("all") for i in xrange(cycle): time.sleep( MEASURE_DELAY ) Temp += ag.temperature() Ud += ag.source_value(1,"volt") Ud_m += ag.measure(1,"volt") Id += ag.measure(1,"cur") cycle = float(cycle) Measurements["Temp"] = Temp / cycle Measurements["Ud"] = Ud / cycle Measurements["Ud_m"] = Ud_m / cycle Measurements["Id"] = Id / cycle
def re_measure(cycle=1): Temp = Uc = Uc_m = Ic = Ue = Ue_m = Ib = 0.0 if ag.temperature() >= 50.0: print "High temperature! Cooler!!!!" ag.stop_output("all") ag.state_output() while ag.temperature() >= 40.0: print "Current Temperature: %.2f, Delay: %d sec" % (ag.temperature(), 60 * DELAY_MEASURE) print "Delay" for sec in xrange(12 * DELAY_MEASURE): print "%d, " % (sec * 5), time.sleep(5) ag.start_output("all") for i in xrange(cycle): time.sleep(DELAY_MEASURE) Temp += ag.temperature() Uc += ag.source_value(2, "volt") Uc_m += ag.measure(2, "volt") Ic += ag.measure(2, "cur") Ue += ag.source_value(1, "volt") Ue_m += ag.measure(1, "volt") Ib += ag.measure(1, "cur") cycle = float(cycle) Measurements["Temp"] = Temp / cycle Measurements["Uc"] = Uc / cycle Measurements["Uc_m"] = Uc_m / cycle Measurements["Ic"] = Ic / cycle Measurements["Ue"] = Ue / cycle Measurements["Ue_m"] = Ue_m / cycle Measurements["Ib"] = Ib / cycle
def re_measure(cycle=1): Temp = Uc = Uc_m = Ic = Ue = Ib = Ib_m = 0. if ag.temperature() >= 50.0: ag.cooler(36.0) for i in xrange(cycle): time.sleep( DELAY_MEASURE ) Temp += ag.temperature() Uc += ag.source_value(2,"volt") Uc_m += ag.measure(2,"volt") Ic += ag.measure(2,"cur") Ue += ag.measure(1,"volt") Ib += ag.source_value(1,"c") Ib_m += ag.measure(1,"cur") cycle = float(cycle) Measurements["Temp"] = Temp / cycle Measurements["Uc"] = Uc / cycle Measurements["Uc_m"] = Uc_m / cycle Measurements["Ic"] = Ic / cycle Measurements["Ue"] = Ue / cycle Measurements["Ib_m"] = Ib_m / cycle Measurements["Ib"] = Ib / cycle
#chan_min = min(x.chan for x in conversions) chan_min = 101 chan_max = 126 print(chan_min) chan_lst = [i for i in range(chan_min, chan_max+1)] vheader = ["Channel Name", "Value"] try: while(True): print("______________________________________________") # Perform measurement m_str = agilent.measure(adc, chan_min, chan_max+1) m_lst = m_str.split(",") vtable = [] for i in chan_lst: conv_ind = [j for j, x in enumerate(conversions) if x.chan == i] if(len(conv_ind) == 1): this_conv = conversions[conv_ind[0]] #print(this_conv.str, this_conv.eq(float(m_lst[i - chan_min]))) vtable.append([this_conv.str, str('%.3f' % this_conv.eq(float(m_lst[i - chan_min]))) + " " + this_conv.units]) else :
# prepare the directory structure cur_dir = "Output/NoiseTest" if not os.path.exists(cur_dir): os.makedirs(cur_dir) timestr = time.strftime("%Y%m%d-%H%M%S") # Open the Agilent 34970A for voltage measurements voltmet = agilent.init_serial() # Open CSV file for writing output csv_fn = cur_dir + "/" + timestr + ".csv" csvfile = open(csv_fn, 'w', newline='') csv_writer = csv.writer(csvfile) #for j in range(0, num_meas): # Take intensity measurements while True: data = [] raw = agilent.measure(voltmet) rawlist = raw.split(",") for datum in rawlist: #print(datum) data.append(datum) csv_writer.writerow(data) # write next row of data to file csvfile.flush() csvfile.close() # Close CSV file input("Press Enter to quit...")
# Move the motor to the new position and wait for completion motor.position = start_pos + num * dx sleep(0.2) while (motor.status_in_motion_forward or motor.status_in_motion_reverse or motor.status_in_motion_jogging_forward or motor.status_in_motion_jogging_reverse or motor.status_in_motion_homing): sleep(0.1) #motor.print_state() # Take the intesity measurements data = [] data.append(str(motor.position)) for j in range(0, num_meas): # Take intensity measurements raw = agilent.measure(voltmet, 101, 101) rawlist = raw.split(",") for k in range(0, len(rawlist)): if k < 3: # photodiode measurement data.append(rawlist[k]) else: data.append(steinhart(rawlist[k])) csv_writer.writerow(data) # write next row of data to file csvfile.flush() csvfile.close() # Close CSV file [cont_loop, start_pos, end_pos, num_steps, num_meas, iteration] = eng.complete_align_single(csv_fn, iteration,
os.makedirs(exp_dir) # Open the Agilent 34970A for voltage measurements voltmet = agilent.init_serial() csv_fn = exp_dir + "/data.csv" csvfile = open(csv_fn, 'w', newline='') csv_writer = csv.writer(csvfile) start_time = time.time() dif = 0 while dif < duration: data = [] raw = agilent.measure(voltmet, 104, 114) rawlist = raw.split(",") for k in range(0, (len(rawlist) + 1)): if k == 0: # photodiode & Vin measurement data.append(rawlist[k]) elif k == 11: dif = time.time() - start_time data.append(dif) else: data.append(steinhart(float(rawlist[k]), float(rawlist[0]))) sleep(1.0) csv_writer.writerow(data) # write next row of data to file csvfile.flush() eng.temp_long(csv_fn, nargout=0)
# Make sure the motor isn't going to be damaged by the move if(motor.status_motor_current_limit_reached or motor.status_motion_error or motor.status_forward_hardware_limit_switch_active or motor.status_reverse_hardware_limit_switch_active): sys.exit("Z812B encountered an error") # Move the motor to the new position and wait for completion motor.position = start_pos + num * dx sleep(0.2) while (motor.status_in_motion_forward or motor.status_in_motion_reverse or motor.status_in_motion_jogging_forward or motor.status_in_motion_jogging_reverse or motor.status_in_motion_homing): sleep(0.1) #motor.print_state() # Take the intesity measurements data = [] data.append(str(motor.position)) for j in range(0, 1): # Take intensity measurements raw = agilent.measure(voltmet,102,102) rawlist = raw.split(",") for datum in rawlist: #print(datum) data.append(datum) csv_writer.writerow(data) # write next row of data to file csvfile.flush() csvfile.close() # Close CSV file [cont_loop, start_pos, end_pos, num_steps, num_meas, iteration] = eng.complete_align_single(csv_fn, iteration,grating_num,grating_type, nargout=6) cont_loop = int(cont_loop) num_steps = int(num_steps)