123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365 |
- #include "oamnetworkparam.h"
- #include "ui_oamnetworkparam.h"
- #include "maindlg.h"
- OamNetworkParam::OamNetworkParam(QWidget *parent)
- : QDialog(parent)
- , ui(new Ui::OamNetworkParam)
- {
- ui->setupUi(this);
- m_pMainDlg = static_cast<MainDlg*>(parent);//保存上级窗口指针
- InitUi();
- configSignalSlot();
- }
- OamNetworkParam::~OamNetworkParam()
- {
- delete ui;
- }
- void OamNetworkParam::InitUi(){
- //初始化PA开关
- ui->comboBoxSwitch->addItem("请选择", 0);
- ui->comboBoxSwitch->addItem("关闭",1);
- ui->comboBoxSwitch->addItem("打开",2);
- }
- //配置界面按钮信号与槽
- void OamNetworkParam::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 OamNetworkParam::selectAllItem(){
- ui->checkBoxSwitch->setChecked(true);
- ui->checkBoxWifiName->setChecked(true);
- ui->checkBoxWifiPwd->setChecked(true);
- ui->checkBoxServiceIp->setChecked(true);
- ui->checkBoxServicePort->setChecked(true);
- }
- //全不选
- void OamNetworkParam::selectAllNoItem(){
- ui->checkBoxSwitch->setChecked(false);
- ui->checkBoxWifiName->setChecked(false);
- ui->checkBoxWifiPwd->setChecked(false);
- ui->checkBoxServiceIp->setChecked(false);
- ui->checkBoxServicePort->setChecked(false);
- }
- //清空参数
- void OamNetworkParam::clearAllItem(){
- QString strText = "";
- ui->comboBoxSwitch->setCurrentIndex(0);
- ui->lineEditWifiName->setText(strText);
- ui->lineEditWifiPwd->setText(strText);
- ui->lineEditServiceIp->setText(strText);
- ui->spinBoxServicePort->setValue(0);
- }
- //切换按钮状态
- //byFlag:开关状态,true:可用,false:不可用
- void OamNetworkParam::switchBtnFlag(bool byFlag){
- ui->pushButtonAllSel->setEnabled(byFlag);
- ui->pushButtonAllNoSel->setEnabled(byFlag);
- ui->pushButtonClear->setEnabled(byFlag);
- ui->pushButtonQuery->setEnabled(byFlag);
- ui->pushButtonConfig->setEnabled(byFlag);
- }
- //查询参数
- void OamNetworkParam::queryParam(){
- quint8 abyData[PS_FRAME_MCPA_PAYLOAD_LEN];
- quint8 *pbyHead = abyData;
- quint16 wLen = 0;
- LTV_T stLtv;
- memset(abyData, 0, PS_FRAME_MCPA_PAYLOAD_LEN);
- memset((void*)&stLtv, 0, sizeof(LTV_T));
- //禁用按钮
- switchBtnFlag(false);
- //网管使能开关
- if(ui->checkBoxSwitch->isChecked()){
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_NETWORK_SWITCH;
- memcpy(pbyHead, &stLtv, sizeof(quint8)*stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- if(ui->checkBoxWifiName->isChecked()){
- stLtv.wLen = 24;
- stLtv.wTag = ORDER_NETWORK_WIFI_NAME;
- memcpy(pbyHead, &stLtv, sizeof(quint8)*stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- if(ui->checkBoxWifiPwd->isChecked()){
- stLtv.wLen = 24;
- stLtv.wTag = ORDER_NETWORK_WIFI_PWD;
- memcpy(pbyHead, &stLtv, sizeof(quint8)*stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- if(ui->checkBoxServiceIp->isChecked()){
- stLtv.wLen = 36;
- stLtv.wTag = ORDER_NETWORK_SERVICE_IP;
- memcpy(pbyHead, &stLtv, sizeof(quint8)*stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- if(ui->checkBoxServicePort->isChecked()){
- stLtv.wLen = 6;
- stLtv.wTag = ORDER_NETWORK_SERVICE_PORT;
- 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 OamNetworkParam::showParam(LTV_T *pstData){
- QString strText = "";
- quint16 wTmp = 0;
- quint8 byLen = pstData->wLen-4;
- //将数据显示在界面上
- if(pstData->wTag == ORDER_NETWORK_WIFI_NAME){
- strText = QString::fromUtf8((char *)pstData->abyData, strlen((char*)pstData->abyData));
- strText = strText.trimmed();
- ui->lineEditWifiName->setText(strText);
- }else if(pstData->wTag == ORDER_NETWORK_WIFI_PWD){
- strText = QString::fromUtf8((char *)pstData->abyData, strlen((char*)pstData->abyData));
- strText = strText.trimmed();
- ui->lineEditWifiPwd->setText(strText);
- }else if(pstData->wTag == ORDER_NETWORK_SERVICE_IP){
- strText = QString::fromUtf8((char *)pstData->abyData, strlen((char*)pstData->abyData));
- strText = strText.trimmed();
- ui->lineEditServiceIp->setText(strText);
- }else if(pstData->wTag == ORDER_NETWORK_SERVICE_PORT){
- memcpy(&wTmp, pstData->abyData, byLen);
- ui->spinBoxServicePort->setValue(wTmp);
- }else if(pstData->wTag == ORDER_NETWORK_SWITCH){
- memcpy(&wTmp, pstData->abyData, byLen);
- wTmp += 1;
- ui->comboBoxSwitch->setCurrentIndex(wTmp);
- }
- return;
- }
- //配置参数
- void OamNetworkParam::configParam(){
- quint8 abyData[PS_FRAME_MCPA_PAYLOAD_LEN];
- quint8 *pbyHead = abyData;
- quint16 wLen = 0;
- LTV_T stLtv;
- QString strText = "";
- quint32 dwCoord = 0;
- QByteArray tmp;
- char *pchTmp = NULL;
- QByteArray byteArray;
- quint8 byCharLen = 0;
- quint8 byTmp = 0;
- QVariant varTmp;
- //禁用按钮
- switchBtnFlag(false);
- memset(abyData, 0, PS_FRAME_MCPA_PAYLOAD_LEN);
- memset((void*)&stLtv, 0, sizeof(LTV_T));
- if(ui->checkBoxSwitch->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_NETWORK_SWITCH;
- varTmp = ui->comboBoxSwitch->currentData();
- byTmp = (quint8)varTmp.toInt();
- if(byTmp <= 0){
- QMessageBox::critical(this, "提示", "请选择网管使能开关");
- 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;
- }
- if(ui->checkBoxWifiName->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 24;
- stLtv.wTag = ORDER_NETWORK_WIFI_NAME;
- strText = ui->lineEditWifiName->text();
- strText = strText.trimmed();
- byteArray = strText.toUtf8();
- byCharLen = byteArray.size();
- if(byCharLen > ( stLtv.wLen - 4)){
- QMessageBox::information(this, "提示", "字符长度超过最大值"+QString::number(byCharLen));
- switchBtnFlag(true);//启用按钮
- return;
- }
- memcpy((void*)stLtv.abyData, byteArray.constData(), byCharLen);
- memcpy(pbyHead, &stLtv, sizeof(quint8)*stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- if(ui->checkBoxWifiPwd->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 24;
- stLtv.wTag = ORDER_NETWORK_WIFI_PWD;
- strText = ui->lineEditWifiPwd->text();
- strText = strText.trimmed();
- byteArray = strText.toUtf8();
- byCharLen = byteArray.size();
- if(byCharLen > ( stLtv.wLen - 4)){
- QMessageBox::information(this, "提示", "字符长度超过最大值"+QString::number(byCharLen));
- switchBtnFlag(true);//启用按钮
- return;
- }
- memcpy((void*)stLtv.abyData, byteArray.constData(), byCharLen);
- memcpy(pbyHead, &stLtv, sizeof(quint8)*stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- if(ui->checkBoxServiceIp->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 36;
- stLtv.wTag = ORDER_NETWORK_SERVICE_IP;
- strText = ui->lineEditServiceIp->text();
- strText = strText.trimmed();
- byteArray = strText.toUtf8();
- byCharLen = byteArray.size();
- if(byCharLen > ( stLtv.wLen - 4)){
- QMessageBox::information(this, "提示", "字符长度超过最大值"+QString::number(byCharLen));
- switchBtnFlag(true);//启用按钮
- return;
- }
- memcpy((void*)stLtv.abyData, byteArray.constData(), byCharLen);
- memcpy(pbyHead, &stLtv, sizeof(quint8)*stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- if(ui->checkBoxServicePort->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 6;
- stLtv.wTag = ORDER_NETWORK_SERVICE_PORT;
- dwCoord = ui->spinBoxServicePort->value();
- memcpy((void*)stLtv.abyData, &dwCoord, (stLtv.wLen - 4));
- 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 SignalSendConfigMsg(abyData, wLen, 0);
- }else{
- QMessageBox::information(this,"提示", "请至少选择一项管理项");
- }
- //启用按钮
- switchBtnFlag(true);
- return;
- }
- //上传数据
- void OamNetworkParam::uploadData(){
- QJsonObject jsonObject; //定义一个json对象
- QString strText = "";
- quint32 dwPort = 0;
- quint8 bySwitch = 0;
- quint8 byTmp = 0;
- QVariant varTmp;
- //禁用按钮
- switchBtnFlag(false);
- //网管使能开关
- if(ui->checkBoxSwitch->isChecked()){
- varTmp = ui->comboBoxSwitch->currentData();
- bySwitch = (quint8)varTmp.toInt();
- bySwitch -= 1;
- jsonObject["network_switch"] = bySwitch;
- }
- if(ui->checkBoxWifiName->isChecked()){
- strText = ui->lineEditWifiName->text();
- strText = strText.trimmed();
- jsonObject["wifi_name"] = strText;
- }
- if(ui->checkBoxWifiPwd->isChecked()){
- strText = ui->lineEditWifiPwd->text();
- strText = strText.trimmed();
- jsonObject["wifi_pwd"] = strText;
- }
- if(ui->checkBoxServiceIp->isChecked()){
- strText = ui->lineEditServiceIp->text();
- strText = strText.trimmed();
- jsonObject["service_ip"] = strText;
- }
- if(ui->checkBoxServicePort->isChecked()){
- dwPort = ui->spinBoxServicePort->value();
- jsonObject["service_port"] = QJsonValue::fromVariant(QVariant(static_cast<quint64>(dwPort)));
- }
- //启用按钮
- switchBtnFlag(true);
- //发送post请求
- emit SignalUploadBtsBaseParamUpdate("guiUploadBtsBaseParamUpdate", jsonObject);
- return;
- }
|