예제 #1
0
파일: LTE.py 프로젝트: xiaoaiwhc/rssd
class VST(object):
    def __init__(self):
        self.Freq      = 2.5e9
        self.SWM_Out  = 0
        self.LTE_Dir    = 'DL'
        self.LTE_ChBW  = 100        #MHz
        self.LTE_RB     = 66        #RB
        self.LTE_RBO    = 0         #RB Offset
        self.LTE_Mod    = 'QAM64'   #QPSK; QAM16; QAM64; QAM256
        self.LTE_CC     = 1

    def Get_LTE_All(self):
        odata =  [[] for i in range(3)]
        odata[0].append("[[Parameter]]  ")
        odata[0].append("Direction      ")
        odata[0].append("Duplex         ")
        odata[0].append("Ch BW          ")
        odata[0].append("===User/BWP====")
        odata[0].append("RB             ")
        odata[0].append("RBoff          ")
        odata[0].append("Mod            ")

        try:
            odata[1].append("[-SMW-]")
            odata[1].append(self.SMW.Get_LTE_Direction())
            odata[1].append(self.SMW.Get_LTE_Duplex())            
            odata[1].append(self.SMW.Get_LTE_ChBW()) 
            odata[1].append("=User="******"[-FSW-]")
            odata[2].append(self.FSW.Get_LTE_Direction())
            odata[2].append(self.FSW.Get_LTE_Duplex())
            odata[2].append(self.FSW.Get_LTE_ChBW())
            odata[2].append("=User="******"%s\t%s\t%s"%(data[0][i],data[1][i],data[2][i]))
            except: 
                try:
                    print("%s\t%s\t%s"%(data[0][i],data[1][i],'<notRead>'))
                except:
                    print("%s\t%s\t%s"%(data[0][i],'<notRead>',data[2][i]))

    def jav_Open(self,SMW_IP,FSW_IP,OFile=''):
        self.SMW = VSG().jav_Open(SMW_IP,OFile,prnt=0)  #Create SMW Object
        self.FSW = VSA().jav_Open(FSW_IP,OFile,prnt=0)  #Create FSW Object
        return self

    def jav_Close(self):
        self.SMW.jav_Close()
        self.FSW.jav_Close() 
    
    def jav_Clear(self):
        self.SMW.jav_Clear()
        self.FSW.jav_Clear() 

    def Set_LTE_All(self):
        try:
            ### SMW Settings
            self.SMW.Set_Freq(self.Freq)
            self.SMW.Set_LTE_BBState('OFF')
            self.SMW.Set_LTE_Direction(self.LTE_Dir)
            self.SMW.Set_LTE_ChBW(self.LTE_ChBW)
            self.SMW.Set_LTE_ResBlock(self.LTE_RB)
            self.SMW.Set_LTE_ResBlockOffset(self.LTE_RBO)
            self.SMW.Set_LTE_Modulation(self.LTE_Mod)
            self.SMW.Set_LTE_BBState('ON')
            self.SMW.Set_RFState('ON')                          #Turn RF Output on
            self.SMW.Set_RFPwr(self.SWM_Out)                    #Output Power
        except:
            print("NR5G_SetSettings: SMW Error")

        try:
            ### FSW Setting
            self.FSW.Init_LTE()
            self.FSW.Set_Freq(self.Freq)
            self.FSW.Set_LTE_Direction(self.LTE_Dir)
            self.FSW.Set_LTE_ChBW(self.LTE_ChBW)
            self.FSW.Set_LTE_ResBlock(self.LTE_RB)
            self.FSW.Set_LTE_ResBlockOffset(self.LTE_RBO)
            self.FSW.Set_LTE_Modulation(self.LTE_Mod)
            self.FSW.Set_SweepCont(1)
            self.FSW.Set_InitImm()
        except:
            print("NR5G_SetSettings: FSW Error")
        return 0
예제 #2
0
class TestGeneral(unittest.TestCase):
    def setUp(self):                                #run before each test
        self.FSW = VSA().jav_OpenTest(host)
        self.FSW.Init_LTE()

    def tearDown(self):                             #Run after each test
        self.assertEqual(self.FSW.jav_Error()[0],'0')
        self.FSW.jav_Close()

###############################################################################
### <Test>
###############################################################################
    def test_FSW_LTE_AutoRef(self):
        self.FSW.Set_LTE_AutoRef()

    def test_FSW_LTE_Get_DL(self):
        self.FSW.Set_LTE_Direction('DL')
        self.FSW.Set_LTE_Duplex('FDD')
        nullVal = self.FSW.Get_LTE_Direction()
        nullVal = self.FSW.Get_LTE_Duplex()
        nullVal = self.FSW.Get_LTE_ChBW()
        nullVal = self.FSW.Get_LTE_ResBlock()           # Need to test DL
        nullVal = self.FSW.Get_LTE_ResBlockOffset()     # Need to test DL
        nullVal = self.FSW.Get_LTE_Modulation()         # Need to test DL

    def test_FSW_LTE_Get_UL(self):
        self.FSW.Set_LTE_Direction('UL')
        self.FSW.Set_LTE_Duplex('FDD')
        nullVal = self.FSW.Get_LTE_Direction()
        nullVal = self.FSW.Get_LTE_Duplex()
        nullVal = self.FSW.Get_LTE_ChBW()
        nullVal = self.FSW.Get_LTE_ResBlock()           # Need to test DL
        nullVal = self.FSW.Get_LTE_ResBlockOffset()     # Need to test DL
        nullVal = self.FSW.Get_LTE_Modulation()         # Need to test DL

    def test_FSW_LTE_CC(self):
        self.FSW.Set_LTE_CC(2)
        getVal = self.FSW.Get_LTE_CC()
        if self.FSW.connected: self.assertEqual(getVal,'2')
        self.FSW.Set_LTE_CC(1)
        getVal = self.FSW.Get_LTE_CC()
        if self.FSW.connected: self.assertEqual(getVal,'1')

    def test_FSW_LTE_Direction(self):
        self.FSW.Set_LTE_Direction('UL')
        getVal = self.FSW.Get_LTE_Direction()
        if self.FSW.connected: self.assertEqual(getVal,'UL')
        self.FSW.Set_LTE_Direction('DL')
        getVal = self.FSW.Get_LTE_Direction()
        if self.FSW.connected: self.assertEqual(getVal,'DL')

    def test_FSW_LET_Meas(self):
        self.FSW.Get_LTE_EVMParams()
        self.FSW.Get_EVM_n_Params()
        self.FSW.Get_EVM()
        self.FSW.Get_LTE_CrestFactor()
        self.FSW.Get_LTE_ChPwr()

    def test_FSW_LTE_Set_UL(self):
        self.FSW.Set_Freq(2e9)
        self.FSW.Set_LTE_EVMUnit('DB')
        self.FSW.Set_LTE_Duplex('TDD')
        self.FSW.Set_LTE_Duplex('FDD')
        self.FSW.Set_LTE_SubFrameCount(2)
        self.FSW.Set_LTE_Direction('UL')
        self.FSW.Set_LTE_ChBW(20)
        self.FSW.Set_LTE_ResBlock(66)
        self.FSW.Set_LTE_ResBlockOffset(0)
        self.FSW.Set_LTE_Modulation('QPSK')

    def test_FSW_LTE_SEM(self):
        self.FSW.Init_LTE_SEM()