def measure(self): result = DictResult() result.data = self.statusData() generatorPower = result.data['generator power'] physicalAmplifier = result.data['amplifier'] frequency = self.rfGenerator.getFrequency() (forwardPowerReadout,reflectedPowerReadout) = self.wattMeter.getPower() reflectedImage = reflectedPowerReadout if physicalAmplifier.startswith('None'): forwardImage = generatorPower else: forwardImage = forwardPowerReadout (forwardCorrection,reflectedCorrection) = self.amplifierCorrections[physicalAmplifier].corrections(frequency) forwardPower = forwardImage * forwardCorrection reflectedPower = reflectedImage * reflectedCorrection result.data.update({'forward power image':forwardImage, 'reflected power image':reflectedPowerReadout, 'forward power':forwardPower, 'reflected power':reflectedPower, 'transmitted power':forwardPower-reflectedPower, 'reflection coefficient':reflectedPower/forwardPower}) self.emitResult(result) return result
def measure(self): result = DictResult() result.data = { "current": self.supply.getCurrent(self._channelNumber), "voltage": self.supply.getVoltage(self._channelNumber), } self.emitResult(result) return result
def measure(self): result = DictResult() frequency = self.rfGenerator.getFrequency() self.spectrumAnalyzer.span = self.span.value self.spectrumAnalyzer.numberOfAveragingPoints = self.numberOfAveragingPoints.value result.data = {'received power':self.spectrumAnalyzer.powerAt(frequency)} self.emitResult(result) return result
def measure(self): # result = ScalarResult() outputVoltage = self.voltMeter.measure() # result.data = outputVoltage result = DictResult() result.data = {'pass':abs(outputVoltage -self.undisturbedOutputVoltage.value) <= self.voltageMargin.value, 'voltage':outputVoltage} # self.result.value = {'pass':abs(outputVoltage -self.undisturbedOutputVoltage.value) <= self.voltageMargin.value, # 'outputVoltage (V)':outputVoltage} self.emitResult(result) return result
def measure(self): assert self.switchPlatform.checkPreset(self.amplifiers[self.amplifier.value]),'The switch platform is not in the {position} position'.format(position=self.amplifier.value) result = DictResult() generatorPower = self.rfGenerator.getPower() frequency = self.rfGenerator.getFrequency() switchAttenuation = PowerRatio(sqrt(frequency/Frequency(170,'GHz')),'dB') # 2 switches - cable - cable - 2 switches # in the incident path, these losses cancel (same loss for DUT and incident power meter) # in the reflected path, these losses appear (the signal suffers from two cables and twice the switch platform) if self.amplifier.value == 'None': forwardPower = generatorPower * bridgeInsertionTransferAt(frequency) reflectedPower = self.wattMeter.getPower(2) / bridgeCouplingFactorAt(frequency) # insertionLoss = PowerRatio(1.5,'dB') * switchAttenuation # reflectedAttenuation = PowerRatio(16.0 + 0.6*sin(2*pi*frequency/Frequency(12,'GHz')),'dB') # # forwardPower = generatorPower / insertionLoss # reflectedPower = self.wattMeter.getPower(2) * reflectedAttenuation * switchAttenuation else: if self.amplifier.value == 'Prana': forwardAttenuation = PowerRatio(48.7 - 0.4*sin(2*pi*frequency/Frequency(1,'GHz')),'dB') reflectedAttenuation = forwardAttenuation / PowerRatio(0.1,'dB') elif self.amplifier.value == 'Milmega 1': forwardAttenuation = PowerRatio(44.9 - 0.6*sin(2*pi*(frequency-Frequency(900,'MHz'))/Frequency(2,'GHz')),'dB') reflectedAttenuation = forwardAttenuation * PowerRatio(0.4,'dB') elif self.amplifier.value == 'Milmega 2': forwardAttenuation = PowerRatio(43.6 - 0.6*sin(2*pi*(frequency-Frequency(1.9,'GHz'))/Frequency(4,'GHz')),'dB') reflectedAttenuation = PowerRatio(44.4 - 1.1*sin(2*pi*(frequency-Frequency(1.9,'GHz'))/Frequency(4,'GHz')),'dB') else: raise ValueError, 'The switch platform is in an unsupported position.' abPowers = self.wattMeter.getPower() forwardPower = abPowers(1) * forwardAttenuation reflectedPower = abPowers(2) * reflectedAttenuation * switchAttenuation result.data = {'generator power':generatorPower, 'transmitted power':forwardPower-reflectedPower, 'forward power':forwardPower, 'reflected power':reflectedPower} self.emitResult(result) return result