123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458 |
- #include "oamconfigparam.h"
- #include "ui_oamconfigparam.h"
- #include "maindlg.h"
- OamConfigParam::OamConfigParam(QWidget *parent)
- : QDialog(parent)
- , ui(new Ui::OamConfigParam)
- {
- ui->setupUi(this);
- m_pMainDlg = static_cast<MainDlg*>(parent);//保存上级窗口指针
- init();//模块初始化
- }
- OamConfigParam::~OamConfigParam()
- {
- delete ui;
- }
- //模块初始化
- void OamConfigParam::init(){
- m_dwDeviceType = m_pMainDlg->getDeviceType();
- initUi();
- configSignalSlot();
- }
- //初始化UI
- void OamConfigParam::initUi(){
- QString strText = "";
- //初始化DA开关
- ui->comboBoxDaSwitch->addItem("请选择",0);
- ui->comboBoxDaSwitch->addItem("关闭",1);
- ui->comboBoxDaSwitch->addItem("打开",2);
- //DA衰减
- ui->comboBoxDaGain->addItem("请选择", 0);
- for(quint16 i = 255; i > 128; i--){
- strText = "-" + QString::number((255 - i)*0.5) + "dB";
- ui->comboBoxDaGain->addItem(strText, i);
- }
- //初始化PA开关
- ui->comboBoxPaSwitch->addItem("请选择", 0);
- ui->comboBoxPaSwitch->addItem("关闭",1);
- ui->comboBoxPaSwitch->addItem("打开",2);
- //PA增益
- ui->comboBoxPaGain->addItem("请选择", 0);
- ui->comboBoxPaGain->addItem("低", 20);
- ui->comboBoxPaGain->addItem("中", 26);
- ui->comboBoxPaGain->addItem("高", 32);
- ui->comboBoxPaGain->addItem("最高", 36);
- updateUi();
- }
- //更新ui
- void OamConfigParam::updateUi(){
- m_dwDeviceType = m_pMainDlg->getDeviceType();
- if(m_dwDeviceType != 0){
- switchBtnFlag(false);
- selectAllNoItem();
- }else{
- switchBtnFlag(true);
- }
- }
- //配置界面按钮信号与槽
- void OamConfigParam::configSignalSlot(){
- connect(ui->pushButtonAllSel, &QPushButton::clicked, this,&this->selectAllItem);//全选
- connect(ui->pushButtonAllNoSel, &QPushButton::clicked, this,&this->selectAllNoItem);//全不选
- connect(ui->pushButtonClear, &QPushButton::clicked, this,&this->clearAllItem);//清空
- connect(ui->pushButtonQuery, &QPushButton::clicked, this,&this->queryParam);//查询参数
- connect(ui->pushButtonConfig, &QPushButton::clicked, this,&this->configParam);//设置参数
- connect(ui->pushButtonUpload, &QPushButton::clicked, this,&this->uploadData);//上传参数
- //将消息发送到主控模块
- connect(this, &this->SignalSendQueryMsg, m_pMainDlg, &m_pMainDlg->slotOamSendQueryMsg);
- connect(this, &this->SignalSendConfigMsg, m_pMainDlg, &m_pMainDlg->slotOamSendConfigMsg);
- connect(this, &this->SignalUploadBtsBaseParamUpdate, m_pMainDlg, &m_pMainDlg->slotUploadBtsBaseParamUpdate);//上传数据
- }
- //全选
- void OamConfigParam::selectAllItem(){
- ui->checkBoxDaSwitch->setChecked(true);
- ui->checkBoxDaGain->setChecked(true);
- ui->checkBoxPaSwitch->setChecked(true);
- ui->checkBoxPaGain->setChecked(true);
- }
- //全不选
- void OamConfigParam::selectAllNoItem(){
- ui->checkBoxDaSwitch->setChecked(false);
- ui->checkBoxDaGain->setChecked(false);
- ui->checkBoxPaSwitch->setChecked(false);
- ui->checkBoxPaGain->setChecked(false);
- }
- //清空参数
- void OamConfigParam::clearAllItem(){
- QString strText = "";
- ui->comboBoxDaSwitch->setCurrentIndex(0);
- ui->comboBoxDaGain->setCurrentIndex(0);
- ui->comboBoxPaSwitch->setCurrentIndex(0);
- ui->comboBoxPaGain->setCurrentIndex(0);
- }
- //切换按钮状态
- //byFlag:开关状态,true:可用,false:不可用
- void OamConfigParam::switchBtnFlag(bool byFlag){
- ui->pushButtonAllSel->setEnabled(byFlag);
- ui->pushButtonAllNoSel->setEnabled(byFlag);
- ui->pushButtonClear->setEnabled(byFlag);
- ui->pushButtonQuery->setEnabled(byFlag);
- ui->pushButtonConfig->setEnabled(byFlag);
- ui->pushButtonUpload->setEnabled(byFlag);
- }
- //查询参数
- void OamConfigParam::queryParam(){
- quint8 abyData[PS_FRAME_MCPA_PAYLOAD_LEN];
- quint8 *pbyHead = abyData;
- quint16 wLen = 0;
- LTV_T stLtv;
- //禁用按钮
- switchBtnFlag(false);
- memset(abyData, 0, PS_FRAME_MCPA_PAYLOAD_LEN);
- memset((void*)&stLtv, 0, sizeof(LTV_T));
- if(ui->checkBoxDaSwitch->isChecked()){//DAC开关
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_CONFIG_DAC_SWITCH;
- memcpy(pbyHead, &stLtv, sizeof(quint8)*stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- if(ui->checkBoxDaGain->isChecked()){//DAC增益
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_CONFIG_DAC_GAIN;
- memcpy(pbyHead, &stLtv, sizeof(quint8)*stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- if(ui->checkBoxPaSwitch->isChecked()){//PA开关
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_CONFIG_PA_SWITCH;
- memcpy(pbyHead, &stLtv, sizeof(quint8)*stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- if(ui->checkBoxPaGain->isChecked()){//PA增益
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_CONFIG_PA_GAIN;
- memcpy(pbyHead, &stLtv, sizeof(quint8)*stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- if(wLen > PS_FRAME_MCPA_PAYLOAD_LEN){
- QMessageBox::information(this,"提示", "数据长度超过报文最大值,请减少查询项");
- switchBtnFlag(true);
- return;
- }
- //将参数发送给主控模块
- if(wLen > 0){
- emit SignalSendQueryMsg(abyData, wLen);
- }else{
- QMessageBox::information(this,"提示", "请至少选择一项管理项");
- }
- //启用按钮
- switchBtnFlag(true);
- return;
- }
- //显示参数
- void OamConfigParam::showParam(LTV_T *pstData){
- QString strText = "";
- quint8 byTmp = 0;
- quint8 byIndex = 0;
- quint8 byLen = pstData->wLen - 4;
- //将数据显示在界面上
- if(pstData->wTag == ORDER_CONFIG_DAC_SWITCH){//DA开关
- memcpy(&byTmp, pstData->abyData, byLen);
- byTmp += 1;
- ui->comboBoxDaSwitch->setCurrentIndex(byTmp);
- }else if(pstData->wTag == ORDER_CONFIG_DAC_GAIN){//DA衰减
- memcpy(&byTmp, pstData->abyData, byLen);
- byIndex = (quint8)ui->comboBoxDaGain->findData(QVariant(byTmp));
- ui->comboBoxDaGain->setCurrentIndex(byIndex);
- }else if(pstData->wTag == ORDER_CONFIG_PA_SWITCH){//PA开关
- memcpy(&byTmp, pstData->abyData, byLen);
- byTmp += 1;
- ui->comboBoxPaSwitch->setCurrentIndex(byTmp);
- }else if(pstData->wTag == ORDER_CONFIG_PA_GAIN){//PA增益
- memcpy(&byTmp, pstData->abyData, byLen);
- byIndex = (quint8)ui->comboBoxPaGain->findData(QVariant(byTmp));
- ui->comboBoxPaGain->setCurrentIndex(byIndex);
- }
- return;
- }
- //配置参数
- void OamConfigParam::configParam(){
- quint8 abyData[PS_FRAME_MCPA_PAYLOAD_LEN];
- quint8 *pbyHead = abyData;
- quint16 wLen = 0;
- LTV_T stLtv;
- quint8 byTmp = 0;
- QVariant varTmp;
- //禁用按钮
- switchBtnFlag(false);
- memset(abyData, 0, PS_FRAME_MCPA_PAYLOAD_LEN);
- memset((void*)&stLtv, 0, sizeof(LTV_T));
- //DA开关
- if(ui->checkBoxDaSwitch->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_CONFIG_DAC_SWITCH;
- varTmp = ui->comboBoxDaSwitch->currentData();
- byTmp = (quint8)varTmp.toInt();
- if(byTmp <= 0){
- QMessageBox::critical(this, "提示", "请选择DA开关");
- switchBtnFlag(true);
- return;
- }
- byTmp-= 1;
- memcpy((void*)stLtv.abyData, &byTmp, (stLtv.wLen - 4));
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- //DA增益
- if(ui->checkBoxDaGain->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_CONFIG_DAC_GAIN;
- varTmp = ui->comboBoxDaGain->currentData();
- byTmp = (quint8)varTmp.toInt();
- if(byTmp <= 0){
- QMessageBox::critical(this, "提示", "请选择DA增益");
- switchBtnFlag(true);
- return;
- }
- memcpy((void*)stLtv.abyData, &byTmp, (stLtv.wLen - 4));
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- //PA开关
- if(ui->checkBoxPaSwitch->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_CONFIG_PA_SWITCH;
- varTmp = ui->comboBoxPaSwitch->currentData();
- byTmp = (quint8)varTmp.toInt();
- if(byTmp <= 0){
- QMessageBox::critical(this, "提示", "请选择PA开关");
- switchBtnFlag(true);
- return;
- }
- byTmp -= 1;
- memcpy((void*)stLtv.abyData, &byTmp, (stLtv.wLen - 4));
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- //DA增益
- if(ui->checkBoxPaGain->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_CONFIG_PA_GAIN;
- varTmp = ui->comboBoxPaGain->currentData();
- byTmp = (quint8)varTmp.toInt();
- if(byTmp <= 0){
- QMessageBox::critical(this, "提示", "请选择PA增益");
- switchBtnFlag(true);
- return;
- }
- memcpy((void*)stLtv.abyData, &byTmp, (stLtv.wLen - 4));
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- if(wLen > PS_FRAME_MCPA_PAYLOAD_LEN){
- QMessageBox::information(this,"提示", "数据长度超过报文最大值,请减少查设置项");
- switchBtnFlag(true);
- return;
- }
- //将参数发送给主控模块
- if(wLen > 0){
- emit SignalSendConfigMsg(abyData, wLen, 0);
- }else{
- QMessageBox::information(this,"提示", "请至少选择一项管理项");
- }
- switchBtnFlag(true);
- return;
- }
- //保存参数槽函数
- void OamConfigParam::saveParamSlot(){
- quint8 abyData[5] = {0};
- LTV_T *pstLtv = (LTV_T*)abyData;
- //二次确认
- QMessageBox::StandardButton dlg;
- dlg = QMessageBox::question(this, "提示", "确定要保存参数吗", QMessageBox::Yes|QMessageBox::No);
- if (dlg == QMessageBox::No) {
- return;
- }
- //组织消息
- memset((void*)abyData, 0, 5);
- pstLtv->wLen = 5;
- pstLtv->wTag = ORDER_CONFIG_SAVE_PARAM;
- //发送消息
- emit SignalSendConfigMsg(abyData, 5, 0);
- return;
- }
- //重启设备槽函数
- void OamConfigParam::restartSlot(){
- quint8 abyData[5];
- LTV_T *pstLtv = (LTV_T*)abyData;
- //二次确认
- QMessageBox::StandardButton dlg;
- dlg = QMessageBox::question(this, "提示", "确定要重启设备吗", QMessageBox::Yes|QMessageBox::No);
- if (dlg == QMessageBox::No) {
- return;
- }
- //组织消息
- memset((void*)abyData, 0, 5);
- pstLtv->wLen = 5;
- pstLtv->wTag = ORDER_CONFIG_RESTART;
- //发送消息
- emit SignalSendConfigMsg(abyData, 5, ORDER_CONFIG_RESTART);
- return;
- }
- //重置设备参数
- void OamConfigParam::resetParamSlot(){
- quint8 abyData[5];
- LTV_T *pstLtv = (LTV_T*)abyData;
- //二次确认
- QMessageBox::StandardButton dlg;
- dlg = QMessageBox::question(this, "提示", "重置参数后,系统会自动保存参数。确定要重置设备参数吗?", QMessageBox::Yes|QMessageBox::No);
- if (dlg == QMessageBox::No) {
- return;
- }
- //组织消息
- memset((void*)abyData, 0, 5);
- pstLtv->wLen = 5;
- pstLtv->wTag = ORDER_CONFIG_RESET_PARAM;//重置设备参数
- //发送消息
- emit SignalSendConfigMsg(abyData, 5, ORDER_CONFIG_RESET_PARAM);
- return;
- }
- //上传数据
- void OamConfigParam::uploadData(){
- QJsonObject jsonObject; //定义一个json对象
- quint8 byTmp = 0;
- QVariant varTmp;
- //禁用按钮
- switchBtnFlag(false);
- //DA开关
- if(ui->checkBoxDaSwitch->isChecked()){
- varTmp = ui->comboBoxDaSwitch->currentData();
- byTmp = (quint8)varTmp.toInt();
- if(byTmp <= 0){
- QMessageBox::critical(this, "提示", "请选择DA开关");
- switchBtnFlag(true);
- return;
- }
- jsonObject["da_switch"] = byTmp;
- }
- //DA增益
- if(ui->checkBoxDaGain->isChecked()){
- varTmp = ui->comboBoxDaGain->currentData();
- byTmp = (quint8)varTmp.toInt();
- if(byTmp <= 0){
- QMessageBox::critical(this, "提示", "请选择DA增益");
- switchBtnFlag(true);
- return;
- }
- jsonObject["da_gain"] = byTmp;
- }
- //PA开关
- if(ui->checkBoxPaSwitch->isChecked()){
- varTmp = ui->comboBoxPaSwitch->currentData();
- byTmp = (quint8)varTmp.toInt();
- if(byTmp <= 0){
- QMessageBox::critical(this, "提示", "请选择PA开关");
- switchBtnFlag(true);
- return;
- }
- jsonObject["pa_switch"] = byTmp;
- }
- //PA增益
- if(ui->checkBoxPaGain->isChecked()){
- varTmp = ui->comboBoxPaGain->currentData();
- byTmp = (quint8)varTmp.toInt();
- if(byTmp <= 0){
- QMessageBox::critical(this, "提示", "请选择PA增益");
- switchBtnFlag(true);
- return;
- }
- jsonObject["pa_gain"] = byTmp;
- }
- //启用按钮
- switchBtnFlag(true);
- //发送post请求
- emit SignalUploadBtsBaseParamUpdate("guiUploadBtsBaseParamUpdate", jsonObject);
- return;
- }
|