#Attenuators sweep test s21_testA=list() step_sizeA=list() s21_testB=list() step_sizeB=list() if metadata_param['att_sweep_test']=="run": print("Running attenuators sweep test ... \n") test_lib.set_vna(0, center_freq, freq_span, 0, vna) sgen.set_pos("direct") s21=vna.get_s21_data() #Select the S21 measurement in theNetwork Analyzer vna.send_command(b":SOUR1:POW:GPP "+format(pow_value).encode('utf-8')+b"\n") rfsw.sw1_pos(1) rfsw.sw2_pos(1) print("Running attenuators sweep test, Channel A ... \n") for att in range (int(att_sweep_low), int(att_sweep_high+1)*2, int(att_step*2)): rffe.set_attenuator_value(att/2) s21=test_lib.marker_value(0,center_freq,"s21", vna) s21=float(test_lib.marker_value(0,center_freq,"s21", vna)) s21_testA.append(round(s21,2)) fail=0 for i in range(0,len(s21_testA)-1): step_sizeA.append(round(s21_testA[i+1]-s21_testA[i],2)) if abs(float(step_sizeA[i]))>abs(att_step+att_step_tol) or abs(float(step_sizeA[i]))<abs(att_step-att_step_tol): fail=1 if fail==1: att_sweep_resultA="Attenuator Sweep Test Channel A --> FAILED" else: att_sweep_resultA="Attenuator Sweep Test Channel A --> Ok" #Data aquisition for channel B test_lib.set_vna(0, center_freq, freq_span, 0, vna) rfsw.sw1_pos(2)
attenuation_values = arange(0, 32, 0.5) for rffe_numb in range(33, 45, 1): RFFE_CONTROLLER_BOARD_IP = '10.2.117.' + str(rffe_numb) try: rffe = RFFEControllerBoard(RFFE_CONTROLLER_BOARD_IP) except (socket.error): sys.stdout.write( "Unable to reach the RF front-end controller board with the IP: " + RFFE_CONTROLLER_BOARD_IP + " through the network. " + "Skipping it...\n") continue #Attenuators test for att in attenuation_values: rffe.set_attenuator_value(att) read_att = rffe.get_attenuator_value() if not read_att == att: print("Board " + RFFE_CONTROLLER_BOARD_IP + " failed in attenuator test! " + "It should return att = " + str(att) + " but got att = " + read_att) print("Board " + RFFE_CONTROLLER_BOARD_IP + " passed attenuator test! ") #Temperature reading test tmp1 = rffe.get_temp1() tmp2 = rffe.get_temp2() print("Temperature -> 1: " + str(tmp1) + ", 2: " + str(tmp2)) #Test Reset #rffe.reset()
sw_sweep = [0,1,2,3] attenuation_values = arange(0,32,0.5) for rffe_numb in range(33,45,1): RFFE_CONTROLLER_BOARD_IP = '10.2.117.'+str(rffe_numb) try: rffe = RFFEControllerBoard(RFFE_CONTROLLER_BOARD_IP) except (socket.error): sys.stdout.write("Unable to reach the RF front-end controller board with the IP: "+ RFFE_CONTROLLER_BOARD_IP +" through the network. " + "Skipping it...\n") continue #Attenuators test for att in attenuation_values: rffe.set_attenuator_value(att) read_att = rffe.get_attenuator_value() if not read_att == att: print ("Board "+RFFE_CONTROLLER_BOARD_IP+" failed in attenuator test! "+ "It should return att = "+str(att)+" but got att = "+read_att) print ("Board "+RFFE_CONTROLLER_BOARD_IP+" passed attenuator test! ") #Temperature reading test tmp1 = rffe.get_temp1() tmp2 = rffe.get_temp2() print ("Temperature -> 1: "+str(tmp1)+", 2: "+str(tmp2)) #Test Reset #rffe.reset() #Close connection