Exemple #1
0
def Bandedge(item_dict, mode_str):
    if global_element.Test_band == 'GSM850' or global_element.Test_band == 'PCS1900':
        if global_element.Test_channel == '128' or global_element.Test_channel == '251' or \
                global_element.Test_channel == '512' or global_element.Test_channel == '810':
            global_element.Test_item = 'Band edge'
            global_element.emitsingle.stateupdataSingle.emit(
                'Testing in progress of Band edge……,Channel:%s,PCL:%s' %
                (global_element.Test_channel, global_element.Test_pcl))
            # 停止功能函数接口

            # 将此项用户的参数初始化
            # 此项没有用户自定义参数

            # 设置CU的线损
            dlfre, ulfre = report_handle.freq_gsm_calc(
                int(global_element.Test_channel))
            global_element.CU_intance.set_gms_loss(ulfre, dlfre)

            # RESET SA
            global_element.SA_intance.resetself()

            # 设置SA的线损
            global_element.SA_intance.set_loss(ulfre)

            # SA检查DUT是否有发射对应信号
            result = global_element.SA_intance.check_gsm_signal()
            if result == False:
                global_element.Test_remark = 'SA did not detect the signal!'
                report_handle.Reporttool('NULL', 'None', 'None')
                global_element.Test_remark = ''
            else:
                global_element.emitsingle.stateupdataSingle.emit(
                    'SA detection signal is successful!')

                # 开始SA的设置
                global_element.SA_intance.settrace('1', 'MAX')
                global_element.SA_intance.sweepconfig(True, True, '', '', '')

                # 停止功能函数接口

                result = global_element.SA_intance.gsmfcc_Spurious_set(
                    global_element.Test_channel)

                global_element.Test_remark = 'Reference screenshot of this result!'
                if result == '1':
                    report_handle.Reporttool('1', '-1', '1')
                else:
                    report_handle.Reporttool('0', '-1', '1')

                # 截图
                picturepath = global_element.reportpath[:global_element.
                                                        reportpath.index('.')]
                if not os.path.isdir(picturepath + '/GSM FCC/Band edge'):
                    os.makedirs(picturepath + '/GSM FCC/Band edge')

                picturepath_final = picturepath + '/GSM FCC/Band edge/' + mode_str + ' ' + global_element.Test_band \
                                    + ' Channel' + global_element.Test_channel + ' PCL' + global_element.Test_pcl + '.JPG'
                global_element.SA_intance.PrtScn(picturepath_final)

                global_element.Test_remark = ''
Exemple #2
0
def Conductedoutputpower(item_dict, mode_str):
    if global_element.Test_band == 'GSM850' or global_element.Test_band == 'PCS1900':
        global_element.Test_item = 'Conducted output power'
        global_element.emitsingle.stateupdataSingle.emit(
            'Testing in progress of Conducted output power……,Channel:%s,PCL:%s'
            % (global_element.Test_channel, global_element.Test_pcl))
        # 停止功能函数接口

        # 将此项用户的参数初始化
        att_gain = item_dict['parms']['Parm']['Value']

        # 设置CU的线损
        dlfre, ulfre = report_handle.freq_gsm_calc(
            int(global_element.Test_channel))
        global_element.CU_intance.set_gms_loss(ulfre, dlfre)

        # RESET SA
        # global_element.SA_intance.resetself()

        # 设置SA的线损
        # global_element.SA_intance.set_loss(ulfre)

        # SA检查DUT是否有发射对应信号
        # global_element.SA_intance.check_gsm_signal()

        # 开始SA的设置

        # 取值
        if mode_str == 'GSM':
            ave_power = global_element.CU_intance.get_gsm_power()
        elif mode_str == 'GPRS' or mode_str == 'EGPRS':
            ave_power = global_element.CU_intance.get_gprs_power()
        global_element.Test_remark = 'Reporting Only'
        report_handle.Reporttool(ave_power, 'None', 'None')

        # 输出EIRP/ERP
        if global_element.Test_band == 'GSM850':
            global_element.Test_item = 'ERP'
            activehighlimit = '38.45'  # <= 7W(38.45dBm)
            try:
                erp_result = str(
                    format(eval(ave_power) + eval(att_gain) - 2.15, '.2f'))
            except:
                erp_result = 'NULL'
            global_element.Test_remark = 'ERP = Conducted Power + ATT gain(' + att_gain + ') - 2.15'
        else:
            global_element.Test_item = 'EIRP'
            activehighlimit = '33'  # <= 2W(33dBm)
            try:
                erp_result = str(
                    format(eval(ave_power) + eval(att_gain), '.2f'))
            except:
                erp_result = 'NULL'
            global_element.Test_remark = 'EIRP = Conducted Power + ATT gain(' + att_gain + ')'

        report_handle.Reporttool(erp_result, 'None', activehighlimit)
        global_element.Test_remark = ''
Exemple #3
0
def ConductedSpuriousemissions(testitem, mode_str):
    # 停止功能函数接口
    if global_element.Test_band == 'Band II' or global_element.Test_band == 'Band IV' \
            or global_element.Test_band == 'Band V':
        global_element.Test_item = 'Conducted Spurious emissions'
        global_element.emitsingle.stateupdataSingle.emit('Testing in progress of Conducted Spurious emissions……,Band: %s,Channel:%s' %
                                                         (global_element.Test_band, global_element.Test_channel))
        # 停止功能函数接口

        # 将此项用户的参数初始化
        # 此项没有用户自定义参数

        # 设置CU的线损
        dlfre, ulfre = report_handle.freq_gsm_calc(int(global_element.Test_channel))
        global_element.CU_intance.set_wcdma_loss(ulfre, dlfre)

        # RESET SA
        global_element.SA_intance.resetself()

        # 设置SA的线损
        global_element.SA_intance.set_loss(ulfre)

        global_element.CU_intance.set_wcdma_pcl_max()

        # SA检查DUT是否有发射对应信号
        result = global_element.SA_intance.check_gsm_signal()
        if result == False:
            global_element.Test_remark = 'SA did not detect the signal!'
            report_handle.Reporttool('NULL', 'None', 'None')
            global_element.Test_remark = ''
        else:
            global_element.emitsingle.stateupdataSingle.emit('SA detection signal is successful!')

            # 开始SA的设置
            global_element.SA_intance.settrace('1', 'MAX')
            global_element.SA_intance.sweepconfig(True, True, '', '', '')

            # 停止功能函数接口

            result = global_element.SA_intance.wcdmafcc_cse_set(global_element.Test_band)

            global_element.Test_remark = 'Reference screenshot of this result!'
            if result == '1':
                report_handle.Reporttool('1', '-1', '1')
            else:
                report_handle.Reporttool('0', '-1', '1')

            # 截图
            picturepath = global_element.reportpath[:global_element.reportpath.index('.')]
            if not os.path.isdir(picturepath + '/WCDMA FCC/Conducted Spurious emissions'):
                os.makedirs(picturepath + '/WCDMA FCC/Conducted Spurious emissions')

            picturepath_final = picturepath + '/WCDMA FCC/Conducted Spurious emissions/' + mode_str \
                                + ' ' + global_element.Test_band + ' Channel' + global_element.Test_channel + '.JPG'
            global_element.SA_intance.PrtScn(picturepath_final)

            global_element.Test_remark = ''
Exemple #4
0
def Frequencystability(testitem, mode_str):
    if global_element.Test_band == 'Band II' or global_element.Test_band == 'Band IV' \
            or global_element.Test_band == 'Band V':
        global_element.Test_item = 'Frequency stability'
        global_element.emitsingle.stateupdataSingle.emit('Testing in progress of Frequency stability……,Band: %s,Channel:%s' %
                                                         (global_element.Test_band, global_element.Test_channel))
        # 停止功能函数接口

        # 将此项用户的参数初始化
        # 此项没有用户自定义参数

        # 设置CU的线损
        dlfre, ulfre = report_handle.freq_gsm_calc(int(global_element.Test_channel))
        global_element.CU_intance.set_wcdma_loss(ulfre, dlfre)

        # 停止功能函数接口

        if mode_str == 'WCDMA':
            result = global_element.CU_intance.get_wcdma_frequencyerror(ulfre)

        global_element.Test_remark = 'Unit: ppm'

        report_handle.Reporttool(result, 'None', '2.5')

        global_element.Test_remark = ''
Exemple #5
0
def Frequencystability(item_dict, mode_str):
    if global_element.Test_band == 'GSM850' or global_element.Test_band == 'PCS1900':
        global_element.Test_item = 'Frequency stability'
        global_element.emitsingle.stateupdataSingle.emit(
            'Testing in progress of Frequency stability……,Channel:%s,PCL:%s' %
            (global_element.Test_channel, global_element.Test_pcl))
        # 停止功能函数接口

        # 将此项用户的参数初始化
        # 此项没有用户自定义参数

        # 设置CU的线损
        dlfre, ulfre = report_handle.freq_gsm_calc(
            int(global_element.Test_channel))
        global_element.CU_intance.set_gms_loss(ulfre, dlfre)

        # 停止功能函数接口

        if mode_str == 'GSM':
            result = global_element.CU_intance.get_gsm_freerror(ulfre)
        elif mode_str == 'GPRS' or mode_str == 'EGPRS':
            result = global_element.CU_intance.get_gprs_freerror(ulfre)

        global_element.Test_remark = 'Unit: ppm'

        report_handle.Reporttool(result, 'None', '2.5')

        global_element.Test_remark = ''
Exemple #6
0
def Frequencystability(testitem):
    if global_element.Test_lte_bandwidth == '10MHz':

        # 此项支持channel(10MHz 的 MID channel)
        channel_support_list = [
            '18900', '20175', '20525', '21100', '23095', '23790', '26365',
            '26865', '38000', '40620'
        ]

        if global_element.Test_channel in channel_support_list:

            global_element.Test_item = 'Frequency stability'
            global_element.emitsingle.stateupdataSingle.emit(
                'Testing in progress of Frequency stability……,Band: %s,Bandwidth: %s, '
                'Channel:%s' %
                (global_element.Test_band, global_element.Test_lte_bandwidth,
                 global_element.Test_channel))
            # 停止功能函数接口

            # 将此项用户的参数初始化
            RB_str = testitem['parms']['Parm'][0]['Value']
            mode_str = testitem['parms']['Parm'][1]['Value']

            # 设置CU的线损
            dlfre, ulfre = report_handle.freq_gsm_calc(
                int(global_element.Test_channel))
            global_element.CU_intance.set_lte_loss(ulfre, dlfre)

            # 设置lte为最大功控
            global_element.CU_intance.set_lte_maxpower()

            global_element.CU_intance.set_lte_ul_modeandRB(mode_str, '1')
            global_element.CU_intance.set_lte_ul_RBoffset('LOW')
            global_element.Test_modulation = mode_str
            global_element.Test_lte_RB = 'RB: 1'
            time.sleep(2)

            # # 检查Handover后连接是否正常
            # time.sleep(2)
            # state = global_element.CU_intance.lte_connect_state()
            # if state == False:
            #     global_element.testseq_judgement_list.append('Inconclusive')
            #     return

            result = global_element.CU_intance.get_lte_frequencyerror(ulfre)

            global_element.Test_remark = 'Unit: ppm'

            report_handle.Reporttool(result, 'None', '2.5')

            global_element.Test_remark = ''
Exemple #7
0
def peaktoaverageratio(testitem, mode_str):
    if global_element.Test_band == 'Band II' or global_element.Test_band == 'Band IV' \
            or global_element.Test_band == 'Band V':
        global_element.Test_item = 'Peak-to-Average Ratio'
        global_element.emitsingle.stateupdataSingle.emit('Testing in progress of Peak-to-Average Ratio……,Band: %s,Channel:%s' %
                                                         (global_element.Test_band, global_element.Test_channel))
        # 停止功能函数接口

        # 将此项用户的参数初始化
        # att_gain = item_dict['parms']['Parm']['Value']

        # 设置CU的线损
        dlfre, ulfre = report_handle.freq_gsm_calc(int(global_element.Test_channel))
        global_element.CU_intance.set_wcdma_loss(ulfre, dlfre)

        # RESET SA
        global_element.SA_intance.resetself()

        # 设置SA的线损
        global_element.SA_intance.set_loss(ulfre)

        global_element.CU_intance.set_wcdma_pcl_max()

        # SA检查DUT是否有发射对应信号
        result = global_element.SA_intance.check_gsm_signal()
        if result == False:
            global_element.Test_remark = 'SA did not detect the signal!'
            report_handle.Reporttool('NULL', 'None', '13')
            global_element.Test_remark = ''
        else:
            global_element.emitsingle.stateupdataSingle.emit('SA detection signal is successful!')

            # 开始SA的设置
            global_element.SA_intance.set_reflevel('40')
            global_element.SA_intance.setcenterfrequency(ulfre)
            global_element.SA_intance.setRbwVbw('1', '3')
            global_element.SA_intance.setspan('1')
            global_element.SA_intance.settrace('1', 'MAX')
            global_element.SA_intance.setdetector('RMS')
            global_element.SA_intance.sweepconfig(False, True, '', '200', '')

            # 停止功能函数接口

            result = global_element.SA_intance.CCDFON_and_get_value()

            global_element.Test_remark = 'Unit: dB'
            # 取值
            report_handle.Reporttool(result, 'None', '13')

            # 截图
            picturepath = global_element.reportpath[:global_element.reportpath.index('.')]
            if not os.path.isdir(picturepath + '/WCDMA FCC/Peak-to-Average Ratio'):
                os.makedirs(picturepath + '/WCDMA FCC/Peak-to-Average Ratio')

            picturepath_final = picturepath + '/WCDMA FCC/Peak-to-Average Ratio/' + mode_str + ' ' + global_element.Test_band \
                                + ' Channel' + global_element.Test_channel + '.JPG'
            global_element.SA_intance.PrtScn(picturepath_final)

            global_element.SA_intance.CCDFOFF()

            global_element.Test_remark = ''
Exemple #8
0
def numberofchannel(item_dict):
    if global_element.BT2_number_of_channel_istested == False:
        packettype_list = ['DH5']
        ulfre = report_handle.fre_bt2_calc(global_element.Test_channel)
        if int(global_element.Test_channel) < 39:
            dlfre = '2480'
        else:
            dlfre = '2402'
        temp_channel = global_element.Test_channel
        global_element.Test_channel = 'Hopping Frequency'
        global_element.Test_item = 'Number of Hopping Channel'
        for packettype in packettype_list:
            global_element.Test_bt_packetype = packettype
            global_element.emitsingle.stateupdataSingle.emit('Testing in progress of Number of Hopping Channel: Channel ' +
                                                             global_element.Test_channel + ' Packet Type: ' + packettype)

            # 设置 Packet Type, hopping type, pattern type
            global_element.CU_intance.set_bt_parms(packettype, True)

            # 将此项用户的参数初始化
            low_limit = item_dict['limits']['limit']['low']
            high_limit = item_dict['limits']['limit']['high']

            # 设置CU的线损
            global_element.CU_intance.set_bt_loss(ulfre, dlfre)

            # RESET SA
            global_element.SA_intance.resetself()

            # 设置SA的线损
            global_element.SA_intance.set_loss(ulfre)

            # # SA检查DUT是否有发射对应信号
            # result = global_element.SA_intance.check_bt_signal()
            #
            # if result == False:
            #     global_element.Test_remark = 'SA没检测到信号'
            #     report_handle.Reporttool('NULL', 'None', 'None')
            #     global_element.Test_remark = ''
            # else:
            #     global_element.emitsingle.stateupdataSingle.emit('SA检测信号成功!')

            # 开始SA的设置
            global_element.SA_intance.set_reflevel('20')
            global_element.SA_intance.setstartstopfre('2400', '2483.5')
            global_element.SA_intance.setRbwVbw('0.3', '1')
            global_element.SA_intance.settrace('1', 'MAX')
            global_element.SA_intance.setdetector('MAX PEAK')
            global_element.SA_intance.sweepconfig(True, True, '', '', '')

            global_element.SA_intance.cont_sweep_seconds(20)

            global_element.SA_intance.reflev_pos('90')
            time.sleep(0.2)
            global_element.SA_intance.reflev_pos('100')

            global_element.SA_intance.markertotrace('1', '1')
            global_element.SA_intance.markertopeak('1')

            count_peak = global_element.SA_intance.peakmarkercnt('1')

            global_element.Test_remark = 'Number of Hopping Frequency(Channel)'
            report_handle.Reporttool(count_peak, low_limit, high_limit)

            global_element.Test_remark = 'Adaptive Hopping Frequency(Channel)'
            report_handle.Reporttool('20', low_limit, high_limit)

            # 截图
            picturepath = global_element.reportpath[:global_element.reportpath.index('.')]
            if not os.path.isdir(picturepath + '/BT2.0/FCC/Number of Hopping Channel'):
                os.makedirs(picturepath + '/BT2.0/FCC/Number of Hopping Channel')

            picturepath_final = picturepath + \
                                '/BT2.0/FCC/Number of Hopping Channel/BT2.0 Number of Hopping Channel.JPG'
            global_element.SA_intance.PrtScn(picturepath_final)

            global_element.Test_remark = ''
            global_element.BT2_number_of_channel_istested = True
            global_element.Test_channel = temp_channel
Exemple #9
0
def db20_bandwidth(item_dict):
    packettype_str = item_dict['parms']['Parm']['Value']
    packettype_list = packettype_str.split('/')
    global_element.Test_item = '20dB bandwidth Channel'
    for packettype in packettype_list:
        global_element.Test_bt_packetype = packettype
        global_element.emitsingle.stateupdataSingle.emit('Testing in progress of 20dB bandwidth Channel: ' +
                                                         global_element.Test_channel + ' Packet Type: ' + packettype)

        # 设置 Packet Type, hopping type, pattern type
        global_element.CU_intance.set_bt_parms(packettype, False)

        ulfre = report_handle.fre_bt2_calc(global_element.Test_channel)
        if int(global_element.Test_channel) < 39:
            dlfre = '2480'
        else:
            dlfre = '2402'

        # 将此项用户的参数初始化
        low_limit = item_dict['limits']['limit']['low']
        high_limit = item_dict['limits']['limit']['high']

        # 设置CU的线损
        global_element.CU_intance.set_bt_loss(ulfre, dlfre)

        # RESET SA
        global_element.SA_intance.resetself()

        # 设置SA的线损
        global_element.SA_intance.set_loss(ulfre)

        # SA检查DUT是否有发射对应信号
        result = global_element.SA_intance.check_bt_signal()

        if result == False:
            global_element.Test_remark = 'SA did not detect the signal'
            report_handle.Reporttool('NULL', 'None', 'None')
            global_element.Test_remark = ''
        else:
            global_element.emitsingle.stateupdataSingle.emit('SA detection signal is successful!')

            # 开始SA的设置
            global_element.SA_intance.set_reflevel('20')
            global_element.SA_intance.setcenterfrequency(ulfre)
            global_element.SA_intance.setRbwVbw('0.03', '0.3')
            if packettype == 'DH5':
                global_element.SA_intance.setspan('2')
            else:
                global_element.SA_intance.setspan('3')
            global_element.SA_intance.settrace('1', 'MAX')
            global_element.SA_intance.setdetector('MAX PEAK')
            global_element.SA_intance.sweepconfig(True, True, '', '', '')

            global_element.SA_intance.markertotrace('1', '1')
            global_element.SA_intance.markertopeak('1')

            OBW = global_element.SA_intance.NDBDBW('20')     # 取20 dB带宽值
            dict_key = global_element.Test_channel + '_' + packettype
            global_element.BT2_fcc_20dbbw_result[dict_key] = OBW

            global_element.Test_remark = 'Uint: kHz'
            report_handle.Reporttool(OBW, low_limit, high_limit)

            # 截图
            picturepath = global_element.reportpath[:global_element.reportpath.index('.')]
            if not os.path.isdir(picturepath + '/BT2.0/FCC/20 dB BandWidth'):
                os.makedirs(picturepath + '/BT2.0/FCC/20 dB BandWidth')

            picturepath_final = picturepath + '/BT2.0/FCC/20 dB BandWidth/BT2.0 ' + packettype + ' CH' + \
                                global_element.Test_band + ' CH' + global_element.Test_channel + ' ' + ulfre + \
                                'MHz.JPG'
            global_element.SA_intance.PrtScn(picturepath_final)

            global_element.Test_remark = ''
Exemple #10
0
def pct99OccupiedBandwidth(item_dict, mode_str):
    if global_element.Test_band == 'GSM850' or global_element.Test_band == 'PCS1900':
        global_element.Test_item = '99% Occupied Bandwidth'
        global_element.emitsingle.stateupdataSingle.emit(
            'Testing in progress of 99pct Occupied Bandwidth……,Channel:%s,PCL:%s'
            % (global_element.Test_channel, global_element.Test_pcl))
        # 停止功能函数接口

        # 将此项用户的参数初始化
        # 此项没有用户自定义参数

        # 设置CU的线损
        dlfre, ulfre = report_handle.freq_gsm_calc(
            int(global_element.Test_channel))
        global_element.CU_intance.set_gms_loss(ulfre, dlfre)

        # RESET SA
        global_element.SA_intance.resetself()

        # 设置SA的线损
        global_element.SA_intance.set_loss(ulfre)

        # SA检查DUT是否有发射对应信号
        result = global_element.SA_intance.check_gsm_signal()
        if result == True:
            global_element.emitsingle.stateupdataSingle.emit(
                'SA detection signal is successful!')
        else:
            return

        # 开始SA的设置

        global_element.SA_intance.set_reflevel('40')
        global_element.SA_intance.setcenterfrequency(ulfre)
        global_element.SA_intance.setRbwVbw('0.003', '0.01')
        global_element.SA_intance.setspan('1')
        global_element.SA_intance.settrace('1', 'MAX')
        global_element.SA_intance.setdetector('MAX PEAK')
        global_element.SA_intance.sweepconfig(True, True, '', '', '')

        # 停止功能函数接口

        OBW = global_element.SA_intance.pctBW('99')  # 取99%带宽值

        # 停止功能函数接口

        global_element.SA_intance.markertotrace('1', '1')
        global_element.SA_intance.markertopeak('1')

        global_element.Test_remark = 'Uint: kHz'
        report_handle.Reporttool(OBW, 'None', 'None')

        # 截图
        picturepath = global_element.reportpath[:global_element.reportpath.
                                                index('.')]
        if not os.path.isdir(picturepath + '/GSM FCC/99% Occupied Bandwidth'):
            os.makedirs(picturepath + '/GSM FCC/99% Occupied Bandwidth')

        picturepath_final = picturepath + '/GSM FCC/99% Occupied Bandwidth/' + mode_str + ' ' + global_element.Test_band\
                            + ' Channel' + global_element.Test_channel + ' PCL' + global_element.Test_pcl + '.JPG'
        global_element.SA_intance.PrtScn(picturepath_final)

        global_element.Test_remark = ''
Exemple #11
0
def peaktoaverageratio(item_dict, mode_str):
    if global_element.Test_band == 'GSM850' or global_element.Test_band == 'PCS1900':
        global_element.Test_item = 'Peak-to-Average Ratio'
        global_element.emitsingle.stateupdataSingle.emit(
            'Testing in progress of Peak-to-Average Ratio,Channel:%s,PCL:%s' %
            (global_element.Test_channel, global_element.Test_pcl))
        # 停止功能函数接口

        # 将此项用户的参数初始化
        # att_gain = item_dict['parms']['Parm']['Value']

        # 设置CU的线损
        dlfre, ulfre = report_handle.freq_gsm_calc(
            int(global_element.Test_channel))
        global_element.CU_intance.set_gms_loss(ulfre, dlfre)

        # RESET SA
        global_element.SA_intance.resetself()

        # 设置SA的线损
        global_element.SA_intance.set_loss(ulfre)

        # SA检查DUT是否有发射对应信号
        result = global_element.SA_intance.check_gsm_signal()
        if result == False:
            global_element.Test_remark = 'SA did not detect the signal!'
            report_handle.Reporttool('NULL', 'None', '13')
            global_element.Test_remark = ''
        else:
            global_element.emitsingle.stateupdataSingle.emit(
                'SA detection signal is successful!')

            # 开始SA的设置
            global_element.SA_intance.set_reflevel('40')
            global_element.SA_intance.setcenterfrequency(ulfre)
            global_element.SA_intance.setRbwVbw('1', '3')
            global_element.SA_intance.setspan('1')
            global_element.SA_intance.settrace('1', 'MAX')
            global_element.SA_intance.setdetector('RMS')
            global_element.SA_intance.sweepconfig(True, True, '', '', '')

            # 停止功能函数接口

            # global_element.SA_intance.startsweep()
            # global_element.SA_intance.sweepiscompleted('200')
            global_element.SA_intance.cont_sweep_seconds(5)

            # 停止功能函数接口

            global_element.SA_intance.settrace('1', 'VIEW')
            global_element.SA_intance.settrace('2', 'MAX')
            # global_element.SA_intance.startsweep()
            # time.sleep(0.5)
            # global_element.SA_intance.sweepiscompleted('200')
            global_element.SA_intance.cont_sweep_seconds(5)

            global_element.SA_intance.markertotrace('1', '1')
            global_element.SA_intance.markertopeak('1')

            global_element.SA_intance.markertotrace('2', '2')
            global_element.SA_intance.markertopeak('2')

            # 停止功能函数接口

            global_element.Test_remark = 'Unit: dB'
            # 取值
            marker1amp = global_element.SA_intance.marker_Y_value('1')
            marker2amp = global_element.SA_intance.marker_Y_value('2')
            amp_delta = format(float(marker2amp) - float(marker1amp), '.2f')

            report_handle.Reporttool(amp_delta, 'None', '13')

            # 截图
            picturepath = global_element.reportpath[:global_element.reportpath.
                                                    index('.')]
            if not os.path.isdir(picturepath +
                                 '/GSM FCC/Peak-to-Average Ratio'):
                os.makedirs(picturepath + '/GSM FCC/Peak-to-Average Ratio')

            picturepath_final = picturepath + '/GSM FCC/Peak-to-Average Ratio/' + mode_str + ' ' + global_element.Test_band\
                                + ' Channel' + global_element.Test_channel + ' PCL' + global_element.Test_pcl + '.JPG'
            global_element.SA_intance.PrtScn(picturepath_final)

            global_element.Test_remark = ''
Exemple #12
0
def dwelltime(item_dict):
    if global_element.BT2_dwelltime_istested == False:
        packettype_str = item_dict['parms']['Parm']['Value']
        packettype_list = packettype_str.split('/')
        ulfre = report_handle.fre_bt2_calc(global_element.Test_channel)
        if int(global_element.Test_channel) < 39:
            dlfre = '2480'
        else:
            dlfre = '2402'
        tempchannel = global_element.Test_channel
        global_element.Test_channel = 'Hopping Frequency'
        global_element.Test_item = 'Dwell Time'
        for packettype in packettype_list:
            global_element.Test_bt_packetype = packettype
            global_element.emitsingle.stateupdataSingle.emit('Testing in progress of Dwell Time: ' + ' Packet Type: ' + packettype)

            # 设置 Packet Type, hopping type, pattern type
            global_element.CU_intance.set_bt_parms(packettype, True)

            # 将此项用户的参数初始化
            low_limit = item_dict['limits']['limit']['low']
            high_limit = item_dict['limits']['limit']['high']

            # 设置CU的线损
            global_element.CU_intance.set_bt_loss(ulfre, dlfre)

            # RESET SA
            global_element.SA_intance.resetself()

            # 设置SA的线损
            global_element.SA_intance.set_loss(ulfre)

            # # SA检查DUT是否有发射对应信号
            # result = global_element.SA_intance.check_bt_signal()
            #
            # if result == False:
            #     global_element.Test_remark = 'SA没检测到信号'
            #     report_handle.Reporttool('NULL', 'None', 'None')
            #     global_element.Test_remark = ''
            # else:
            #     global_element.emitsingle.stateupdataSingle.emit('SA检测信号成功!')

            # 开始SA的设置
            global_element.SA_intance.set_reflevel('20')
            global_element.SA_intance.setcenterfrequency('2480')
            global_element.SA_intance.setspan('0')
            global_element.SA_intance.setRbwVbw('1', '1')
            global_element.SA_intance.settrace('1', 'MAX')
            global_element.SA_intance.setdetector('MAX PEAK')
            global_element.SA_intance.sweepconfig(True, False, '0.015', '', '')
            global_element.SA_intance.stopcontsweep()

            global_element.SA_intance.trig_ifp_set()

            global_element.SA_intance.cont_sweep_seconds(15)

            global_element.SA_intance.markertotrace('1', '1')
            global_element.SA_intance.markertopeak('1')

            global_element.SA_intance.MoveMarker('1', '0')

            movestep = '0.00001'
            moveposition = '0'
            marker1amp1 = '0'
            marker1amp2 = '0'
            marker2amp1 = '0'
            marker2amp2 = '0'
            marker1freq2 = '0'
            while eval(marker1amp2) - eval(marker1amp1) < 10:
                moveposition = str(eval(moveposition) + eval(movestep))
                marker1amp1 = global_element.SA_intance.marker_Y_value('1')
                global_element.SA_intance.MoveMarker('1', moveposition)
                marker1amp2 = global_element.SA_intance.marker_Y_value('1')
                marker1freq2 = global_element.SA_intance.marker_X_value('1')

            global_element.SA_intance.markertotrace('2', '1')
            global_element.SA_intance.markertopeak('2')
            global_element.SA_intance.MoveMarker('2', marker1freq2)

            while eval(marker2amp1) - eval(marker2amp2) < 10:
                moveposition = str(eval(moveposition) + eval(movestep))
                marker2amp1 = global_element.SA_intance.marker_Y_value('2')
                global_element.SA_intance.MoveMarker('2', moveposition)
                marker2amp2 = global_element.SA_intance.marker_Y_value('2')

            global_element.SA_intance.MoveMarker('2', str(eval(moveposition) - eval(movestep)))

            global_element.SA_intance.reflev_pos('95')
            time.sleep(0.2)
            global_element.SA_intance.reflev_pos('100')

            PacTransferTime = global_element.SA_intance.MarkerDLT()

            DwellTimeNormal = format(eval(PacTransferTime) * 106.67 * 1e3, '.2f')
            DwellTimeAFH = format(eval(PacTransferTime) * 53.33 * 1e3, '.2f')

            global_element.Test_remark = 'Unit: ms, Packet Transfer Time: ' + format(eval(PacTransferTime) * 1e3, '.2f') + 'ms NOR'

            report_handle.Reporttool(DwellTimeNormal, low_limit, high_limit)

            global_element.Test_remark = 'Unit: ms, Packet Transfer Time: ' + format(eval(PacTransferTime) * 1e3,
                                                                                     '.2f') + 'ms AFH'
            report_handle.Reporttool(DwellTimeAFH, low_limit, high_limit)


            # 截图
            picturepath = global_element.reportpath[:global_element.reportpath.index('.')]
            if not os.path.isdir(picturepath + '/BT2.0/FCC/Dwell Time'):
                os.makedirs(picturepath + '/BT2.0/FCC/Dwell Time')

            picturepath_final = picturepath + '/BT2.0/FCC/Dwell Time/BT2.0 ' + packettype + '.JPG'
            global_element.SA_intance.PrtScn(picturepath_final)

        global_element.BT2_dwelltime_istested = True
        global_element.Test_remark = ''
        global_element.Test_channel = tempchannel
Exemple #13
0
def peakoutpurtpower(item_dict):
    packettype_str = item_dict['parms']['Parm']['Value']
    packettype_list = packettype_str.split('/')
    global_element.Test_item = 'Peak Output Power'
    for packettype in packettype_list:
        global_element.Test_bt_packetype = packettype
        global_element.emitsingle.stateupdataSingle.emit('Testing in progress of Peak Output Power: Channel ' +
                                                         global_element.Test_channel + ' Packet Type: ' + packettype)

        # 设置 Packet Type, hopping type, pattern type
        global_element.CU_intance.set_bt_parms(packettype, False)

        ulfre = report_handle.fre_bt2_calc(global_element.Test_channel)
        if int(global_element.Test_channel) < 39:
            dlfre = '2480'
        else:
            dlfre = '2402'

        # 将此项用户的参数初始化
        low_limit = item_dict['limits']['limit']['low']
        high_limit = item_dict['limits']['limit']['high']

        # 设置CU的线损
        global_element.CU_intance.set_bt_loss(ulfre, dlfre)

        # RESET SA
        global_element.SA_intance.resetself()

        # 设置SA的线损
        global_element.SA_intance.set_loss(ulfre)

        # SA检查DUT是否有发射对应信号
        result = global_element.SA_intance.check_bt_signal()

        if result == False:
            global_element.Test_remark = 'SA did not detect the signal'
            report_handle.Reporttool('NULL', 'None', 'None')
            global_element.Test_remark = ''
        else:
            global_element.emitsingle.stateupdataSingle.emit('SA detection signal is successful!')

            # 开始SA的设置
            global_element.SA_intance.set_reflevel('20')
            global_element.SA_intance.setcenterfrequency(ulfre)
            global_element.SA_intance.setRbwVbw('2', '3')
            global_element.SA_intance.setspan('5')
            global_element.SA_intance.settrace('1', 'MAX')
            global_element.SA_intance.setdetector('MAX PEAK')
            global_element.SA_intance.sweepconfig(True, True, '', '', '')

            global_element.SA_intance.cont_sweep_seconds(10)

            global_element.SA_intance.markertotrace('1', '1')
            global_element.SA_intance.markertopeak('1')

            marker1amp = global_element.SA_intance.marker_Y_value('1')

            global_element.Test_remark = 'Unit: dBm'
            report_handle.Reporttool(marker1amp, low_limit, high_limit)

            # 截图
            picturepath = global_element.reportpath[:global_element.reportpath.index('.')]
            if not os.path.isdir(picturepath + '/BT2.0/FCC/Peak Output Power'):
                os.makedirs(picturepath + '/BT2.0/FCC/Peak Output Power')

            picturepath_final = picturepath + '/BT2.0/FCC/Peak Output Power/BT2.0 ' + packettype + ' CH' + \
                                global_element.Test_band + ' CH' + global_element.Test_channel + ' ' + ulfre + \
                                'MHz.JPG'
            global_element.SA_intance.PrtScn(picturepath_final)

            global_element.Test_remark = ''
Exemple #14
0
def Conductedoutputpower(testitem, mode_str):
    """
    :param testitem:
    :param mode_str:
    :return:
    """
    if global_element.Test_band == 'Band II' or global_element.Test_band == 'Band IV' \
            or global_element.Test_band == 'Band V':
        global_element.Test_item = 'Conducted output power'
        global_element.emitsingle.stateupdataSingle.emit('Testing in progress of Conducted output power……,Band: %s,Channel:%s' %
                                                         (global_element.Test_band, global_element.Test_channel))
        # 停止功能函数接口

        # 将此项用户的参数初始化
        att_gain = testitem['parms']['Parm']['Value']

        # 设置CU的线损
        dlfre, ulfre = report_handle.freq_gsm_calc(int(global_element.Test_channel))
        global_element.CU_intance.set_wcdma_loss(ulfre, dlfre)

        # RESET SA
        # global_element.SA_intance.resetself()

        # 设置SA的线损
        # global_element.SA_intance.set_loss(ulfre)

        # SA检查DUT是否有发射对应信号
        # global_element.SA_intance.check_gsm_signal()

        # 开始SA的设置

        # 取值
        if mode_str == 'WCDMA':
            ave_power = global_element.CU_intance.get_wcdma_power()
        # elif mode_str == 'GPRS' or mode_str == 'EGPRS':
        #     ave_power = global_element.CU_intance.get_gprs_power()
        global_element.Test_remark = 'Reporting Only'
        report_handle.Reporttool(ave_power, 'None', 'None')

        # 输出EIRP/ERP
        if global_element.Test_band == 'Band V':
            global_element.Test_item = 'ERP'
            activehighlimit = '38.45'            # <= 7W(38.45dBm)
            try:
                erp_result = str(format(eval(ave_power) + eval(att_gain) - 2.15, '.2f'))
            except:
                erp_result = 'NULL'
            global_element.Test_remark = 'ERP = Conducted Power + ATT gain(' + att_gain + ') - 2.15'
        elif global_element.Test_band == 'Band II':
            global_element.Test_item = 'EIRP'
            activehighlimit = '33'               # <= 2W(33dBm)
            try:
                erp_result = str(format(eval(ave_power) + eval(att_gain), '.2f'))
            except:
                erp_result = 'NULL'
            global_element.Test_remark = 'EIRP = Conducted Power + ATT gain(' + att_gain + ')'
        elif global_element.Test_band == 'Band IV':
            global_element.Test_item = 'EIRP'
            activehighlimit = '30'  # <= 1W(30dBm)
            try:
                erp_result = str(format(eval(ave_power) + eval(att_gain), '.2f'))
            except:
                erp_result = 'NULL'
            global_element.Test_remark = 'EIRP = Conducted Power + ATT gain(' + att_gain + ')'

        report_handle.Reporttool(erp_result, 'None', activehighlimit)
        global_element.Test_remark = ''
Exemple #15
0
def dB26OccupiedBandwidth(testitem):

    global_element.Test_item = '26dB Occupied Bandwidth'
    global_element.emitsingle.stateupdataSingle.emit(
        'Testing in progress of 26dB Occupied Bandwidth……,Band: %s,Bandwidth: %s, '
        'Channel:%s' %
        (global_element.Test_band, global_element.Test_lte_bandwidth,
         global_element.Test_channel))
    # 停止功能函数接口

    # 将此项用户的参数初始化
    RB_str = testitem['parms']['Parm'][0]['Value']
    mode_str = testitem['parms']['Parm'][1]['Value']
    activelowlimit = testitem['limits']['limit']['low']
    activehighlimit = testitem['limits']['limit']['high']

    # 设置CU的线损
    dlfre, ulfre = report_handle.freq_gsm_calc(int(
        global_element.Test_channel))
    global_element.CU_intance.set_lte_loss(ulfre, dlfre)

    # RESET SA
    global_element.SA_intance.resetself()

    # 设置SA的线损
    global_element.SA_intance.set_loss(ulfre)

    # 设置lte为最大功控
    global_element.CU_intance.set_lte_maxpower()

    # SA检查DUT是否有发射对应信号
    result = global_element.SA_intance.check_gsm_signal()
    if result == False:
        global_element.Test_remark = 'SA did not detect the signal!'
        report_handle.Reporttool('NULL', activelowlimit, activehighlimit)
        global_element.Test_remark = ''
    else:
        global_element.emitsingle.stateupdataSingle.emit(
            'SA detection signal is successful!')

        mode_list = mode_str.split('/')
        rb = int(eval(global_element.Test_lte_bandwidth[:-3]) * 5)
        if global_element.Test_lte_bandwidth == '1.4MHz':
            rb -= 1

        for mode in mode_list:
            # 停止功能函数接口
            global_element.Test_modulation = mode
            global_element.CU_intance.set_lte_ul_modeandRB(mode, str(rb))
            global_element.Test_lte_RB = 'RB: ' + str(rb)

            # # 检查Handover后连接是否正常
            # time.sleep(2)
            # state = global_element.CU_intance.lte_connect_state()
            # if state == False:
            #     global_element.testseq_judgement_list.append('Inconclusive')
            #     return

            # 开始SA的设置
            if global_element.Test_lte_bandwidth == '1.4MHz':
                rbw_str = '0.03'
            elif global_element.Test_lte_bandwidth == '3MHz' or global_element.Test_lte_bandwidth == '5MHz':
                rbw_str = '0.1'
            elif global_element.Test_lte_bandwidth == '10MHz' or global_element.Test_lte_bandwidth == '15MHz':
                rbw_str = '0.3'
            elif global_element.Test_lte_bandwidth == '20MHz':
                rbw_str = '1'

            global_element.SA_intance.set_reflevel('30')
            global_element.SA_intance.setcenterfrequency(ulfre)
            global_element.SA_intance.setRbwVbw(rbw_str,
                                                str(eval(rbw_str) * 3))
            global_element.SA_intance.setspan(
                str(eval(global_element.Test_lte_bandwidth[:-3]) * 2))
            global_element.SA_intance.settrace('1', 'MAX')
            global_element.SA_intance.setdetector('MAX PEAK')
            global_element.SA_intance.sweepconfig(True, True, '', '', '')

            # 停止功能函数接口

            global_element.SA_intance.markertotrace('1', '1')
            global_element.SA_intance.markertopeak('1')

            # 停止功能函数接口

            OBW = global_element.SA_intance.NDBDBW('26')  # 取26 dB带宽值
            OBW_final = format(eval(OBW) / 1000, '.2f')

            global_element.Test_remark = 'Uint: MHz'
            report_handle.Reporttool(OBW_final, activelowlimit,
                                     activehighlimit)

            # 截图
            picturepath = global_element.reportpath[:global_element.reportpath.
                                                    index('.')]
            if not os.path.isdir(picturepath +
                                 '/LTE FCC/26dB Occupied Bandwidth'):
                os.makedirs(picturepath + '/LTE FCC/26dB Occupied Bandwidth')

            picturepath_final = picturepath + '/LTE FCC/26dB Occupied Bandwidth/' + global_element.Test_band + ' BW' + \
                                global_element.Test_lte_bandwidth + ' Channel' + \
                                global_element.Test_channel + ' RB' + str(rb) + ' ' + mode + '.JPG'
            global_element.SA_intance.PrtScn(picturepath_final)

            global_element.Test_remark = ''
Exemple #16
0
def Conductedoutputpower(testitem):
    """
    :param testitem:
    :param mode_str:
    :return:
    """

    global_element.Test_item = 'Conducted output power'
    global_element.emitsingle.stateupdataSingle.emit(
        'Testing in progress of Conducted output power……,Band: %s,Bandwidth: %s, '
        'Channel:%s' %
        (global_element.Test_band, global_element.Test_lte_bandwidth,
         global_element.Test_channel))
    # 停止功能函数接口

    # 将此项用户的参数初始化
    att_gain = testitem['parms']['Parm'][0]['Value']
    RB_str = testitem['parms']['Parm'][1]['Value']
    mode_str = testitem['parms']['Parm'][2]['Value']
    low_limit_5_26 = testitem['limits']['limit'][0]['low']
    high_limit_5_26 = testitem['limits']['limit'][0]['high']
    low_limit_12_17 = testitem['limits']['limit'][1]['low']
    high_limit_12_17 = testitem['limits']['limit'][1]['high']
    low_limit_2_7_25_41 = testitem['limits']['limit'][2]['low']
    high_limit_2_7_25_41 = testitem['limits']['limit'][2]['high']
    low_limit_4 = testitem['limits']['limit'][3]['low']
    high_limit_4 = testitem['limits']['limit'][3]['high']

    # 设置CU的线损
    dlfre, ulfre = report_handle.freq_gsm_calc(int(
        global_element.Test_channel))
    global_element.CU_intance.set_lte_loss(ulfre, dlfre)

    # RESET SA
    # global_element.SA_intance.resetself()

    # 设置SA的线损
    # global_element.SA_intance.set_loss(ulfre)

    # SA检查DUT是否有发射对应信号
    # global_element.SA_intance.check_gsm_signal()

    # 开始SA的设置

    if global_element.Test_lte_bandwidth == '1.4MHz':
        RB_list = [1, 3, 6]
    elif global_element.Test_lte_bandwidth == '3MHz':
        RB_list = [1, 8, 15]
    elif global_element.Test_lte_bandwidth == '5MHz':
        RB_list = [1, 12, 25]
    elif global_element.Test_lte_bandwidth == '10MHz':
        RB_list = [1, 25, 50]
    elif global_element.Test_lte_bandwidth == '15MHz':
        RB_list = [1, 36, 75]
    elif global_element.Test_lte_bandwidth == '20MHz':
        RB_list = [1, 50, 100]
    else:
        RB_list = [1, 3, 6]

    mode_list = mode_str.split('/')
    RB_str_list = RB_str.split('/')

    for mode_index in range(len(mode_list)):
        # 停止功能函数接口
        global_element.Test_modulation = mode_list[mode_index]  # 更新全局变量mode
        for RB_indext in range(len(RB_str_list)):
            # 停止功能函数接口
            if RB_str_list[RB_indext] == '1RB':
                RB_count_index = 0
            elif RB_str_list[RB_indext] == 'PRB':
                RB_count_index = 1
            elif RB_str_list[RB_indext] == 'FRB':
                RB_count_index = 2
            else:
                RB_count_index = 0
            global_element.CU_intance.set_lte_ul_modeandRB(
                mode_list[mode_index], str(RB_list[RB_count_index]))

            if RB_list[RB_count_index] == 1:
                for pos in ['LOW', 'MID', 'HIGH']:
                    # 停止功能函数接口
                    global_element.CU_intance.set_lte_ul_RBoffset(pos)

                    global_element.Test_lte_RB = 'RB: %s, RB Pos: %s' % (str(
                        RB_list[RB_count_index]), pos)
                    time.sleep(2)

                    # # 检查Handover后连接是否正常
                    # time.sleep(2)
                    # state = global_element.CU_intance.lte_connect_state()
                    # if state == False:
                    #     global_element.testseq_judgement_list.append('Inconclusive')
                    #     return

                    # 取值
                    ave_power = global_element.CU_intance.get_lte_power()

                    global_element.Test_remark = 'Reporting Only'
                    report_handle.Reporttool(ave_power, 'None', 'None')

                    # 输出EIRP/ERP
                    if global_element.Test_band == 'FDD-LTE 5' or global_element.Test_band == 'FDD-LTE 26':
                        global_element.Test_item = 'ERP'
                        activehighlimit = high_limit_5_26
                        activelowlimit = low_limit_5_26
                        try:
                            erp_result = str(
                                format(
                                    eval(ave_power) + eval(att_gain) - 2.15,
                                    '.2f'))
                        except:
                            erp_result = 'NULL'
                        global_element.Test_remark = 'ERP = Conducted Power + ATT gain(' + att_gain + ') - 2.15'
                    elif global_element.Test_band == 'FDD-LTE 12' or global_element.Test_band == 'FDD-LTE 17':
                        global_element.Test_item = 'ERP'
                        activehighlimit = high_limit_12_17
                        activelowlimit = low_limit_12_17
                        try:
                            erp_result = str(
                                format(
                                    eval(ave_power) + eval(att_gain) - 2.15,
                                    '.2f'))
                        except:
                            erp_result = 'NULL'
                        global_element.Test_remark = 'ERP = Conducted Power + ATT gain(' + att_gain + ') - 2.15'
                    elif global_element.Test_band == 'FDD-LTE 2' or global_element.Test_band == 'FDD-LTE 25' or \
                            global_element.Test_band == 'FDD-LTE 7' or global_element.Test_band == 'TDD-LTE 41' or \
                            global_element.Test_band == 'TDD-LTE 38':
                        global_element.Test_item = 'EIRP'
                        activehighlimit = high_limit_2_7_25_41
                        activelowlimit = low_limit_2_7_25_41
                        try:
                            erp_result = str(
                                format(
                                    eval(ave_power) + eval(att_gain), '.2f'))
                        except:
                            erp_result = 'NULL'
                        global_element.Test_remark = 'EIRP = Conducted Power + ATT gain(' + att_gain + ')'
                    elif global_element.Test_band == 'FDD-LTE 4':
                        global_element.Test_item = 'EIRP'
                        activehighlimit = high_limit_4
                        activelowlimit = low_limit_4
                        try:
                            erp_result = str(
                                format(
                                    eval(ave_power) + eval(att_gain), '.2f'))
                        except:
                            erp_result = 'NULL'
                        global_element.Test_remark = 'EIRP = Conducted Power + ATT gain(' + att_gain + ')'

                    report_handle.Reporttool(erp_result, activelowlimit,
                                             activehighlimit)
                    global_element.Test_item = 'Conducted output power'
                    global_element.Test_remark = ''
            else:
                for pos in ['LOW', 'HIGH']:
                    # 停止功能函数接口
                    global_element.CU_intance.set_lte_ul_RBoffset(pos)

                    global_element.Test_lte_RB = 'RB: %s, RB Pos: %s' % (str(
                        RB_list[RB_indext]), pos)

                    # 取值
                    ave_power = global_element.CU_intance.get_lte_power()

                    global_element.Test_remark = 'Reporting Only'
                    report_handle.Reporttool(ave_power, 'None', 'None')

                    # 输出EIRP/ERP
                    if global_element.Test_band == 'FDD-LTE 5' or global_element.Test_band == 'FDD-LTE 26':
                        global_element.Test_item = 'ERP'
                        activehighlimit = high_limit_5_26
                        activelowlimit = low_limit_5_26
                        try:
                            erp_result = str(
                                format(
                                    eval(ave_power) + eval(att_gain) - 2.15,
                                    '.2f'))
                        except:
                            erp_result = 'NULL'
                        global_element.Test_remark = 'ERP = Conducted Power + ATT gain(' + att_gain + ') - 2.15'
                    elif global_element.Test_band == 'FDD-LTE 12' or global_element.Test_band == 'FDD-LTE 17':
                        global_element.Test_item = 'ERP'
                        activehighlimit = high_limit_12_17
                        activelowlimit = low_limit_12_17
                        try:
                            erp_result = str(
                                format(
                                    eval(ave_power) + eval(att_gain) - 2.15,
                                    '.2f'))
                        except:
                            erp_result = 'NULL'
                        global_element.Test_remark = 'ERP = Conducted Power + ATT gain(' + att_gain + ') - 2.15'
                    elif global_element.Test_band == 'FDD-LTE 2' or global_element.Test_band == 'FDD-LTE 25' or \
                            global_element.Test_band == 'FDD-LTE 7' or global_element.Test_band == 'TDD-LTE 41' or \
                            global_element.Test_band == 'TDD-LTE 38':
                        global_element.Test_item = 'EIRP'
                        activehighlimit = high_limit_2_7_25_41
                        activelowlimit = low_limit_2_7_25_41
                        try:
                            erp_result = str(
                                format(
                                    eval(ave_power) + eval(att_gain), '.2f'))
                        except:
                            erp_result = 'NULL'
                        global_element.Test_remark = 'EIRP = Conducted Power + ATT gain(' + att_gain + ')'
                    elif global_element.Test_band == 'FDD-LTE 4':
                        global_element.Test_item = 'EIRP'
                        activehighlimit = high_limit_4
                        activelowlimit = low_limit_4
                        try:
                            erp_result = str(
                                format(
                                    eval(ave_power) + eval(att_gain), '.2f'))
                        except:
                            erp_result = 'NULL'
                        global_element.Test_remark = 'EIRP = Conducted Power + ATT gain(' + att_gain + ')'

                    report_handle.Reporttool(erp_result, activelowlimit,
                                             activehighlimit)
                    global_element.Test_item = 'Conducted output power'
                    global_element.Test_remark = ''
Exemple #17
0
def peaktoaverageratio(testitem):
    global_element.Test_item = 'Peak-to-Average Ratio'
    global_element.emitsingle.stateupdataSingle.emit(
        'Testing in progress of Peak-to-Average Ratio……,Band: %s,Bandwidth: %s, '
        'Channel:%s' %
        (global_element.Test_band, global_element.Test_lte_bandwidth,
         global_element.Test_channel))
    # 停止功能函数接口

    # 将此项用户的参数初始化
    RB_str = testitem['parms']['Parm'][0]['Value']
    mode_str = testitem['parms']['Parm'][1]['Value']
    activelowlimit = testitem['limits']['limit']['low']
    activehighlimit = testitem['limits']['limit']['high']

    # 设置CU的线损
    dlfre, ulfre = report_handle.freq_gsm_calc(int(
        global_element.Test_channel))
    global_element.CU_intance.set_lte_loss(ulfre, dlfre)

    # RESET SA
    global_element.SA_intance.resetself()

    # 设置SA的线损
    global_element.SA_intance.set_loss(ulfre)

    # 设置lte为最大功控
    global_element.CU_intance.set_lte_maxpower()

    # SA检查DUT是否有发射对应信号
    result = global_element.SA_intance.check_gsm_signal()
    if result == False:
        global_element.Test_remark = 'SA did not detect the signal!'
        report_handle.Reporttool('NULL', activelowlimit, activehighlimit)
        global_element.Test_remark = ''
    else:
        global_element.emitsingle.stateupdataSingle.emit(
            'SA detection signal is successful!')

        if global_element.Test_lte_bandwidth == '1.4MHz':
            RB_list = [1, 6]
        elif global_element.Test_lte_bandwidth == '3MHz':
            RB_list = [1, 15]
        elif global_element.Test_lte_bandwidth == '5MHz':
            RB_list = [1, 25]
        elif global_element.Test_lte_bandwidth == '10MHz':
            RB_list = [1, 50]
        elif global_element.Test_lte_bandwidth == '15MHz':
            RB_list = [1, 75]
        elif global_element.Test_lte_bandwidth == '20MHz':
            RB_list = [1, 100]
        else:
            RB_list = [1, 6]

        mode_list = mode_str.split('/')
        RB_str_list = RB_str.split('/')

        for mode in mode_list:
            # 停止功能函数接口
            global_element.Test_modulation = mode  # 更新全局变量mode
            for RB in RB_str_list:
                # 停止功能函数接口
                if RB == '1RB':
                    RB_count = RB_list[0]
                elif RB == 'FRB':
                    RB_count = RB_list[1]
                global_element.CU_intance.set_lte_ul_modeandRB(
                    mode, str(RB_count))
                global_element.Test_lte_RB = 'RB: ' + str(RB_count)

                if RB_count == 1:
                    global_element.CU_intance.set_lte_ul_RBoffset('MID')

                # # 检查Handover后连接是否正常
                # time.sleep(2)
                # state = global_element.CU_intance.lte_connect_state()
                # if state == False:
                #     global_element.testseq_judgement_list.append('Inconclusive')
                #     return

                # 开始SA的设置
                global_element.SA_intance.set_reflevel('40')
                global_element.SA_intance.setcenterfrequency(ulfre)
                global_element.SA_intance.setRbwVbw(
                    global_element.Test_lte_bandwidth[:-3],
                    str(eval(global_element.Test_lte_bandwidth[:-3]) * 3))
                global_element.SA_intance.setspan(
                    global_element.Test_lte_bandwidth[:-3])
                global_element.SA_intance.settrace('1', 'MAX')
                global_element.SA_intance.setdetector('SAMPLE')
                global_element.SA_intance.sweepconfig(False, True, '', '200',
                                                      '')

                result = global_element.SA_intance.CCDFON_and_get_value()

                global_element.Test_remark = 'Unit: dB'
                # 取值
                report_handle.Reporttool(result, activelowlimit,
                                         activehighlimit)

                # 截图
                picturepath = global_element.reportpath[:global_element.
                                                        reportpath.index('.')]
                if not os.path.isdir(picturepath +
                                     '/LTE FCC/Peak-to-Average Ratio'):
                    os.makedirs(picturepath + '/LTE FCC/Peak-to-Average Ratio')

                picturepath_final = picturepath + '/LTE FCC/Peak-to-Average Ratio/' + global_element.Test_band \
                                    + ' BW' + global_element.Test_lte_bandwidth + ' Channel' + \
                                    global_element.Test_channel + ' RB' + str(RB_count) + ' ' + mode + '.JPG'
                global_element.SA_intance.PrtScn(picturepath_final)

                global_element.SA_intance.CCDFOFF()

                global_element.Test_remark = ''
Exemple #18
0
def cse(item_dict):
    packettype_str = item_dict['parms']['Parm']['Value']
    packettype_list = packettype_str.split('/')
    global_element.Test_item = 'Conducted Spurious Emissions'
    for packettype in packettype_list:
        global_element.Test_bt_packetype = packettype
        global_element.emitsingle.stateupdataSingle.emit('Testing in progress of Conducted Spurious Emissions: ' +
                                                         global_element.Test_channel + ' Packet Type: ' + packettype)
        # 设置 Packet Type, hopping type, pattern type
        global_element.CU_intance.set_bt_parms(packettype, False)

        ulfre = report_handle.fre_bt2_calc(global_element.Test_channel)
        if int(global_element.Test_channel) < 39:
            dlfre = '2480'
        else:
            dlfre = '2402'

        # # 将此项用户的参数初始化
        # low_limit = item_dict['limits']['limit']['low']
        # high_limit = item_dict['limits']['limit']['high']

        # 设置CU的线损
        global_element.CU_intance.set_bt_loss(ulfre, dlfre)

        # RESET SA
        global_element.SA_intance.resetself()

        # 设置SA的线损
        global_element.SA_intance.set_loss(ulfre)

        # SA检查DUT是否有发射对应信号
        result = global_element.SA_intance.check_bt_signal()

        if result == False:
            global_element.Test_remark = 'SA did not detect the signal!'
            report_handle.Reporttool('NULL', 'None', 'None')
            global_element.Test_remark = ''
        else:
            global_element.emitsingle.stateupdataSingle.emit('SA detection signal is successful!')

            for i in [1, 2]:
                # 开始SA的设置(30MHz-3GHz)
                global_element.SA_intance.set_reflevel('15')
                if i == 1:
                    global_element.SA_intance.setstartstopfre('30', '3000')
                else:
                    global_element.SA_intance.setstartstopfre('2000', '25000')
                global_element.SA_intance.setRbwVbw('0.1', '0.3')
                global_element.SA_intance.settrace('1', 'MAX')
                global_element.SA_intance.setdetector('MAX PEAK')

                global_element.SA_intance.sweepconfig(True, True, '', '', '')
                global_element.SA_intance.set_sweep_points('10001')

                global_element.SA_intance.cont_sweep_seconds(15)

                global_element.SA_intance.markertotrace('1', '1')
                global_element.SA_intance.markertopeak('1')

                peak_value = global_element.SA_intance.marker_Y_value('1')
                line_value = format(eval(peak_value) - 20, '.2f')

                global_element.SA_intance.Linedisplay(line_value)

                global_element.SA_intance.next_peak('1')

                peak_value_2 = global_element.SA_intance.marker_Y_value('1')
                if i == 1:
                    global_element.Test_remark = 'CSE 30MHz-3GHz'
                else:
                    global_element.Test_remark = 'CSE 2GHz-25GHz'
                report_handle.Reporttool(peak_value_2, 'None', line_value)

                # 截图
                picturepath = global_element.reportpath[:global_element.reportpath.index('.')]
                if not os.path.isdir(picturepath + '/BT2.0/FCC/Conducted Spurious Emissions'):
                    os.makedirs(picturepath + '/BT2.0/FCC/Conducted Spurious Emissions')

                if i == 1:
                    picturepath_final = picturepath + '/BT2.0/FCC/Conducted Spurious Emissions/BT2.0 ' + packettype + \
                                        ' CH' + global_element.Test_channel + ' ' + ulfre + 'MHz(30MHz~3GHz).JPG'
                else:
                    picturepath_final = picturepath + '/BT2.0/FCC/Conducted Spurious Emissions/BT2.0 ' + packettype +\
                                        ' CH' + global_element.Test_channel + ' ' + ulfre + 'MHz(2GHz~25GHz).JPG'

                global_element.SA_intance.PrtScn(picturepath_final)

            global_element.Test_remark = ''
Exemple #19
0
def bandedge(item_dict):
    if global_element.Test_channel in ['0', '78']:              # 只测高低信道
        packettype_str = item_dict['parms']['Parm']['Value']
        packettype_list = packettype_str.split('/')

        for i in range(2):
            if i == 0:
                global_element.Test_item = 'Conducted Band Edges'
            else:
                global_element.Test_item = 'Conducted Band Edges(Hopping Mode)'

            for packettype in packettype_list:
                global_element.Test_bt_packetype = packettype
                if i == 0:
                    global_element.emitsingle.stateupdataSingle.emit('Testing in progress of Conducted Band Edges: ' +
                                                                     global_element.Test_channel + ' Packet Type: ' + packettype)
                    # 设置 Packet Type, hopping type, pattern type
                    global_element.CU_intance.set_bt_parms(packettype, False)
                else:
                    global_element.emitsingle.stateupdataSingle.emit('Testing in progress of Conducted Band Edges(Hopping Mode): ' +
                                                                     global_element.Test_channel + ' Packet Type: ' + packettype)
                    # 设置 Packet Type, hopping type, pattern type
                    global_element.CU_intance.set_bt_parms(packettype, True)

                ulfre = report_handle.fre_bt2_calc(global_element.Test_channel)
                if int(global_element.Test_channel) < 39:
                    dlfre = '2480'
                else:
                    dlfre = '2402'

                # # 将此项用户的参数初始化
                # low_limit = item_dict['limits']['limit']['low']
                # high_limit = item_dict['limits']['limit']['high']

                # 设置CU的线损
                global_element.CU_intance.set_bt_loss(ulfre, dlfre)

                # RESET SA
                global_element.SA_intance.resetself()

                # 设置SA的线损
                global_element.SA_intance.set_loss(ulfre)

                # SA检查DUT是否有发射对应信号
                result = global_element.SA_intance.check_bt_signal()

                if result == False:
                    global_element.Test_remark = 'SA did not detect the signal!'
                    report_handle.Reporttool('NULL', 'None', 'None')
                    global_element.Test_remark = ''
                else:
                    global_element.emitsingle.stateupdataSingle.emit('SA detection signal is successful!')

                    # 开始SA的设置
                    global_element.SA_intance.set_reflevel('20')
                    if global_element.Test_channel == '0':
                        global_element.SA_intance.setstartstopfre('2395', '2405')
                    else:
                        global_element.SA_intance.setstartstopfre('2477.5', '2489.5')
                    global_element.SA_intance.setRbwVbw('0.1', '0.3')
                    global_element.SA_intance.settrace('1', 'MAX')
                    global_element.SA_intance.setdetector('MAX PEAK')

                    sweeptime = 5 if i == 0 else 20
                    global_element.SA_intance.sweepconfig(True, True, '', '', '')

                    global_element.SA_intance.cont_sweep_seconds(sweeptime)

                    global_element.SA_intance.markertotrace('1', '1')
                    global_element.SA_intance.markertopeak('1')

                    marker1amp = global_element.SA_intance.marker_Y_value('1')
                    linevalue = format(eval(marker1amp) - 20, '.2f')

                    global_element.SA_intance.Linedisplay(linevalue)

                    global_element.SA_intance.markertotrace('2', '1')

                    if global_element.Test_channel == '0':
                        global_element.SA_intance.serchlimit('2395', '2400')
                    else:
                        global_element.SA_intance.serchlimit('2483.5', '2489.5')

                    global_element.SA_intance.markertopeak('2')
                    bandedge_result = global_element.SA_intance.marker_Y_value('2')

                    global_element.Test_remark = 'Unit: dBm, High Limit: Peak Ampt(' + str(marker1amp) + 'dBm) -20dBc'

                    report_handle.Reporttool(bandedge_result, 'None', linevalue)

                    # 截图
                    picturepath = global_element.reportpath[:global_element.reportpath.index('.')]
                    if not os.path.isdir(picturepath + '/BT2.0/FCC/Conducted Band Edges'):
                        os.makedirs(picturepath + '/BT2.0/FCC/Conducted Band Edges')

                    if i == 0:
                        picturepath_final = picturepath + '/BT2.0/FCC/Conducted Band Edges/BT2.0 '+packettype+\
                                            ' CH'+global_element.Test_channel+' '+ulfre+'MHz.JPG'
                    else:
                        picturepath_final = picturepath + '/BT2.0/FCC/Conducted Band Edges/BT2.0 '+packettype+' CH'+\
                                            global_element.Test_channel+' '+ulfre+'MHz(Frequency Hopping).JPG'

                    global_element.SA_intance.PrtScn(picturepath_final)

        global_element.Test_remark = ''
Exemple #20
0
def dB26OccupiedBandwidth(testitem, mode_str):
    if global_element.Test_band == 'Band II' or global_element.Test_band == 'Band IV' \
            or global_element.Test_band == 'Band V':
        global_element.Test_item = '26dB Occupied Bandwidth'
        global_element.emitsingle.stateupdataSingle.emit('Testing in progress of 26dB Occupied Bandwidth……,Band: %s,Channel:%s' %
                                                         (global_element.Test_band, global_element.Test_channel))
        # 停止功能函数接口

        # 将此项用户的参数初始化
        # 此项没有用户自定义参数

        # 设置CU的线损
        dlfre, ulfre = report_handle.freq_gsm_calc(int(global_element.Test_channel))
        global_element.CU_intance.set_wcdma_loss(ulfre, dlfre)

        # RESET SA
        global_element.SA_intance.resetself()

        # 设置SA的线损
        global_element.SA_intance.set_loss(ulfre)

        global_element.CU_intance.set_wcdma_pcl_max()

        # SA检查DUT是否有发射对应信号
        result = global_element.SA_intance.check_gsm_signal()
        if result == False:
            global_element.Test_remark = 'SA did not detect the signal!'
            report_handle.Reporttool('NULL', 'None', 'None')
            global_element.Test_remark = ''
        else:
            global_element.emitsingle.stateupdataSingle.emit('SA detection signal is successful!')

            # 开始SA的设置

            global_element.SA_intance.set_reflevel('30')
            global_element.SA_intance.setcenterfrequency(ulfre)
            global_element.SA_intance.setRbwVbw('0.1', '0.3')
            global_element.SA_intance.setspan('10')
            global_element.SA_intance.settrace('1', 'MAX')
            global_element.SA_intance.setdetector('MAX PEAK')
            global_element.SA_intance.sweepconfig(True, True, '', '', '')

            # 停止功能函数接口

            global_element.SA_intance.markertotrace('1', '1')
            global_element.SA_intance.markertopeak('1')

            # 停止功能函数接口

            OBW = global_element.SA_intance.NDBDBW('26')  # 取26 dB带宽值
            OBW_final = format(eval(OBW) / 1000, '.2f')

            global_element.Test_remark = 'Uint: MHz'
            report_handle.Reporttool(OBW_final, 'None', 'None')

            # 截图
            picturepath = global_element.reportpath[:global_element.reportpath.index('.')]
            if not os.path.isdir(picturepath + '/WCDMA FCC/26dB Occupied Bandwidth'):
                os.makedirs(picturepath + '/WCDMA FCC/26dB Occupied Bandwidth')

            picturepath_final = picturepath + '/WCDMA FCC/26dB Occupied Bandwidth/' + mode_str + ' ' \
                                + global_element.Test_band + ' Channel' + global_element.Test_channel + '.JPG'
            global_element.SA_intance.PrtScn(picturepath_final)

            global_element.Test_remark = ''
Exemple #21
0
def Bandedge(testitem):
    channel_support_list = [
        '18607', '19193', '18615', '19185', '18625', '19175', '18650', '19150',
        '18675', '19125', '18700', '19100', '19957', '20393', '19965', '20385',
        '19975', '20375', '20000', '20350', '20025', '20325', '20050', '20300',
        '20407', '20643', '20415', '20635', '20425', '20625', '20450', '20600',
        '20775', '21425', '20800', '21400', '20825', '21375', '20850', '21350',
        '23017', '23173', '23025', '23165', '23035', '23155', '23060', '23130',
        '23755', '23825', '23780', '23800', '26683', '26675', '26665', '26640',
        '26615', '26590', '26697', '27033', '26705', '27025', '26715', '27015',
        '26740', '26990', '26765', '26965', '39675', '41565', '39700', '41540',
        '39725', '41515', '39750', '41490', '26047', '26055', '26065', '26090',
        '26115', '26140', '37775', '38225', '37800', '38200', '37825', '38175',
        '37850', '38150'
    ]
    low_channel_list = [
        '18607', '18615', '18625', '18650', '18675', '18700', '19957', '19965',
        '19975', '20000', '20025', '20050', '20407', '20415', '20425', '20450',
        '20775', '20800', '20825', '20850', '23017', '23025', '23035', '23060',
        '23755', '23780', '26697', '26705', '26715', '26740', '26765', '39675',
        '39700', '39725', '39750', '26047', '26055', '26065', '26090', '26115',
        '26140', '37775', '37800', '37825', '37850'
    ]
    if global_element.Test_channel in channel_support_list:
        global_element.Test_item = 'Band edge'
        global_element.emitsingle.stateupdataSingle.emit(
            'Testing in progressBand edge……,Band: %s,Bandwidth: %s, '
            'Channel:%s' %
            (global_element.Test_band, global_element.Test_lte_bandwidth,
             global_element.Test_channel))
        # 停止功能函数接口

        # 将此项用户的参数初始化
        RB_str = testitem['parms']['Parm'][0]['Value']
        mode_str = testitem['parms']['Parm'][1]['Value']

        # 设置CU的线损
        dlfre, ulfre = report_handle.freq_gsm_calc(
            int(global_element.Test_channel))
        global_element.CU_intance.set_lte_loss(ulfre, dlfre)

        # RESET SA
        global_element.SA_intance.resetself()

        # 设置SA的线损
        global_element.SA_intance.set_loss(ulfre)

        # 设置lte为最大功控
        global_element.CU_intance.set_lte_maxpower()

        # SA检查DUT是否有发射对应信号
        result = global_element.SA_intance.check_gsm_signal()
        if result == False:
            global_element.Test_remark = 'SA did not detect the signal!'
            report_handle.Reporttool('NULL', 'None', 'None')
            global_element.Test_remark = ''
        else:
            global_element.emitsingle.stateupdataSingle.emit(
                'SA detection signal is successful!')

            mode_list = mode_str.split('/')
            rb_str_list = RB_str.split('/')

            if global_element.Test_lte_bandwidth == '1.4MHz':
                RB_list = [1, 6]
            elif global_element.Test_lte_bandwidth == '3MHz':
                RB_list = [1, 15]
            elif global_element.Test_lte_bandwidth == '5MHz':
                RB_list = [1, 25]
            elif global_element.Test_lte_bandwidth == '10MHz':
                RB_list = [1, 50]
            elif global_element.Test_lte_bandwidth == '15MHz':
                RB_list = [1, 75]
            elif global_element.Test_lte_bandwidth == '20MHz':
                RB_list = [1, 100]

            for mode in mode_list:
                # 停止功能函数接口
                global_element.Test_modulation = mode
                for rb_str in rb_str_list:
                    # 停止功能函数接口
                    if rb_str == '1RB':
                        rb = RB_list[0]
                    elif rb_str == 'FRB':
                        rb = RB_list[1]

                    global_element.CU_intance.set_lte_ul_modeandRB(
                        mode, str(rb))
                    global_element.Test_lte_RB = 'RB: ' + str(rb)

                    if rb == 1:
                        if global_element.Test_channel in low_channel_list:
                            global_element.CU_intance.set_lte_ul_RBoffset(
                                'LOW')
                        else:
                            global_element.CU_intance.set_lte_ul_RBoffset(
                                'HIGH')

                    # # 检查Handover后连接是否正常
                    # time.sleep(2)
                    # state = global_element.CU_intance.lte_connect_state()
                    # if state == False:
                    #     global_element.testseq_judgement_list.append('Inconclusive')
                    #     return

                    # 开始SA的设置
                    global_element.SA_intance.settrace('1', 'MAX')
                    global_element.SA_intance.sweepconfig(
                        True, True, '', '', '')

                    # 停止功能函数接口

                    result = global_element.SA_intance.ltefcc_bandedge_set(
                        global_element.Test_channel)

                    global_element.Test_remark = 'Reference screenshot of this result!'
                    if result == '1':
                        report_handle.Reporttool('1', '-1', '1')
                    elif result == 'NULL':
                        report_handle.Reporttool('NULL', '-1', '1')
                    else:
                        report_handle.Reporttool('0', '-1', '1')

                    # 截图
                    picturepath = global_element.reportpath[:global_element.
                                                            reportpath.
                                                            index('.')]
                    if not os.path.isdir(picturepath + '/LTE FCC/Band edge'):
                        os.makedirs(picturepath + '/LTE FCC/Band edge')

                    picturepath_final = picturepath + '/LTE FCC/Band edge/' + global_element.Test_band + ' BW' + \
                                        global_element.Test_lte_bandwidth + ' Channel' + \
                                        global_element.Test_channel + ' RB' + str(rb) + ' ' + mode + '.JPG'
                    global_element.SA_intance.PrtScn(picturepath_final)

                    global_element.Test_remark = ''
Exemple #22
0
def hoppingchannelseparation(item_dict):
    packettype_str = item_dict['parms']['Parm']['Value']
    packettype_list = packettype_str.split('/')
    global_element.Test_item = 'Hopping Channel Separation'
    for packettype in packettype_list:
        global_element.Test_bt_packetype = packettype
        if global_element.Test_channel == '0':
            channel_group = '0-1'
            center_freq = '2402.5'
        elif global_element.Test_channel == '39':
            channel_group = '39-40'
            center_freq = '2441.5'
        else:
            channel_group = '77-78'
            center_freq = '2479.5'
        global_element.emitsingle.stateupdataSingle.emit('Testing in progress of Hopping Channel Separation: Channel ' +
                                                         channel_group + ' Packet Type: ' + packettype)

        dict_key = global_element.Test_channel + '_' + packettype

        if global_element.BT2_fcc_20dbbw_result[dict_key] != '':

            bw_20db = global_element.BT2_fcc_20dbbw_result[dict_key]
            # 设置 Packet Type, hopping type, pattern type
            global_element.CU_intance.set_bt_parms(packettype, False)

            ulfre = report_handle.fre_bt2_calc(global_element.Test_channel)
            if int(global_element.Test_channel) < 39:
                dlfre = '2480'
            else:
                dlfre = '2402'

            # # 将此项用户的参数初始化
            # low_limit = item_dict['limits']['limit']['low']
            # high_limit = item_dict['limits']['limit']['high']

            # 设置CU的线损
            global_element.CU_intance.set_bt_loss(ulfre, dlfre)

            # RESET SA
            global_element.SA_intance.resetself()

            # 设置SA的线损
            global_element.SA_intance.set_loss(ulfre)

            # SA检查DUT是否有发射对应信号
            result = global_element.SA_intance.check_bt_signal()

            if result == False:
                global_element.Test_remark = 'SA did not detect the signal!'
                report_handle.Reporttool('NULL', 'None', 'None')
                global_element.Test_remark = ''
            else:
                global_element.emitsingle.stateupdataSingle.emit('SA detection signal is successful!')

                # 开始SA的设置
                global_element.SA_intance.set_reflevel('20')
                global_element.SA_intance.setcenterfrequency(center_freq)
                global_element.SA_intance.setRbwVbw('0.03', '0.1')
                global_element.SA_intance.setspan('2.5')
                global_element.SA_intance.settrace('1', 'MAX')
                global_element.SA_intance.setdetector('MAX PEAK')
                global_element.SA_intance.sweepconfig(True, True, '', '', '')

                global_element.SA_intance.startcontsweep()

                time.sleep(5)
                if global_element.Test_channel == '0':
                    global_element.CU_intance.set_bt2_channel('1')
                elif global_element.Test_channel == '39':
                    global_element.CU_intance.set_bt2_channel('40')
                else:
                    global_element.CU_intance.set_bt2_channel('77')

                time.sleep(7)
                global_element.SA_intance.stopcontsweep()

                global_element.SA_intance.markertotrace('1', '1')
                global_element.SA_intance.serchlimit(str(eval(center_freq) - 1), center_freq)
                global_element.SA_intance.markertopeak('1')
                marker1freq = global_element.SA_intance.marker_X_value('1')

                global_element.SA_intance.markertotrace('2', '1')
                global_element.SA_intance.serchlimit(center_freq, str(eval(center_freq) + 1))
                global_element.SA_intance.markertopeak('2')
                marker2freq = global_element.SA_intance.marker_X_value('2')

                global_element.SA_intance.serchlimit_off()

                HFCHSep = format((eval(marker2freq) - eval(marker1freq)) / 1000, '.2f')

                lowlimit = format((eval(bw_20db) * 2 / 3), '.2f') if eval(bw_20db) * 2 / 3 - 25 > 0 else '25'

                global_element.Test_remark = 'Unit: kHz(Low Limit: 25kHz or 2/3 20dB BW(which is greater.))'
                temp_channel = global_element.Test_channel
                global_element.Test_channel = channel_group

                report_handle.Reporttool(HFCHSep, lowlimit, 'None')

                global_element.Test_remark = ''
                global_element.Test_channel = temp_channel

                # 截图
                picturepath = global_element.reportpath[:global_element.reportpath.index('.')]
                if not os.path.isdir(picturepath + '/BT2.0/FCC/Hopping Channel Separation'):
                    os.makedirs(picturepath + '/BT2.0/FCC/Hopping Channel Separation')

                picturepath_final = picturepath + '/BT2.0/FCC/Hopping Channel Separation/BT2.0 ' + packettype + ' CH' + \
                                    channel_group + 'MHz.JPG'
                global_element.SA_intance.PrtScn(picturepath_final)

                global_element.CU_intance.set_bt2_channel(global_element.Test_channel)

        else:
            global_element.emitsingle.stateupdataSingle.emit('No data of Channel: ' + global_element.Test_channel + ' ' +
                                                             packettype + ' 20dB bandwidth,please test 20dB'
                                                                          ' bandwidth before!')
            global_element.Test_remark = 'No data of Channel: ' + global_element.Test_channel + ' ' + packettype + \
                                         '20dB bandwidth,please test 20dB bandwidth before!'

            temp_channel = global_element.Test_channel
            global_element.Test_channel = channel_group

            report_handle.Reporttool('NULL', 'None', 'None')

            global_element.Test_remark = ''
            global_element.Test_channel = temp_channel
Exemple #23
0
def ConductedSpuriousemissions(testitem):
    # 停止功能函数接口
    band_support_list = [
        'FDD-LTE 2', 'FDD-LTE 4', 'FDD-LTE 5', 'FDD-LTE 7', 'FDD-LTE 12',
        'FDD-LTE 17', 'FDD-LTE 25', 'FDD-LTE 26', 'TDD-LTE 38', 'TDD-LTE 41'
    ]
    if global_element.Test_band in band_support_list:
        global_element.Test_item = 'Conducted Spurious emissions'
        global_element.emitsingle.stateupdataSingle.emit(
            'Testing in progress of Conducted Spurious emissions……,Band: %s,Bandwidth: %s, '
            'Channel:%s' %
            (global_element.Test_band, global_element.Test_lte_bandwidth,
             global_element.Test_channel))
        # 停止功能函数接口

        # 将此项用户的参数初始化
        RB_str = testitem['parms']['Parm'][0]['Value']
        mode_str = testitem['parms']['Parm'][1]['Value']

        # 设置CU的线损
        dlfre, ulfre = report_handle.freq_gsm_calc(
            int(global_element.Test_channel))
        global_element.CU_intance.set_lte_loss(ulfre, dlfre)

        # RESET SA
        global_element.SA_intance.resetself()

        # 设置SA的线损
        global_element.SA_intance.set_loss(ulfre)

        # 设置lte为最大功控
        global_element.CU_intance.set_lte_maxpower()

        # SA检查DUT是否有发射对应信号
        result = global_element.SA_intance.check_gsm_signal()
        if result == False:
            global_element.Test_remark = 'SA did not detect the signal!'
            report_handle.Reporttool('NULL', 'None', 'None')
            global_element.Test_remark = ''
        else:
            global_element.emitsingle.stateupdataSingle.emit(
                'SA detection signal is successful!')

            mode_list = mode_str.split('/')

            for mode in mode_list:
                # 停止功能函数接口
                global_element.Test_modulation = mode

                global_element.CU_intance.set_lte_ul_modeandRB(mode, '1')
                global_element.Test_lte_RB = 'RB: 1'
                global_element.CU_intance.set_lte_ul_RBoffset('LOW')

                # # 检查Handover后连接是否正常
                # time.sleep(2)
                # state = global_element.CU_intance.lte_connect_state()
                # if state == False:
                #     global_element.testseq_judgement_list.append('Inconclusive')
                #     return

                # 开始SA的设置
                global_element.SA_intance.settrace('1', 'AVE')
                global_element.SA_intance.sweepconfig(True, True, '', '', '')

                # 停止功能函数接口
                time.sleep(1)

                result = global_element.SA_intance.ltefcc_cse_set(
                    global_element.Test_band)

                global_element.Test_remark = 'Reference screenshot of this result!'
                if result == '1':
                    report_handle.Reporttool('1', '-1', '1')
                elif result == 'NULL':
                    report_handle.Reporttool('NULL', '-1', '1')
                else:
                    report_handle.Reporttool('0', '-1', '1')

                # 截图
                picturepath = global_element.reportpath[:global_element.
                                                        reportpath.index('.')]
                if not os.path.isdir(picturepath +
                                     '/LTE FCC/Conducted Spurious emissions'):
                    os.makedirs(picturepath +
                                '/LTE FCC/Conducted Spurious emissions')

                picturepath_final = picturepath + '/LTE FCC/Conducted Spurious emissions/' + global_element.Test_band \
                                    + ' BW' + global_element.Test_lte_bandwidth + ' Channel' \
                                    + global_element.Test_channel + ' RB 1 ' + mode + '.JPG'
                global_element.SA_intance.PrtScn(picturepath_final)

                global_element.Test_remark = ''
Exemple #24
0
def Adjacentchannelrejection(testitem):
    global_element.emitsingle.stateupdataSingle.emit(
        'Testing in progress of Adjacentchannelrejection channel ' +
        global_element.Test_channel)

    global_element.Test_item = '21.3.18.2_Adjacent channel rejection'

    # 设置WLAN 信令LOSS
    channel_fre = report_handle.fre_wlan_calc(global_element.Test_channel)
    global_element.CU_intance.set_wlan_loss(channel_fre)

    level_list = [-82, -79, -77, -74, -70, -66, -65, -64, -59, -57]
    limit_list = []
    for limit in testitem['limits']['limit']:
        limit_list.append(limit['low'])

    if global_element.Test_wlan_bw == 'VHT20':
        bs_level = str(level_list[eval(global_element.Test_Datarate[-1:])] + 3)
        offset_freq = 20
        gprf_level = str(
            int(bs_level) +
            int(limit_list[int(global_element.Test_Datarate[-1:])]))
    elif global_element.Test_wlan_bw == 'VHT40':
        bs_level = str(level_list[eval(global_element.Test_Datarate[-1:])] + 6)
        offset_freq = 40
        gprf_level = str(
            int(bs_level) +
            int(limit_list[int(global_element.Test_Datarate[-1:])]))
    elif global_element.Test_wlan_bw == 'VHT80':
        bs_level = str(level_list[eval(global_element.Test_Datarate[-1:])] + 9)
        offset_freq = 80
        gprf_level = str(
            int(bs_level) +
            int(limit_list[int(global_element.Test_Datarate[-1:])]))

    half_obw = eval(global_element.Test_wlan_bw[-2:]) / 2
    if (5170 + half_obw) < eval(channel_fre) + offset_freq < (5330 - half_obw)\
            or (5490 + half_obw) < eval(channel_fre) + offset_freq < (5710 - half_obw) \
            or (5735 + half_obw) < eval(channel_fre) + offset_freq < (5835 - half_obw):
        gprf_freq = eval(channel_fre) + offset_freq
    else:
        gprf_freq = eval(channel_fre) - offset_freq

    wavefilename = 'AC_' + global_element.Test_Datarate + '_' + global_element.Test_wlan_bw

    global_element.CU_intance.init_generator(str(gprf_freq), str(gprf_level),
                                             wavefilename)

    global_element.CU_intance.set_wlan_bslevel(str(bs_level))

    # 取值
    packets_num = testitem['parms']['Parm'][0]['Value']
    per_result, packets_done = global_element.CU_intance.get_wlan_per(
        packets_num)

    global_element.Test_remark = 'Uint: %, ' + str(
        packets_done) + ' packests transmited!'
    high_limit = '10'
    low_limit = 'None'
    report_handle.Reporttool(per_result, low_limit, high_limit)

    global_element.CU_intance.off_gprf()