Ejemplo n.º 1
0
class TestGeneral(unittest.TestCase):
    def setUp(self):  #run before each test
        self.FileIO = FileIO()
        self.FileIO.Init("FileIO.csv")

    def test_write(self):
        self.FileIO.write("Hello World Test_FileIO.py")
        self.FileIO.write_raw("Hello World Test_FileIO.py Raw")

    def test_readcsv(self):
        data = self.FileIO.readcsv()
        for i, line in enumerate(data):
            print("%d:%s" % (i, ",".join(data[i])))
        self.assertEqual("as" + "df", "asdf")

    def test_read(self):
        data = self.FileIO.read()
        for i, line in enumerate(data):
            print("%d:%s" % (i, ",".join(line)))

        self.assertTrue('FOO'.isupper())
        self.assertFalse('Foo'.isupper())

    def tearDown(self):
        pass
Ejemplo n.º 2
0
class TestGeneral(unittest.TestCase):
    def setUp(self):                            #Run before each test
        self.FileIO = FileIO()
        self.FileIO.Init("FileIO.csv")
        self.FileIO.debug = 0

    def tearDown(self):                         #Run after each test
        self.FileIO.Outfile.close()

###############################################################################
### </Test>
###############################################################################
    def test_write(self):
        try:
            self.FileIO.write("test_write,write")           #Append Date
            self.FileIO.write_raw("test_write,write_raw")   #No Date
        except:
            self.assertTrue(1)                  #FAIL

    def test_readcsv(self):
        self.FileIO.write('testreadcsv,spam,ham,eggs')
        data = self.FileIO.readcsv()            #Read as 2D Table
        size = len(data)
        self.assertEqual(data[size-1][3],'ham')

    def test_read(self):
        self.FileIO.write_raw('testread,spam,ham,eggs')
        data = self.FileIO.read()               #Read entire file
        size = len(data)
        self.assertEqual(data[size-1].strip(),'testread,spam,ham,eggs')
Ejemplo n.º 3
0
class TestGeneral(unittest.TestCase):
    def setUp(self):                            #Run before each test
        self.FileIO = FileIO()
        self.FileIO.init("FileIO.csv")
        self.FileIO.debug = 0

    def tearDown(self):                         #Run after each test
        self.FileIO.Outfile.close()

###############################################################################
### </Test>
###############################################################################
    def test_setFilename(self):
        self.FileIO.set_filename(".system")

    def test_makeFile(self):
        newName = 'makeFile'
        self.FileIO.makeFile(newName)
        self.assertNotEqual(self.FileIO.sFName.find(newName),-1)

    def test_readcsv(self):
        self.FileIO.write('testreadcsv,spam,ham,eggs')
        data = self.FileIO.readcsv()            #Read as 2D Table
        size = len(data)
        self.assertEqual(data[size-1][3],'ham')

    def test_read(self):
        self.FileIO.write_raw('testread,spam,ham,eggs')
        data = self.FileIO.read()               #Read entire file
        size = len(data)
        self.assertEqual(data[size-1].strip(),'testread,spam,ham,eggs')
        # self.assertTrue('FOO'.isupper())
        # self.assertFalse('Foo'.isupper())

    def test_readdict(self):
        BaseDir  = os.path.dirname(os.path.realpath(__file__))
        self.FileIO.set_filename(os.path.join(BaseDir,'.system'))
        rdDict = self.FileIO.readdict()
        rdDict['VSG']           #pylint: disable=W0104

    def test_write(self):
        self.FileIO.write("test_write,write")           #Append Date
        self.FileIO.write_raw("test_write,write_raw")   #No Date
Ejemplo n.º 4
0
def run(root):
    Instr = VST().jav_Open(root.entryCol.entry0.get(),
                           root.entryCol.entry1.get())  #pylint:disable=E1101
    OFileCSV = FileIO().makeFile(root.entryCol.entry7.get() + 'csv')
    OFileXML = FileIO().makeFile(root.entryCol.entry7.get() + 'xml')

    root.toppWind.writeN('Sweep Begin')
    root.toppWind.writeN(
        f'-{Instr.SMW.Model} {Instr.SMW.Device} {Instr.SMW.Version} ')
    root.toppWind.writeN(
        f'-{Instr.FSW.Model} {Instr.FSW.Device} {Instr.FSW.Version} ')

    ##########################################################
    ### Instrument Settings
    ##########################################################
    FreqStart = int(float(root.entryCol.entry2.get()))
    FreqStop = int(float(root.entryCol.entry3.get()))
    FreqStep = int(float(root.entryCol.entry4.get()))
    fSpan = float(root.entryCol.entry5.get())
    SWM_Out = float(root.entryCol.entry6.get())

    Instr.SMW.Set_RFPwr(SWM_Out)  #Output Power
    Instr.SMW.Set_IQMod('OFF')  #Modulation Off
    Instr.SMW.Set_RFState('ON')  #Turn RF Output on
    Instr.FSW.Set_Channel("Spectrum")
    Instr.FSW.Set_SweepCont(0)
    Instr.FSW.Set_Span(fSpan)

    for freq in range(FreqStart, FreqStop, FreqStep):
        Instr.Set_Freq(freq)
        time.sleep(0.01)
        Instr.FSW.Set_InitImm()
        Instr.FSW.Set_Mkr_Peak()
        Mkr = Instr.FSW.Get_Mkr_XY()
        OFileCSV.write(f'{freq},{Mkr[0]},{Mkr[1]}')
        OFileXML.write(f'  <Point x="{Mkr[0]}" y="{Mkr[1]}"/>')
    Instr.jav_Close()
    root.toppWind.writeN("Sweep Complete")
Ejemplo n.º 5
0
        if leaveLoop:   break
    return AvgAvg

def rad2deg(radian):
    """ PI() * Radian = 180 Degree"""
    degree = radian * 180 / 3.14159
    return degree

def deg2rad(degree):
    radian = degree * 3.14159 / 180
    return radian

###############################################################################
### Code Start
###############################################################################
OFile.write('DemodBW,Phase,Mkr1,Mkr2,Mkr3,Mkr4,Meas,MeasAvg\n')
FSW.write('SYST:DISP:UPD ON')

###############################################################################
### SMW-Setup  1 Radian = 180/Pi()
###############################################################################
SMW.Set_Freq(28e9)
SMW.Set_BBState(0)                          # Arb Off
SMW.Set_IQMod(0)                            # IQ Mod Off

SMW.Set_Ref_Source('EXT')                   # ExtReference
SMW.Set_Ref_Freq('10MHZ')
SMW.Set_Ref_SyncBW('WIDE')                  # Oscilator locking BW
SMW.Set_RFState('ON')

###############################################################################
Ejemplo n.º 6
0
##########################################################
### Code Start
##########################################################
NR5G = VST().jav_Open(SMW_IP,FSW_IP,OFile)
NR5G.NR_TF      = DFT_S_OFDM
NR5G.NR_Dir     = NR_Dir
NR5G.NR_ChBW    = NR_ChBW
NR5G.NR_RB      = NR_RB
NR5G.Freq       = FreqArry[0]

##########################################################
### Measure Time
##########################################################
#sDate = datetime.now().strftime("%y%m%d-%H:%M:%S.%f") #Date String
OFile.write('Iter,Freq,AutoLvl,ALTime,Crest,Pwr,EVM,ChBW,Waveform,SubSp,Mod,Pwr,SubFram,Attn,Preamp,RefLvl,CrestF,P10_00,P01_00,P00_10,P00_01,CmdTime')

NR5G.FSW.Init_5GNR()
NR5G.FSW.Set_5GNR_EVMUnit('DB')
NR5G.FSW.Set_Trig1_Source('EXT')
NR5G.FSW.Set_SweepCont(0)
NR5G.FSW.Init_CCDF()
NR5G.FSW.Set_YIG(0)
NR5G.FSW.Set_CCDF_BW(120e6)
NR5G.FSW.Set_CCDF_Samples(2e6)
NR5G.FSW.Set_Trig1_Source('IMM')
NR5G.FSW.Set_SweepCont(0)

for mod in modArry:                                         #Loop: Modulation
    for subC in subCarr:                                    #Loop: Subcarrier
        NR5G.NR_SubSp = subC
Ejemplo n.º 7
0
SEMFreqmin = 2.900e9

###############################################################################
### Code Overhead: Import and create objects
###############################################################################
# import timeit
from rssd.VSA.NR5G_K144 import VSA
from rssd.FileIO import FileIO

OFile = FileIO().makeFile(__file__)
FSW = VSA().jav_Open(instru_ip, OFile)  #Create Object

###############################################################################
### Code Start
###############################################################################
OFile.write('EVM,FreqError,ChPwr,Adj-,Adj+,SEM')  #Data Header

FSW.Set_Freq(centerFreq)
FSW.Set_SweepCont(0)

###########################
### EVM
###########################
FSW.Init_5GNR()
FSW.Init_5GNR_Meas('EVM')
FSW.Set_InitImm()
EVM = FSW.query(':FETC:CC1:ISRC:FRAM:SUMM:EVM:ALL:AVER?')
EVM = EVM + ',' + FSW.query(':FETC:CC1:ISRC:FRAM:SUMM:FERR:AVER?')

###########################
### ACLR
Ejemplo n.º 8
0
instru_ip  = '192.168.1.107'

###############################################################################
### Code Overhead: Import and create objects
###############################################################################
from rssd.yaVISA_socket     import jaVisa
from rssd.FileIO            import FileIO
import timeit

OFile = FileIO().makeFile(__file__)
instr = jaVisa().jav_Open(instru_ip,OFile)                  #Create Object

###############################################################################
### Code Start
###############################################################################
OFile.write('Iter,CmdTime,Response')

ALTime = []
for i in range(10):
    rdStr = ''
    tick = timeit.default_timer()
    ### <\thing we are timing>
    if 1:
        instr.query('INIT:IMM;*OPC?')
    # instr.write(':INST:COUP:RLEV ON')
    # rdStr = instr.query('FETC:SUMM:EVM:ALL?')
    ### <\thing we are timing>
    ALTime.append(timeit.default_timer() - tick)
    OutStr = f'{i},{ALTime[i]:.6f},{rdStr}'
    OFile.write (OutStr)
Ejemplo n.º 9
0
OFileXML = FileIO().makeFile(__file__+'xml')
SMW = VSG().jav_Open(SMW_IP,OFileCSV)  #Create SMW Object
FSW = VSA().jav_Open(FSW_IP,OFileCSV)  #Create FSW Object

##########################################################
### Instrument Settings
##########################################################
SMW.Set_RFPwr(SWM_Out)                    #Output Power
SMW.Set_RFState('ON')                     #Turn RF Output on

FSW.Set_SweepCont(0)
#FSW.Set_SweepTime(200e-3)
FSW.Set_Span(fSpan)

if Mixer:                                 #Mixer
    FSW.write('SENS:MIX:STAT ON')
    FSW.write('SENS:MIX:HARM:BAND V')

for freq in range(FreqStart,FreqStop,FreqStep):
    SMW.Set_Freq(freq)
    time.sleep(0.01)
    FSW.Set_Freq(freq)
    FSW.Set_InitImm()
    FSW.Set_Mkr_Peak()
    Mkr = FSW.Get_Mkr_XY()
    OFileCSV.write(f'{freq},{Mkr[0]},{Mkr[1]}')
    OFileXML.write(f'  <Point x="{Mkr[0]}" y="{Mkr[1]}"/>')

SMW.jav_ClrErr()                          #Clear Errors
FSW.jav_ClrErr()                          #Clear Errors
Ejemplo n.º 10
0
instru_ip = '192.168.1.108'

###############################################################################
### Code Overhead: Import and create objects
###############################################################################
from rssd.FSW_Common import VSA
from rssd.FileIO import FileIO
import timeit

OFile = FileIO().makeFile(__file__)
FSVA = VSA().jav_Open(instru_ip, OFile)  #Create Object

###############################################################################
### Code Start
###############################################################################
OFile.write('Freq,LNA,NoiseCorr,MkrFreq,Noise,dBmHz')

FSVA.Set_SweepCont(0)
#FSVA.Set_SweepTime(100e-3)
FSVA.Set_Span(1e6)
FSVA.Set_RefLevel(-100)
FSVA.Set_Trace_Detector('RMS')
FSVA.Set_Trace_Avg('POW')
FSVA.Set_Trace_AvgCount(30)
FSVA.Set_AttnMech(0)
FSVA.Set_ResBW(100)
for freq in (1, 3.6, 6):
    FSVA.Set_Freq(freq * 1e9)
    for preamp in ('NoPA', 'LNA'):
        if 'LNA' in preamp:
            FSVA.write(':INP:GAIN:STAT ON')
Ejemplo n.º 11
0
   VSA.Set_IQ_ACLR(ChBW, ChSpace)

#VSA.Set_DisplayUpdate("OFF")
VSA.Set_Param_Couple_All()
VSA.Set_SweepTime(MeasTim)
VSA.Set_Trace_Avg('LIN')
VSA.Set_Trace_AvgCount(Avg)
VSA.Set_YIG('OFF')
if 0:
    VSA.Set_Trig1_Source('Ext')

###############################################################################
### Measure Time
###############################################################################
#sDate = datetime.now().strftime("%y%m%d-%H:%M:%S.%f") #Date String
OFile.write('Model    ,Iter,Freq,RBW,SwpTime,SMWPwr,ALType,ALTime,TotTime,Attn,PreAmp,RefLvl,SwpTime,SwpPts,SwpType,SwpOpt,TxPwr,Adj-,Adj+,Alt-,Alt+,ChSpace')
for i in range(Repeat):
    for autoMeth in range(len(meth)):
        for pwr in range(PwrSweep):
            ### <\thing we are timing>
            VSG.write(f':POW:AMPL {-50 + pwr}dbm')                  ### VSG Power
            tick = datetime.now()

            ### <AUTOLEVEL> ###
            eval(meth[autoMeth])                                    # Dynamically call
            tockA =  datetime.now()
            ### <AUTOLEVEL> ###

            VSA.write(':INIT:CONT OFF')                             # Single Sweep
            VSA.query(':INIT:IMM;*OPC?')                            # Take Sweep
            ACLR = VSA.Get_Mkr_BandACLR()
Ejemplo n.º 12
0
VSA.Set_SweepTime(MeasTim)
VSA.Set_Trace_Avg('LIN')
VSA.Set_Trace_AvgCount(Avg)
VSA.Set_Trace_Detector('RMS')
VSA.Set_SweepOpt(SweMode)
VSA.Set_SweepType(SweType)
VSA.Set_YIG('OFF')
if 0:
    VSA.Set_Trig1_Source('Ext')

##########################################################
### Measure Time
##########################################################
#sDate = datetime.now().strftime("%y%m%d-%H:%M:%S.%f") #Date String
OFile.write(
    'Instr,Iter,RBW,SwpTime,SMWPwr,ALType,AL Time,TotalTime,Attn,PreAmp,RefLvl,SwpTime,SwpPts,SwpType,SwpOpt,TxPwr,Adj-,Adj+,Alt-,Alt+,Freq,ChBw'
)
for i in range(Repeat):
    for autoMeth in range(len(meth)):
        for pwr in range(PwrSweep):
            ### <\thing we are timing>
            VSG.query(f':POW:AMPL {-50 + pwr}dbm;*OPC?')  # VSG Power
            tick = datetime.now()

            ### <AUTOLEVEL> ###
            eval(meth[autoMeth])  # Dynamically call
            ### <AUTOLEVEL> ###

            tockA = datetime.now()
            VSA.write(':INIT:CONT OFF')  # Single Sweep
            VSA.query(':INIT:IMM;*OPC?')  # Take Sweep
Ejemplo n.º 13
0
from datetime import datetime  #pylint: disable=E0611,E0401
from rssd.FileIO import FileIO  #pylint: disable=E0611,E0401
from rssd.VST_WLAN import VST  #pylint: disable=E0611,E0401
OFile = FileIO().makeFile(__file__)

##########################################################
### Code Start
##########################################################
WLAN = VST().jav_Open(SMW_IP, FSW_IP, OFile)

##########################################################
### Measure Time
##########################################################
#sDate = datetime.now().strftime("%y%m%d-%H:%M:%S.%f") #Date String
OFile.write(
    'Freq,SMWPwr,ALTime,Std,ChBW,MCS,Attn,Preamp,RefLvl,MeasPwr,EVM,SEM,TxCh,Adj-,Adj+,Alt1-,Alt1+,Alt2-,Alt2+,CmdTime'
)  # All

WLAN.FSW.jav_Reset()
WLAN.FSW.Init_WLAN()
WLAN.FSW.Set_Trig1_Source('EXT')
WLAN.FSW.Set_SweepCont(0)

for std in StdArry:  #Loop: Standard
    for chbw in CHBWArry:  #Loop: Ch Bandwidth
        for MCS in MCSArry:  #Loop: Modulation
            WLAN.WLAN_Std = std
            WLAN.WLAN_MCS = MCS
            WLAN.WLAN_ChBW = chbw
            WLAN.Set_WLAN_All()  ### Make Waveform ###
            print(f'802.11{std} RFBW:{WLAN.WLAN_ChBW} MCS:{MCS}')
Ejemplo n.º 14
0
from rssd.SMW_Common import VSG
from rssd.FileIO import FileIO
import time

f = FileIO()
DataFile = f.Init(OutFile)
SMW = VSG()
SMW.jav_Open(SMW_IP, f.sFName)

##########################################################
### Instrument Settings
##########################################################
SMW.Set_RFPwr(SWM_Out)  #Output Power
SMW.Set_RFState('ON')  #Turn RF Output on

f.write(SMW.query('FREQ:MULT:EXT:TYPE?'))  #SMZ #
f.write(SMW.query('FREQ:MULT:EXT:SNUM?'))  #Serial Num
f.write(SMW.query('FREQ:MULT:EXT:LOAD:VERS?'))
f.write(SMW.query('FREQ:MULT:EXT:FMAX?'))
f.write(SMW.query('FREQ:MULT:EXT:FMIN?'))
f.write(SMW.query('FREQ:MULT:EXT:REV?'))  #Revision

f.write("Power")
f.write(SMW.query('FREQ:MULT:EXT:PMAX?'))  #Revision
f.write(SMW.query('FREQ:MULT:EXT:PMIN?'))  #Revision
f.write(SMW.query('FREQ:MULT:EXT:STAT?'))
SMW.write("MMEM:CDIR '/smz/firmware/'")
f.write(SMW.query("FREQ:MULT:EXT:FIRM:CAT?"))
f.write(SMW.query("FREQ:MULT:EXT:CORR:POW:POIN?"))

SMW.jav_ClrErr()  #Clear Errors
Ejemplo n.º 15
0
instru_ip = '192.168.1.109'
freq = 1.950  #GHz
###############################################################################
### Code Overhead: Import and create objects
###############################################################################
from rssd.VSA.Common import VSA
from rssd.FileIO import FileIO
import timeit

OFile = FileIO().makeFile(__file__)
FSW = VSA().jav_Open(instru_ip, OFile)  #Create Object

###############################################################################
### Code Start
###############################################################################
OFile.write('Freq,ChPwr-dBm,2nd-dbc,3rd-dbc')

FSW.Init_Harm()
FSW.Set_Freq(freq * 1e9)
FSW.Set_Harm_num(3)
FSW.Set_Trace_Detector('RMS')
FSW.Set_Harm_adjust()
# FSW.Set_RefLevel(-100)
# FSW.Set_ResBW(100)
data = FSW.Get_Harm()
OutStr = f'{freq},{data[0]},{data[1]},{data[2]}'
OFile.write(OutStr)

###############################################################################
### Cleanup Automation
###############################################################################
Ejemplo n.º 16
0
##########################################################
### Code Start
##########################################################
FSW.jav_Reset()
FSW.Set_Freq(Freq)
FSW.Init_CCDF()  #FSW CCDF Channel
FSW.Set_CCDF_BW(RFBW)
FSW.Set_CCDF_Samples(NumIQ)
FSW.Set_SweepCont(0)

##########################################################
### Measure Time
##########################################################
#sDate = datetime.now().strftime("%y%m%d-%H:%M:%S.%f") #Date String
OFile.write('Iter,CrestF,P10_00,P01_00,P00_10,P00_01,CmdTime')
sumTime = 0
for i in range(NumMeas):
    tick = datetime.now()
    FSW.Set_InitImm()
    ccdf = FSW.Get_CCDF()
    d = datetime.now() - tick
    sumTime += d.microseconds
    OutStr = f'{i},{ccdf},{d.seconds}.{d.microseconds}'
    OFile.write(OutStr)

##########################################################
### Cleanup Automation
##########################################################
FSW.jav_Close()
Ejemplo n.º 17
0
FSW = VSA().jav_Open(FSW_IP, OFile)  #Create FSW Object

################################################################################
### Code Start
################################################################################
FSW.jav_Reset()
FSW.Init_IQ()  #FSW IQ Channel
FSW.Set_DisplayUpdate("OFF")
FSW.Set_SweepTime(MeasTim)
FSW.Set_SweepCont(0)

################################################################################
### Measure Time
################################################################################
#sDate = datetime.now().strftime("%y%m%d-%H:%M:%S.%f") #Date String
OFile.write('Fs,CapTime,Iter,CmdTime')
for Fs in FsArry:
    print("Starting Fs: %f" % Fs)
    FSW.Set_IQ_SamplingRate(Fs)
    for i in range(numRepeat):
        tick = datetime.now()
        FSW.Set_InitImm()
        FSW.Get_IQ_Data()
        data = FSW.Get_IQ_Data_Ascii2().split(',')[0:2]
        d = datetime.now() - tick
        OutStr = f'{Fs/1e6},{MeasTim},{i:2d},{d.seconds:03d}.{d.microseconds:06d}, {data}'
        OFile.write(OutStr)

################################################################################
### Cleanup Automation
################################################################################
Ejemplo n.º 18
0
from datetime               import datetime     #pylint: disable=E0611,E0401
from rssd.FileIO            import FileIO       #pylint: disable=E0611,E0401
from rssd.VST_WLAN          import VST          #pylint: disable=E0611,E0401
import time
OFile = FileIO().makeFile(__file__)

##########################################################
### Code Start
##########################################################
WLAN = VST().jav_Open(SMW_IP,FSW_IP,OFile)

##########################################################
### Measure Time
##########################################################
#sDate = datetime.now().strftime("%y%m%d-%H:%M:%S.%f") #Date String
OFile.write('Freq,Pwr,ALTime,Std,ChBW,MCS,Pwr,Attn,Preamp,RefLvl,EVM,CmdTime')

WLAN.FSW.Init_WLAN()
WLAN.FSW.Set_Trig1_Source('EXT')
WLAN.FSW.Set_SweepCont(0)

for std in StdArry:                                             #Loop: Standard
    for chbw in CHBWArry:                                       #Loop: Ch Bandwidth
        for MCS in MCSArry:                                     #Loop: Modulation
            WLAN.WLAN_Std   = std
            WLAN.WLAN_MCS   = MCS
            WLAN.WLAN_ChBW  = chbw
            WLAN.Set_WLAN_All()                                 ### Make Waveform ###
            print(f'802.11{std} RFBW:{WLAN.WLAN_ChBW} MCS:{MCS}')
            WLAN.FSW.Set_SweepTime(SweepTime)
            WLAN.FSW.write(':TRAC:IQ:SRAT 160e6')
Ejemplo n.º 19
0
FSW.Set_Trace_Mode('WRIT')
FSW.Set_Trace_Detector('RMS')
FSW.Set_Span(Span)
FSW.Set_Mkr_Freq(Freq)
FSW.Set_Mkr_Band(100e6)
FSW.Set_YIG('OFF')
FSW.Set_SweepCont(0)
FSW.Set_Autolevel()
# FSW.Set_Trig1_Source('Ext')

################################################################################
### Measure Time
################################################################################
#sDate = timeit.default_timer().strftime("%y%m%d-%H:%M:%S.%f") #Date String
LoopParam   = 'Iter,RBW,SwpTime'
OFile.write(f'{LoopParam},{FSW.Get_Params(1,1,1,1,1)},{FSW.Get_Params_MkrBand(1)},{TMR.Get_Params_Time(1)}')

for i in range(Repeat):
    for SwpTime in swpTimeArry:
        for rbw in rbwArry:
            TMR.start()                                 # <thing we are timing>
            FSW.Set_Channel('Spectrum')
            FSW.Set_ResBW(rbw)
            FSW.Set_SweepTime(0)
            FSW.Set_InitImm()                           # Take Sweep
            MeasData    = FSW.Get_Params_MkrBand()
            TMR.tick()                                  # <\thing we are timing>
            LoopParam   = f'{i},{rbw:8.0f},{SwpTime:5.3f}'
            TotTime     = TMR.Get_Params_Time()
            OutStr      = f'{LoopParam},{FSW.Get_Params(1,1,1,1,0)},{MeasData},{TotTime}'
            OFile.write (OutStr)
Ejemplo n.º 20
0
##########################################################
from rssd.VSA.OptX import VSA
from rssd.FileIO import FileIO

OFile = FileIO().makeFile(__file__)
FSW = VSA().jav_Open(FSW_IP, OFile)  #Create FSW Object

##########################################################
### Code Start
##########################################################

#FSW.jav_Reset()
FSW.Init_5GNR_SEM()  #FSW 5G NR Channel
FSW.Set_Freq(Freq)
FSW.Set_5GNR_Direction('DL')  #UL or DL
FSW.Set_5GNR_SEM_SubBlockNum(3)
FSW.Set_5GNR_FreqRange('HIGH')  #LOW:<3GHz MIDD:3-6GHz HIGH:>6GHz
FSW.Set_5GNR_ChannelBW(ChBW)  #MHz

##########################################################
### Measure Time
##########################################################
#sDate = datetime.now().strftime("%y%m%d-%H:%M:%S.%f") #Date String
OFile.write('asdf')
FSW.Set_SweepCont(0)

##########################################################
### Cleanup Automation
##########################################################
FSW.jav_Close()
Ejemplo n.º 21
0
CMP.write('CONF:NRMM:MEAS:MEV:RES:ALL ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON,ON')
CMP.write('CONF:NRMM:MEAS:MEV:REP SING')
CMP.write('CONF:NRMM:MEAS:MEV:SCON NONE')
CMP.write('CONF:NRMM:MEAS:MEV:MMOD NORM')
CMP.write('CONF:NRMM:MEAS:MEV:MOEX OFF')
CMP.write('CONF:NRMM:MEAS:MEV:SCO:POW 1')
CMP.write('CONF:NRMM:MEAS:MEV:SCO:MOD 1')
CMP.write('CONF:NRMM:MEAS:MEV:SCO:SPEC:SEM 1')
CMP.write('CONF:NRMM:MEAS:MEV:SCO:SPEC:ACLR 1')

##########################################################
### Measure Time
##########################################################
#sDate = datetime.now().strftime("%y%m%d-%H:%M:%S.%f") #Date String
Header = 'Iter,Model,Freq,EVM,TxPwr,PeakPwr,FreqErr,EVMdB,ChBW,UL-TP,SubSp,Mod,SMWPwr,ExpPwr,UserMargin,ExtAttn,MixerLevel,StepTime'
OFile.write(Header)

for i in range(numMeas):  #Loop: Repeatability
    for param in waveparam:  #Loop: Waveform Parameters
        NR5G.NR_ChBW = param[0]
        NR5G.NR_SubSp = param[1]
        NR5G.NR_RB = param[2]
        NR5G.NR_Mod = param[3]
        CMP.Init_5GNR()
        for freq in FreqArry:  #Loop: Frequency
            print(
                f'Freq:{freq:.0f} RFBW:{NR5G.NR_ChBW} SubC:{NR5G.NR_SubSp} Mod:{NR5G.NR_Mod}'
            )
            SMW.Set_Freq(freq)
            CMP.Set_5GNR_Freq(freq / 1e6)
            print(Header)
Ejemplo n.º 22
0
"""RSSD Frequency Sweep VSA & VSG"""
from rssd.VSA           import VSA
from rssd.VSG           import VSG
from rssd.FileIO        import FileIO

freqOffset = 60e6
smwPwr      = -10
OFile = FileIO().makeFile(__file__)                 # Create Output File
SMW = VSG().jav_Open('192.168.58.114',OFile)        # Create Generator Object
FSW = VSA().jav_Open('192.168.58.109',OFile)        # Create Analyzer Object

OFile.write('SMWFreq,FreqOffset,SMWPwr,MkrBand,MkrCenter,MkrOffset,MkrDelta,SMWOff')
Freqs = range(int(7e9), int(9e9), int(100e6))     # Frequency List
SMW.Set_RFPwr(smwPwr)
SMW.Set_IQMod(0)
FSW.Set_Span(200e6)
FSW.Set_SweepTime(0.500)
FSW.Set_Trace_Detector('RMS')
FSW.Set_Mkr_Band(100e6)
for frq in Freqs:
    ## SMW Power ON
    SMW.Set_RFState(1)
    SMW.Set_Freq(frq)
    FSW.Set_SweepCont(0)
    FSW.Set_Freq(frq)
    FSW.Set_Autolevel()
    FSW.Set_InitImm()
    FSW.Set_Mkr_Freq(frq)
    MkrCenter = FSW.Get_Mkr_Y()
    MkrBandPr = FSW.Get_Mkr_Band()
    FSW.Set_Mkr_Freq(frq + freqOffset)
Ejemplo n.º 23
0
###############################################################################
### Rohde & Schwarz Automation for demonstration use.
###############################################################################
SMW_IP = '192.168.1.114'
SMW_IP = '10.0.0.10'
FreqArry = [24e9, 28e9, 39e9]
PwrArry = range(-50, 0, 2)

###############################################################################
from rssd.VSG.Common import VSG
from rssd.FileIO import FileIO

FIL = FileIO().makeFile(__file__)
SMW = VSG().jav_Open(SMW_IP, FIL)  #Create SMW Object

###############################################################################
### Code Start
###############################################################################
SMW.Set_IQMod('OFF')
for frq in FreqArry:
    SMW.Set_Freq(frq)
    # SMW.Set_NRP_Freq(frq)
    for pwr in PwrArry:
        SMW.Set_RFPwr(pwr)
        SMW.Set_RFState(1)
        rdStr = SMW.Get_NRPPower()
        FIL.write(f'{frq},{pwr},{rdStr}')
Ejemplo n.º 24
0
################################################################################
### Rohde & Schwarz Automation for demonstration use.
###
### Title  : Digital Storage Oscilloscope Example
### Author : mclim
### Date   : 2020.03.24
###
################################################################################
### User Entry
################################################################################
RTO_IP = '192.168.1.33'

################################################################################
### Code Overhead
################################################################################
from rssd.FileIO import FileIO  #pylint: disable=E0611,E0401
from rssd.DSO.Common import DSO

OFile = FileIO().makeFile(__file__)  # Open Log file
RTO = DSO().jav_Open(RTO_IP, OFile)  # Create RTO object & log IDN

################################################################################
### Code Start
################################################################################
rdStr = RTO.query('*IDN?')
RTO.Set_TimeScale(1e-8)
rdStr = RTO.Get_TimeScale()
RTO.Set_TimeScale(2e-8)
rdStr = RTO.Get_TimeScale()
OFile.write(rdStr)
Ejemplo n.º 25
0
VSA.Set_In_YIG('OFF')
# VSA.Set_Trig1_Source('Ext')

################################################################################
### Measure Time
################################################################################
#sDate = timeit.default_timer().strftime("%y%m%d-%H:%M:%S.%f") #Date String
LoopParam = 'Iter,Pwr'
TimeParam = 'AlTime,MeasTime,TotalTIme'
SwpParam = VSA.Get_Params_Sweep(1)
AmpParam = VSA.Get_Params_Amp(1)
TrcParam = VSA.Get_Params_Trace(1)
SysParam = VSA.Get_Params_System(1)
MeasData = 'TxPwr,Adj-,Adj+,Alt-,Alt+'
OFile.write(
    f'{LoopParam},{TimeParam},{AmpParam},{SwpParam},{TrcParam},{SysParam},{MeasData}'
)
# table = VSAL.ReadLevellingTables(Freq)

tick0 = timeit.default_timer()
for i in range(Repeat):
    for VSApwr in range(PwrSweep):
        tick = timeit.default_timer()

        ### <\thing we are timing>
        VSG.write(f':POW:AMPL {VSApwr - DUTGain}dbm')  # VSG Power
        #################
        ### AUTOLEVEL ###
        #################
        VSA.Set_SweepCont(0)  # Sweep Continuous
        VSA.Set_Autolevel()