Exemple #1
0
class PowTest(TestCase):
    def __init__(self):
        TestCase.__init__(self, "Tune Power Test")
        self.load = LoadControl(Config.LOAD_DEVICE)
        self.tran = FrequencyControl(Config.FREQ_DEVICE)
        self.tune = TunerControl(Config.TUNE_DEVICE)

    def test(self):
        "Test the transceiver at various frequency-load combinations"
        results = csv.writer(file(Config.TuneTimeTestoutput, "wb"))
        results.writerow(["Frequency", "Time", "Status"])
        #load input data
        infile = file(Config.TABLE_J, "r")
        tableJ = [line for line in csv.reader(infile)][Config.J_HEADER_ROWS:]
        infile.close()
        for row in tableJ:
            frequency = float(row[Config.J_FREQ_COL])
            print("Setting to %g MHz" % frequency)
            self.tran.setFrequency(frequency * M2Hz)
            for offset in range(0, Config.J_LOADS_PER_VSR * Config.J_VSRS, 3):
                # Set load
                self.load.setLCR(float(row[Config.J_L_COL + offset]),
                                 float(row[Config.J_C_COL + offset]),
                                 float(row[Config.J_R_COL + offset]))
                print("Setting load: L: %g C: %g R: %g" %
                      (float(row[Config.J_L_COL + offset]),
                       float(row[Config.J_C_COL + offset]),
                       float(row[Config.J_R_COL + offset])))
            #test for correct tuning
            Started = time.time()
            self.tune.start()
            self.tune.waitForDone()
            Finished = time.time()
            #record results
            if self.tune.getFrequency() == self.freq.readFrequency():
                result = [frequency, Finished - Started, "Pass"]
            else:
                result = [frequency, Finished - Started, "Fail"]
            print result
            results.writerow(result)
class PowTest(TestCase):
        def __init__(self):
            TestCase.__init__(self, "Tune Power Test")
            self.load = LoadControl(Config.LOAD_DEVICE)
            self.tran = FrequencyControl(Config.FREQ_DEVICE)
            self.tune = TunerControl(Config.TUNE_DEVICE)
            
        def test(self):
                "Test the transceiver at various frequency-load combinations"
                results = csv.writer(file(Config.TuneTimeTestoutput,"wb"))
                results.writerow(["Frequency","Time","Status"])
                #load input data
                infile = file(Config.TABLE_J, "r")
                tableJ = [line for line in csv.reader(infile)][Config.J_HEADER_ROWS:]
                infile.close()
                for row in tableJ:
                  frequency = float(row[Config.J_FREQ_COL])
                  print("Setting to %g MHz" % frequency)
                  self.tran.setFrequency(frequency*M2Hz)
                  for offset in range(0,Config.J_LOADS_PER_VSR*Config.J_VSRS,3):
                      # Set load
                      self.load.setLCR(float(row[Config.J_L_COL+offset]),
                       float(row[Config.J_C_COL+offset]),
                       float(row[Config.J_R_COL+offset]))
                      print("Setting load: L: %g C: %g R: %g" %
                      (float(row[Config.J_L_COL+offset]),
                       float(row[Config.J_C_COL+offset]),
                       float(row[Config.J_R_COL+offset])))
                  #test for correct tuning
                  Started=time.time()
                  self.tune.start()
                  self.tune.waitForDone()
                  Finished=time.time()
                  #record results
                  if self.tune.getFrequency() == self.freq.readFrequency():
                      result= [frequency,Finished-Started,"Pass"]
                  else:
                      result= [frequency,Finished-Started,"Fail"]
                  print result
                  results.writerow(result)
class TuneTest(TestCase):
    
    def __init__(self):
        TestCase.__init__(self, "VSWR Tune Test")
        #moved this into the test
        #self.loadSetter = LoadControl(Config.LOAD_DEVICE)
        self.freq = FrequencyControl(Config.FREQ_DEVICE)
    
    def test(self):
        currentVSWR = 0
        tableD = None # This is a 2 dimensional table of all the frequencies that will be tested in the procedure
        testResult = True
        # Load frequencies to test
        try:
            inFile = file(Config.TABLE_J, "r")
            tableJ = [line for line in csv.reader(inFile)][Config.J_HEADER_ROWS:]
            inFile.close()
        except:
            print("Could not load frequencies to test (%s)" % Config.TABLE_J)
            return False
            
        #open output
        results = csv.writer(file(Config.TuneTestoutput,"wb"))
        results.writerow(["Frequency [MHz]","Inductor","Capacitor","Resistor","Final VSWR","Status","Raido SWR meter value:"])
        
        # Cycle through frequencies
        for line in tableJ:
            curTestResult = False
            calcVSWR = 0
            roe = 0
            roeValues = None
            vswrFile = None
            
            frequency = float(line[Config.J_FREQ_COL])
            #set freq
            self.freq.setFrequency(frequency*MHz)
            self.loadSetter = LoadControl(Config.LOAD_DEVICE)
            for offset in range(0,Config.J_LOADS_PER_VSR*Config.J_VSRS,3):        
                # Set load
                L = float(line[Config.J_L_COL+offset])
                C = float(line[Config.J_C_COL+offset])
                R = float(line[Config.J_R_COL+offset])
                print("Setting load: L: %g C: %g R: %g" % (L,C,R))
                self.loadSetter.setLCR(L,C,R)
                              
                # Prompt user to run the network analyzer and save to location
                while(vswrFile == None):                    
                    print("Please wait until tuned")
                    print("Input raido SWR meter value:"),
                    notes = raw_input()
                    print("Press enter to set raio to recieve")
                    self.wait()
                    self.freq.setRx()
                    print("Please set the network analyzer to  %s MHz"
                     % line[Config.J_FREQ_COL])
                    print("Please save the CSV data from the analyzer to %s"
                     % Config.NET_RES_FILE)
                    self.wait()
                    try:
                        vswrFile = file(Config.NET_RES_FILE, "r")
                    except:
                        print("Could not open input file") 
                print("Reconnect the coupler to the transmitter then press enter")
                self.wait()
                self.freq.setTx()

                # Load the contents of the file
                roeValues = [newLine for newLine in csv.reader(vswrFile)][Config.NET_RES_HEADER_ROWS:]
                vswrFile.close()
                vswrFile = None
                # Calculate average roe 
                roeValues.pop()
                for roeLine in roeValues:
                    try:
                        roe += Utils.tooComplex(roeLine[Config.NET_RES_ROE_COL])
                    except IndexError:
                        print "Wiered input:",roeLine
                roe /= len(roeValues)
            
                # Calculate VSWR and compare to predicted
                calcVSWR = Utils.Vswr(roe)
                curTestResult = True if calcVSWR < 1.6 else False
                
                # Print results and set overall test to false if failed
                if(curTestResult):
                    print("Pass for frequency %s" % (frequency))
                    results.writerow([float(line[Config.J_FREQ_COL]),L,C,R,
                    calcVSWR,"Pass",notes]) 
                    testResult = True
                else:
                    print("Fail for frequency %s" % (frequency))
                    results.writerow([float(line[Config.J_FREQ_COL]),L,C,R,
                    calcVSWR,"Fail",notes])
                    testResult = False
            del self.loadSetter
            if(not self.prompt("Continue?")):
                return testResult
Exemple #4
0
class TuneTest(TestCase):
    def __init__(self):
        TestCase.__init__(self, "VSWR Tune Test")
        #moved this into the test
        #self.loadSetter = LoadControl(Config.LOAD_DEVICE)
        self.freq = FrequencyControl(Config.FREQ_DEVICE)

    def test(self):
        currentVSWR = 0
        tableD = None  # This is a 2 dimensional table of all the frequencies that will be tested in the procedure
        testResult = True
        # Load frequencies to test
        try:
            inFile = file(Config.TABLE_J, "r")
            tableJ = [line
                      for line in csv.reader(inFile)][Config.J_HEADER_ROWS:]
            inFile.close()
        except:
            print("Could not load frequencies to test (%s)" % Config.TABLE_J)
            return False

        #open output
        results = csv.writer(file(Config.TuneTestoutput, "wb"))
        results.writerow([
            "Frequency [MHz]", "Inductor", "Capacitor", "Resistor",
            "Final VSWR", "Status", "Raido SWR meter value:"
        ])

        # Cycle through frequencies
        for line in tableJ:
            curTestResult = False
            calcVSWR = 0
            roe = 0
            roeValues = None
            vswrFile = None

            frequency = float(line[Config.J_FREQ_COL])
            #set freq
            self.freq.setFrequency(frequency * MHz)
            self.loadSetter = LoadControl(Config.LOAD_DEVICE)
            for offset in range(0, Config.J_LOADS_PER_VSR * Config.J_VSRS, 3):
                # Set load
                L = float(line[Config.J_L_COL + offset])
                C = float(line[Config.J_C_COL + offset])
                R = float(line[Config.J_R_COL + offset])
                print("Setting load: L: %g C: %g R: %g" % (L, C, R))
                self.loadSetter.setLCR(L, C, R)

                # Prompt user to run the network analyzer and save to location
                while (vswrFile == None):
                    print("Please wait until tuned")
                    print("Input raido SWR meter value:"),
                    notes = raw_input()
                    print("Press enter to set raio to recieve")
                    self.wait()
                    self.freq.setRx()
                    print("Please set the network analyzer to  %s MHz" %
                          line[Config.J_FREQ_COL])
                    print("Please save the CSV data from the analyzer to %s" %
                          Config.NET_RES_FILE)
                    self.wait()
                    try:
                        vswrFile = file(Config.NET_RES_FILE, "r")
                    except:
                        print("Could not open input file")
                print(
                    "Reconnect the coupler to the transmitter then press enter"
                )
                self.wait()
                self.freq.setTx()

                # Load the contents of the file
                roeValues = [newLine for newLine in csv.reader(vswrFile)
                             ][Config.NET_RES_HEADER_ROWS:]
                vswrFile.close()
                vswrFile = None
                # Calculate average roe
                roeValues.pop()
                for roeLine in roeValues:
                    try:
                        roe += Utils.tooComplex(
                            roeLine[Config.NET_RES_ROE_COL])
                    except IndexError:
                        print "Wiered input:", roeLine
                roe /= len(roeValues)

                # Calculate VSWR and compare to predicted
                calcVSWR = Utils.Vswr(roe)
                curTestResult = True if calcVSWR < 1.6 else False

                # Print results and set overall test to false if failed
                if (curTestResult):
                    print("Pass for frequency %s" % (frequency))
                    results.writerow([
                        float(line[Config.J_FREQ_COL]), L, C, R, calcVSWR,
                        "Pass", notes
                    ])
                    testResult = True
                else:
                    print("Fail for frequency %s" % (frequency))
                    results.writerow([
                        float(line[Config.J_FREQ_COL]), L, C, R, calcVSWR,
                        "Fail", notes
                    ])
                    testResult = False
            del self.loadSetter
            if (not self.prompt("Continue?")):
                return testResult