NG Toolset开发笔记--LTE Resource Grid(2)

100 篇文章 0 订阅
42 篇文章 1 订阅

coding完毕,举例NgLteGrid.fillSrs实现如下:

def fillSrs(self):
        #Note: Since srs has many ue-specific parameters, such as frequency bandwidth and offset and ue-specific subframe config.
        #so we just include only one parameter: srs-SubframeConfig in this version, and assume that tha last symbol of the
        #configured subframes and all the remained UpPTS is used for transmission of sounding rs.
        for isf in range(self.subfPerRf):
            if isf % self.tSfc in self.deltaSfc:
                if self.fs == LtePhy.LTE_FS_TYPE1.value or (self.fs ==LtePhy.LTE_FS_TYPE2.value and self.subfPatTdd[isf] == 'u'):
                    #the last symbol
                    isym = self.symbPerSubf - 1
                    for ire in range(self.rePerSymb):
                        if self.gridUl[0][ire][isf*self.symbPerSubf+isym] == LteResType.LTE_RES_PUSCH.value:
                            self.gridUl[0][ire][isf*self.symbPerSubf+isym] = LteResType.LTE_RES_SRS.value
                elif self.fs == LtePhy.LTE_FS_TYPE2.value and self.subfPatTdd[isf] == 's':
                    #UpPTS
                    for isym in range(self.dwpts+self.gp, self.symbPerSubf):
                        for ire in range(self.rePerSymb):
                            if self.gridUl[0][ire][isf*self.symbPerSubf+isym] == LteResType.LTE_RES_PUSCH.value:
                                self.gridUl[0][ire][isf*self.symbPerSubf+isym] = LteResType.LTE_RES_SRS.value
在NgLteGridUi中实现csv的解析,并在NgMainWin中以tab形式显示:

def parseLteGrid(self):
        scPerPrb = 12
        _prbs = (6, 15, 25, 50, 75, 100)
        prbNum = _prbs[self.args['bw']]
        
        outDir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'output')
        files = []
        files.append('LTE_UL_RES_GRID.csv')
        _aps = (1, 2, 4)
        apNum = _aps[self.args['ap']]
        for i in range(apNum):
            files.append('LTE_DL_RES_GRID_AP%d.csv' % i)
        
        for fn in files:
            with open(os.path.join(outDir, fn), 'r') as f:
                line = f.readline()
                colLabels = line.split(',')[1:]
                rowLabels = []
                numRows = prbNum * scPerPrb
                numCols = len(colLabels)
                
                tab = QTableWidget()
                tab.setRowCount(numRows)
                tab.setColumnCount(numCols)
                tab.setHorizontalHeaderLabels(colLabels)
                tab.setVerticalHeaderLabels(rowLabels)
                tab.horizontalHeader().setDefaultSectionSize(8 * self.fontMetrics().width('X'))
                tab.horizontalHeader().setSectionResizeMode(QHeaderView.Fixed)
                
                ire = 0
                while True:
                    line = f.readline()
                    if not line:
                        break
                    
                    tokens = line.split(',')
                    rowLabels.append(tokens[0])
                    for isym in range(numCols):
                        item = QTableWidgetItem()
                        imap = int(tokens[isym+1])
                        if 'UL_RES_GRID' in fn:
                            _str, _fg, _bg = self.ulMap[imap]
                        else:
                            _str, _fg, _bg = self.dlMap[imap]
                        item.setText(_str)
                        item.setForeground(_fg)
                        item.setBackground(_bg)
                        item.setTextAlignment(Qt.AlignCenter)
                        item.setFlags(item.flags() & (~Qt.ItemIsEditable));
                        tab.setItem(ire, isym, item);
                    ire = ire + 1
                
                tab.setVerticalHeaderLabels(rowLabels)
                self.ngwin.tabWidget.addTab(tab, fn) 
最后UI显示出来如下:

LTE_DL_RES_GRID_AP0如下:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值