123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673 |
- #include "oamsyncparam.h"
- #include "ui_oamsyncparam.h"
- #include "maindlg.h"
- OamSyncParam::OamSyncParam(QWidget *parent)
- : QDialog(parent)
- , ui(new Ui::OamSyncParam)
- {
- ui->setupUi(this);
- m_pMainDlg = static_cast<MainDlg*>(parent);//保存上级窗口指针
- init();
- }
- OamSyncParam::~OamSyncParam()
- {
- delete ui;
- }
- void OamSyncParam::init(){
- QString strText = "";
- float fBaseFreq = 402.250;
- float fCenterFreq = 0;
- m_dwDeviceType = m_pMainDlg->getDeviceType();
- //初始化接收中心频率下拉框
- ui->comboBoxCenterFreq->addItem("请选择", 0);
- for(quint8 i = 1; i < 251; i++){
- fCenterFreq = fBaseFreq + 0.250*(i-1);
- strText = QString::number(fCenterFreq, 'f', 3) + "mHz";
- ui->comboBoxCenterFreq->addItem(strText, i-1);
- }
- //初始化接收同步字编号
- ui->comboBoxRxSyncWordId->addItem("请选择", 0);
- for(quint8 i = 1; i < 5; i++){
- strText = QString::number(i) + "号同步";
- ui->comboBoxRxSyncWordId->addItem(strText, i);
- }
- //初始化发射开关
- ui->comboBoxTxSwitch->addItem("请选择", 0);
- ui->comboBoxTxSwitch->addItem("关闭", 1);
- ui->comboBoxTxSwitch->addItem("打开", 2);
- //初始化发射中心频率下拉框
- ui->comboBoxTxCenterFreq->addItem("请选择", 0);
- for(quint8 i = 1; i < 251; i++){
- fCenterFreq = fBaseFreq + 0.250*(i-1);
- strText = QString::number(fCenterFreq, 'f', 3) + "mHz";
- ui->comboBoxTxCenterFreq->addItem(strText, i-1);
- }
- //初始化发射同步字编号
- ui->comboBoxTxSyncWordId->addItem("请选择", 0);
- for(quint8 i = 1; i < 5; i++){
- strText = QString::number(i) + "号同步";
- ui->comboBoxTxSyncWordId->addItem(strText, i);
- }
- //初始化发射功率下拉框
- ui->comboBoxTxPower->addItem("请选择", -11);
- for(qint8 i = -10; i < 21; i++){
- strText = QString::number(i) + "dBm";
- ui->comboBoxTxPower->addItem(strText, i);
- }
- updateUi();
- configSignalSlot();//配置信号与槽函数
- }
- //更新界面
- void OamSyncParam::updateUi(){
- m_dwDeviceType = m_pMainDlg->getDeviceType();
- if(m_dwDeviceType!= 0){//同步基站或者同步中继
- ui->checkBoxCenterFreq->setDisabled(false);
- ui->comboBoxCenterFreq->setDisabled(false);
- ui->label->setText("中心频率");
- ui->checkBoxTxPower->setDisabled(false);
- ui->comboBoxTxPower->setDisabled(false);
- ui->checkBoxRxSyncWordId->setChecked(false);
- ui->checkBoxRxSyncWordId->setDisabled(true);
- ui->comboBoxRxSyncWordId->setDisabled(true);
- ui->checkBoxTxSwitch->setChecked(false);
- ui->checkBoxTxSwitch->setDisabled(true);
- ui->comboBoxTxSwitch->setDisabled(true);
- ui->checkBoxTxCenterFreq->setChecked(false);
- ui->checkBoxTxCenterFreq->setDisabled(true);
- ui->comboBoxTxCenterFreq->setDisabled(true);
- ui->checkBoxTxSyncWordId->setChecked(false);
- ui->checkBoxTxSyncWordId->setDisabled(true);
- ui->comboBoxTxSyncWordId->setDisabled(true);
- ui->checkBoxRssi->setChecked(false);
- ui->checkBoxRssi->setDisabled(true);
- ui->doubleSpinBoxRssi->setDisabled(true);
- }else{//声波基站
- ui->checkBoxCenterFreq->setDisabled(false);
- ui->comboBoxCenterFreq->setDisabled(false);
- ui->label->setText("接收频率");
- ui->checkBoxTxPower->setDisabled(false);
- ui->comboBoxTxPower->setDisabled(false);
- ui->checkBoxRxSyncWordId->setDisabled(false);
- ui->comboBoxRxSyncWordId->setDisabled(false);
- ui->checkBoxTxSwitch->setDisabled(false);
- ui->comboBoxTxSwitch->setDisabled(false);
- ui->checkBoxTxCenterFreq->setDisabled(false);
- ui->comboBoxTxCenterFreq->setDisabled(false);
- ui->checkBoxTxSyncWordId->setDisabled(false);
- ui->comboBoxTxSyncWordId->setDisabled(false);
- ui->checkBoxRssi->setDisabled(false);
- ui->doubleSpinBoxRssi->setDisabled(false);
- }
- }
- //配置界面按钮信号与槽
- void OamSyncParam::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, &OamSyncParam::queryParam);//查询参数
- connect(ui->pushButtonConfig, &QPushButton::clicked, this, &OamSyncParam::configParam);//设置参数
- connect(ui->pushButtonUpload, &QPushButton::clicked, this,&this->uploadData);//上传参数
- connect(ui->comboBoxRxSyncWordId, &QComboBox::currentIndexChanged, this, &this->rxSyncWordIndexChanged);//接收同步字改变事件
- //将消息发送到主控模块
- 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 OamSyncParam::selectAllItem(){
- if(m_dwDeviceType == 1 || m_dwDeviceType == 2){//同步基站
- ui->checkBoxCenterFreq->setChecked(true);
- ui->checkBoxTxPower->setChecked(true);
- ui->checkBoxRxSyncWordId->setChecked(false);
- ui->checkBoxRssi->setChecked(false);
- ui->checkBoxTxSwitch->setChecked(false);
- ui->checkBoxTxCenterFreq->setChecked(false);
- ui->checkBoxTxSyncWordId->setChecked(false);
- }else if(m_dwDeviceType == 0){//声波基站
- ui->checkBoxCenterFreq->setChecked(true);
- ui->checkBoxRxSyncWordId->setChecked(true);
- ui->checkBoxRssi->setChecked(true);
- ui->checkBoxTxSwitch->setChecked(true);
- ui->checkBoxTxCenterFreq->setChecked(true);
- ui->checkBoxTxSyncWordId->setChecked(true);
- ui->checkBoxTxPower->setChecked(true);
- }
- }
- //全不选
- void OamSyncParam::selectAllNoItem(){
- ui->checkBoxCenterFreq->setChecked(false);
- ui->checkBoxRxSyncWordId->setChecked(false);
- ui->checkBoxRssi->setChecked(false);
- ui->checkBoxTxSwitch->setChecked(false);
- ui->checkBoxTxCenterFreq->setChecked(false);
- ui->checkBoxTxSyncWordId->setChecked(false);
- ui->checkBoxTxPower->setChecked(false);
- }
- //清空参数
- void OamSyncParam::clearAllItem(){
- QString strText = "";
- ui->comboBoxCenterFreq->setCurrentIndex(0);
- ui->doubleSpinBoxRssi->setValue(-128);
- ui->comboBoxRxSyncWordId->setCurrentIndex(0);
- ui->comboBoxTxSwitch->setCurrentIndex(0);
- ui->comboBoxTxCenterFreq->setCurrentIndex(0);
- ui->comboBoxTxSyncWordId->setCurrentIndex(0);
- ui->comboBoxTxPower->setCurrentIndex(0);
- }
- //切换按钮状态
- //byFlag:开关状态,true:可用,false:不可用
- void OamSyncParam::switchBtnFlag(bool byFlag){
- ui->pushButtonAllSel->setEnabled(byFlag);
- ui->pushButtonAllNoSel->setEnabled(byFlag);
- ui->pushButtonClear->setEnabled(byFlag);
- ui->pushButtonQuery->setEnabled(byFlag);
- ui->pushButtonConfig->setEnabled(byFlag);
- }
- //查询参数
- void OamSyncParam::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->checkBoxCenterFreq->isChecked()){
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_SYNC_CENTER_FREQ;
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- //接收同步字
- if(ui->checkBoxRxSyncWordId->isChecked()){
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_SYNC_RX_SYNC_WORD;
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- //rssi
- if(ui->checkBoxRssi->isChecked()){
- stLtv.wLen = 6;
- stLtv.wTag = ORDER_SYNC_RSSI;
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- //发射开关
- if(ui->checkBoxTxSwitch->isChecked()){
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_SYNC_TX_FLAG;
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- //发射频率ID
- if(ui->checkBoxTxCenterFreq->isChecked()){
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_SYNC_TX_CENTER_FREQ;
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- //发射同步字
- if(ui->checkBoxTxSyncWordId->isChecked()){
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_SYNC_TX_SYNC_WORD;
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- //发射功率
- if(ui->checkBoxTxPower->isChecked()){
- stLtv.wLen = 6;
- stLtv.wTag = ORDER_SYNC_TX_POWER;
- 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 SignalSendQueryMsg(abyData, wLen);
- }else{
- QMessageBox::information(this,"提示", "请至少选择一项管理项");
- }
- switchBtnFlag(true);
- return;
- }
- //显示参数
- void OamSyncParam::showParam(LTV_T *pstData){
- quint32 dwTmp = 0;
- quint8 byTmp = 0;
- qint8 byTxPower = 0;
- qint16 wRssi = 0;
- quint8 byIndex = 0;
- quint16 wIndex = 0;
- quint8 byLen = pstData->wLen-4;
- //将数据显示在界面上
- if(pstData->wTag == ORDER_SYNC_CENTER_FREQ){//接收中心频率
- memcpy(&byTmp, pstData->abyData, byLen);
- byTmp += 1;
- ui->comboBoxCenterFreq->setCurrentIndex(byTmp);
- }else if(pstData->wTag == ORDER_SYNC_RX_SYNC_WORD){//接收同步字
- memcpy(&byTmp, pstData->abyData, byLen);
- wIndex = ui->comboBoxRxSyncWordId->findData(QVariant(byTmp));
- ui->comboBoxRxSyncWordId->setCurrentIndex(wIndex);//接收电平
- }else if(pstData->wTag == ORDER_SYNC_RSSI){
- memcpy(&wRssi, pstData->abyData, byLen);
- ui->doubleSpinBoxRssi->setValue(wRssi);
- }else if(pstData->wTag == ORDER_SYNC_TX_FLAG){//发射开关
- memcpy(&byTmp, pstData->abyData, byLen);
- wIndex = ui->comboBoxTxSwitch->findData(QVariant(byTmp));
- ui->comboBoxTxSwitch->setCurrentIndex(wIndex);
- }else if(pstData->wTag == ORDER_SYNC_TX_CENTER_FREQ){//发射中心频率
- memcpy(&byTmp, pstData->abyData, byLen);
- byTmp += 1;
- ui->comboBoxTxCenterFreq->setCurrentIndex(byTmp);
- }else if(pstData->wTag == ORDER_SYNC_TX_SYNC_WORD){//发送同步字
- memcpy(&byTmp, pstData->abyData, byLen);
- wIndex = ui->comboBoxTxSyncWordId->findData(QVariant(byTmp));
- ui->comboBoxTxSyncWordId->setCurrentIndex(wIndex);
- }else if(pstData->wTag == ORDER_SYNC_TX_POWER){//发送功率
- memcpy(&byTxPower, pstData->abyData, byLen);
- wIndex = ui->comboBoxTxPower->findData(QVariant(byTxPower));
- ui->comboBoxTxPower->setCurrentIndex(wIndex);
- }
- return;
- }
- //接收同步字选择事件改变
- void OamSyncParam::rxSyncWordIndexChanged(int index){
- if(index >0 && index < 4){
- ui->comboBoxTxSyncWordId->setDisabled(true);
- ui->comboBoxTxSyncWordId->setCurrentIndex(index + 1);//发射同步字
- ui->checkBoxTxSyncWordId->setChecked(true);
- ui->checkBoxTxSyncWordId->setDisabled(true);
- ui->checkBoxTxSwitch->setChecked(false);
- ui->checkBoxTxSwitch->setDisabled(false);
- ui->comboBoxTxSwitch->setDisabled(false);
- ui->comboBoxTxSwitch->setCurrentIndex(0);
- }else if(index == 4){
- ui->checkBoxTxSwitch->setChecked(true);
- ui->checkBoxTxSwitch->setDisabled(true);
- ui->comboBoxTxSwitch->setDisabled(true);
- ui->comboBoxTxSwitch->setCurrentIndex(1);
- ui->checkBoxTxSyncWordId->setChecked(false);
- ui->checkBoxTxSyncWordId->setDisabled(false);
- ui->comboBoxTxSyncWordId->setDisabled(false);
- ui->comboBoxTxSyncWordId->setCurrentIndex(0);//发射同步字
- }
- }
- //配置参数
- void OamSyncParam::configParam(){
- quint8 abyData[PS_FRAME_MCPA_PAYLOAD_LEN];
- quint8 *pbyHead = abyData;
- quint16 wLen = 0;
- LTV_T stLtv;
- quint8 byRxFreqId = 0;
- quint8 byTxFreqId = 0;
- quint8 byRxSyncWordId = 0;
- quint8 byTxSyncWordId = 0;
- qreal fTmp = 0;
- quint32 dwTmp = 0;
- quint8 byTmp = 0;
- qint8 byTxPower = 0;
- QVariant varTmp;
- //禁用按钮
- switchBtnFlag(false);
- memset(abyData, 0, PS_FRAME_MCPA_PAYLOAD_LEN);
- memset((void*)&stLtv, 0, sizeof(LTV_T));
- //中心频率
- if(ui->checkBoxCenterFreq->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_SYNC_CENTER_FREQ;
- varTmp = ui->comboBoxCenterFreq->currentData();
- byRxFreqId = (quint8)varTmp.toInt();
- memcpy((void*)stLtv.abyData, &byRxFreqId, (stLtv.wLen - 4));
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- //频率间隔
- byTmp = 250;
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_SYNC_FREQ_OFFSET;
- memcpy((void*)stLtv.abyData, &byTmp, (stLtv.wLen - 4));
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- //接收同步字
- if(ui->checkBoxRxSyncWordId->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_SYNC_RX_SYNC_WORD;
- varTmp = ui->comboBoxRxSyncWordId->currentData();
- byRxSyncWordId = (qint8)varTmp.toInt();
- if(byRxSyncWordId <= 0){
- QMessageBox::critical(this, "提示", "请选择接收同步");
- switchBtnFlag(true);
- return;
- }
- memcpy((void*)stLtv.abyData, &byRxSyncWordId, (stLtv.wLen - 4));
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- //修改发射同步字
- ui->comboBoxTxSyncWordId->setCurrentIndex(byRxSyncWordId+1);
- }
- //发射开关
- if(ui->checkBoxTxSwitch->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_SYNC_TX_FLAG;
- varTmp = ui->comboBoxTxSwitch->currentData();
- byTmp = (qint8)varTmp.toInt();
- if(byTmp <= 0){
- QMessageBox::critical(this, "提示", "请选择发射开关");
- 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(ui->checkBoxTxCenterFreq->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_SYNC_TX_CENTER_FREQ;
- varTmp = ui->comboBoxTxCenterFreq->currentData();
- byTxFreqId = (quint8)varTmp.toInt();
- //校验接收频率与发射频率间的关系
- if(abs(byTxFreqId - byRxFreqId) < 4){
- QMessageBox::critical(this, "提示", "发射频率非法");
- switchBtnFlag(true);
- return;
- }
- memcpy((void*)stLtv.abyData, &byTxFreqId, (stLtv.wLen - 4));
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- //频率间隔
- byTmp = 250;
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_SYNC_FREQ_OFFSET;
- memcpy((void*)stLtv.abyData, &byTmp, (stLtv.wLen - 4));
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- //发射同步字
- if(ui->checkBoxTxSyncWordId->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_SYNC_TX_SYNC_WORD;
- varTmp = ui->comboBoxTxSyncWordId->currentData();
- byTxSyncWordId = (qint8)varTmp.toInt();
- if(byTxSyncWordId <= 0){
- QMessageBox::critical(this, "提示", "请选择发射同步");
- switchBtnFlag(true);
- return;
- }else{
- if(byTxSyncWordId != byRxSyncWordId+1){
- QMessageBox::critical(this, "提示", "发射同步编号非法");
- switchBtnFlag(true);
- return;
- }
- }
- memcpy((void*)stLtv.abyData, &byTxSyncWordId, (stLtv.wLen - 4));
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- //发射功率
- if(ui->checkBoxTxPower->isChecked()){
- memset((void*)stLtv.abyData, 0, PS_MCP_A_DATA_LEN);
- stLtv.wLen = 5;
- stLtv.wTag = ORDER_SYNC_TX_POWER;
- varTmp = ui->comboBoxTxPower->currentData();
- byTxPower = (qint8)varTmp.toInt();
- if((byTxPower < -10) || (byTxPower > 20)){
- QMessageBox::critical(this, "提示", "请选择基站发射功率");
- switchBtnFlag(true);
- return;
- }
- memcpy((void*)stLtv.abyData, &byTxPower, (stLtv.wLen - 4));
- memcpy(pbyHead, &stLtv, stLtv.wLen);
- wLen = wLen + stLtv.wLen;
- pbyHead = pbyHead + stLtv.wLen;
- }
- if(ui->checkBoxRssi->isChecked()){
- QMessageBox::critical(this, "提示", "接收电平不可配置");
- switchBtnFlag(true);
- return;
- }
- 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 OamSyncParam::uploadData(){
- QJsonObject jsonObject; //定义一个json对象
- quint8 byTmp = 0;
- QVariant varTmp;
- quint8 byRxFreqId = 0;//接收频率
- quint8 byRxSyncWordId = 0;//接收同步字
- qint8 byRssi = 0; //接收电平
- quint8 byTxFreqId = 0; //发射频率
- quint8 byTxSyncWordId = 0;//发射同步字
- qint8 byTxPower = 0;//发射功率
- //禁用按钮
- switchBtnFlag(false);
- //接收频率
- if(ui->checkBoxCenterFreq->isChecked()){
- varTmp = ui->comboBoxCenterFreq->currentData();
- byTmp = (quint8)varTmp.toInt();
- jsonObject["center_freq"] = byTmp;
- }
- //接收同步字
- if(ui->checkBoxRxSyncWordId->isChecked()){
- varTmp = ui->comboBoxRxSyncWordId->currentData();
- byRxSyncWordId = (quint8)varTmp.toInt();
- if(byRxSyncWordId <= 0){
- QMessageBox::critical(this, "提示", "请选择接收同步");
- switchBtnFlag(true);
- return;
- }
- jsonObject["rx_sync_word_id"] = byRxSyncWordId;
- }
- //接收电平
- if(ui->checkBoxRssi->isChecked()){
- byRssi = (qint8)ui->doubleSpinBoxRssi->value();
- jsonObject["rssi"] = byRssi;
- }
- //接收频率
- if(ui->checkBoxCenterFreq->isChecked()){
- varTmp = ui->comboBoxCenterFreq->currentData();
- byTmp = (quint8)varTmp.toInt();
- jsonObject["center_freq"] = byTmp;
- }
- //发射开关
- if(ui->checkBoxTxSwitch->isChecked()){
- varTmp = ui->comboBoxTxSwitch->currentData();
- byTmp = (qint8)varTmp.toInt();
- if(byTmp <= 0){
- QMessageBox::critical(this, "提示", "请选择发射开关");
- switchBtnFlag(true);
- return;
- }
- jsonObject["tx_switch"] = byTmp;
- }
- //发射频率
- if(ui->checkBoxTxCenterFreq->isChecked()){
- varTmp = ui->comboBoxTxCenterFreq->currentData();
- byTxFreqId = (quint8)varTmp.toInt();
- //校验接收频率与发射频率间的关系
- if(abs(byTxFreqId - byRxFreqId) < 4){
- QMessageBox::critical(this, "提示", "发射频率非法");
- switchBtnFlag(true);
- return;
- }
- jsonObject["tx_center_freq"] = byTxFreqId;
- }
- //发射同步字
- if(ui->checkBoxTxSyncWordId->isChecked()){
- varTmp = ui->comboBoxTxSyncWordId->currentData();
- byTxSyncWordId = (qint8)varTmp.toInt();
- if(byTxSyncWordId <= 0){
- QMessageBox::critical(this, "提示", "请选择发射同步");
- switchBtnFlag(true);
- return;
- }else{
- if(byTxSyncWordId != byRxSyncWordId+1){
- QMessageBox::critical(this, "提示", "发射同步编号非法");
- switchBtnFlag(true);
- return;
- }
- }
- jsonObject["tx_sync_word_id"] = byTxSyncWordId;
- }
- //发射功率
- if(ui->checkBoxTxPower->isChecked()){
- varTmp = ui->comboBoxTxPower->currentData();
- byTmp = (quint8)varTmp.toInt();
- if(byTmp <= 0){
- QMessageBox::critical(this, "提示", "请选择发射功率");
- switchBtnFlag(true);
- return;
- }
- byTxPower = byTmp - 11;
- jsonObject["tx_power"] = byTxPower;
- }
- //开启按钮
- switchBtnFlag(true);
- //发送post请求
- emit SignalUploadBtsBaseParamUpdate("guiUploadBtsBaseParamUpdate", jsonObject);
- return;
- }
|