开发NG Toolset的目的有2个:
(1) 、将原来LTE Toolset V1/V2的部分工具,用Python重写;
(2)、增加5GNR的部分工具。长期计划是探索与构造Deep Learning在RAN NPO中的应用。
因为LTE Toolset V1/V2使用Qt/C++实现的,所以NG Toolset的UI会用PyQt实现:
'''
ngmainwin.py
'''
from PyQt5.QtWidgets import QMainWindow, QAction, QMenu, QTabWidget, QTextEdit, QMessageBox
from PyQt5.QtWidgets import qApp, QApplication
from PyQt5.QtCore import Qt
from PyQt5.QtSql import QSqlDatabase
#-->import plugins
from ngltegridui import NgLteGridUi
class NgMainWin(QMainWindow):
def __init__(self):
super().__init__()
self.enableDebug = False
self.tabWidget = QTabWidget()
self.tabWidget.setTabsClosable(True)
self.logEdit = QTextEdit()
self.tabWidget.addTab(self.logEdit, 'log')
self.createActions()
self.createMenus()
self.setCentralWidget(self.tabWidget)
self.setWindowTitle('NG Toolset')
self.setWindowFlags(self.windowFlags() or Qt.WindowMinMaxButtonsHint)
self.setWindowState(self.windowState() or Qt.WindowMaximized)
self.tabWidget.tabCloseRequested.connect(self.onTabCloseRequested)
ngapp.py非常简洁:
'''
ngapp.py
'''
import sys
from PyQt5.QtWidgets import QApplication
from ngmainwin import NgMainWin
app = QApplication(sys.argv)
mainWin = NgMainWin()
mainWin.show()
sys.exit(app.exec_())
第一个移植的工具是LTE Resource Grid,即LTE资源栅格。后续会用于NB-IoT及5GNR的resource grid开发。