diff --git a/product/src/tools/debug_tool/CDebugTool.cpp b/product/src/tools/debug_tool/CDebugTool.cpp index cc3940ab..d111301f 100644 --- a/product/src/tools/debug_tool/CDebugTool.cpp +++ b/product/src/tools/debug_tool/CDebugTool.cpp @@ -95,6 +95,8 @@ void CDebugTool::addRealData() m_pRealDataWatch->initWatch(); ui->textEdit_status->setToolTip("具体状态"); + m_pRealDataSelect->setRealDataWatch(m_pRealDataWatch); + } void CDebugTool::addRealAlarm() { @@ -205,6 +207,7 @@ void CDebugTool::connectSignalSlot() m_pRealDatabaseShow,SLOT(slot_showOrHindColumn(int,int))); connect(m_pRealDataWatch,SIGNAL(signal_selectTextEdit(QString ,QString , int )), this,SLOT(slot_selectTextEdit(QString,QString, int ))); + connect(m_pRealDataWatch,SIGNAL(signal_paging()),m_pRealDataSelect,SLOT(slot_paging())); connect(m_pRealDatabaseShow,SIGNAL(signal_selectTextEdit(QString)), this,SLOT(slot_selectTextEdit(QString))); } diff --git a/product/src/tools/debug_tool/CEventDataCollect.cpp b/product/src/tools/debug_tool/CEventDataCollect.cpp index 6617d5a3..e3c56cec 100644 --- a/product/src/tools/debug_tool/CEventDataCollect.cpp +++ b/product/src/tools/debug_tool/CEventDataCollect.cpp @@ -8,7 +8,19 @@ #include "public/pub_sysinfo_api/SysInfoApi.h" #include "perm_mng_api/PermMngApi.h" #include "CEventMsgManage.h" + +//< 屏蔽xml_parser编译告警 +#ifdef __GNUC__ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-copy" +#endif + #include "boost/property_tree/xml_parser.hpp" + +#ifdef __GNUC__ +#pragma GCC diagnostic pop +#endif + #include "boost/typeof/typeof.hpp" #include "boost/filesystem.hpp" #include "Common.h" diff --git a/product/src/tools/debug_tool/CEventFormShow.cpp b/product/src/tools/debug_tool/CEventFormShow.cpp index 5113b58e..327e0f7b 100644 --- a/product/src/tools/debug_tool/CEventFormShow.cpp +++ b/product/src/tools/debug_tool/CEventFormShow.cpp @@ -24,7 +24,7 @@ CEventFormShow::~CEventFormShow() void CEventFormShow::initRealModel() { CEventDataCollect::setSystemResources(m_pSystemResources); - QSettings columFlags("KBD_HMI", "eventReal config"); + QSettings columFlags("IOT_HMI", "eventReal config"); if(!columFlags.contains(QString("eventReal/colum_0"))) { columFlags.setValue(QString("eventReal/colum_0"), false); //< 时间 @@ -49,7 +49,7 @@ void CEventFormShow::initRealModel() } ui->eventView->setModel(m_pRealTimeModel); m_pRealDelegate->setEventModel(m_pRealTimeModel); - QSettings columFlags1("KBD_HMI", "eventReal config"); + QSettings columFlags1("IOT_HMI", "eventReal config"); for(int nColumnIndex(0); nColumnIndex < m_pRealTimeModel->columnCount() - 1; nColumnIndex++) { bool visible = columFlags1.value(QString("eventReal/colum_%1").arg(nColumnIndex)).toBool(); diff --git a/product/src/tools/debug_tool/CRealDataControl.cpp b/product/src/tools/debug_tool/CRealDataControl.cpp index b7342b11..c5a9078e 100644 --- a/product/src/tools/debug_tool/CRealDataControl.cpp +++ b/product/src/tools/debug_tool/CRealDataControl.cpp @@ -252,8 +252,7 @@ void CRealDataControl::exeSetAiLimit() aiLimitQueue.fValue = value; strAiLimitSet.stHead = head; strAiLimitSet.vecAiLimitQueue.push_back(aiLimitQueue); - CAiLimitSet objAiLimitSet; - std::string jsonObj = objAiLimitSet.generate(strAiLimitSet); + std::string jsonObj = CAiLimitSet::generate(strAiLimitSet); int msgType = ui->comboBox_cmdType->currentData().toInt(); iot_net::CMbMessage msg = iot_net::CMbMessage(jsonObj,m_stAppInfo.nId,CH_HMI_TO_OPT_OPTCMD_DOWN,msgType); @@ -287,9 +286,9 @@ void CRealDataControl::exeInhibitRef() optTagQueue.nLocationId = m_nDestLocationId; optTagQueue.nSubSystem = m_nDestSubSystemId; optTagSet.vecTagQueue.push_back(optTagQueue); - COptTagSet objOptTagSet; + int msgType = ui->comboBox_cmdType->currentData().toInt(); - std::string jsonObj = objOptTagSet.generate(optTagSet); + std::string jsonObj = COptTagSet::generate(optTagSet); iot_net::CMbMessage msg = iot_net::CMbMessage(jsonObj,m_stAppInfo.nId,CH_HMI_TO_OPT_OPTCMD_DOWN,msgType); if(!m_pSendComm->sendMsgToDomain(msg,m_pSystemResources->getDomainIdByLocationId(m_nDestLocationId))) { @@ -322,9 +321,9 @@ void CRealDataControl::exeInhibitAlarm() optTagQueue.nLocationId = m_nDestLocationId; optTagQueue.nSubSystem = m_nDestSubSystemId; optTagSet.vecTagQueue.push_back(optTagQueue); - COptTagSet objOptTagSet; + int msgType = ui->comboBox_cmdType->currentData().toInt(); - std::string jsonObj = objOptTagSet.generate(optTagSet); + std::string jsonObj = COptTagSet::generate(optTagSet); iot_net::CMbMessage msg = iot_net::CMbMessage(jsonObj,m_stAppInfo.nId,CH_HMI_TO_OPT_OPTCMD_DOWN,msgType); if(!m_pSendComm->sendMsgToDomain(msg,m_pSystemResources->getDomainIdByLocationId(m_nDestLocationId))) { @@ -356,9 +355,9 @@ void CRealDataControl::exeInhibitCtrl() optTagQueue.nLocationId = m_nDestLocationId; optTagQueue.nSubSystem = m_nDestSubSystemId; optTagSet.vecTagQueue.push_back(optTagQueue); - COptTagSet objOptTagSet; + int msgType = ui->comboBox_cmdType->currentData().toInt(); - std::string jsonObj = objOptTagSet.generate(optTagSet); + std::string jsonObj = COptTagSet::generate(optTagSet); iot_net::CMbMessage msg = iot_net::CMbMessage(jsonObj,m_stAppInfo.nId,CH_HMI_TO_OPT_OPTCMD_DOWN,msgType); if(!m_pSendComm->sendMsgToDomain(msg,m_pSystemResources->getDomainIdByLocationId(m_nDestLocationId))) { @@ -397,9 +396,9 @@ void CRealDataControl::exeSetValue() optTagQueue.nLocationId = m_nDestLocationId; optTagQueue.nSubSystem = m_nDestSubSystemId; optTagSet.vecTagQueue.push_back(optTagQueue); - COptTagSet objOptTagSet; + int msgType = ui->comboBox_cmdType->currentData().toInt(); - std::string jsonObj = objOptTagSet.generate(optTagSet); + std::string jsonObj = COptTagSet::generate(optTagSet); iot_net::CMbMessage msg = iot_net::CMbMessage(jsonObj,m_stAppInfo.nId,CH_HMI_TO_OPT_OPTCMD_DOWN,msgType); if(!m_pSendComm->sendMsgToDomain(msg,m_pSystemResources->getDomainIdByLocationId(m_nDestLocationId))) { @@ -436,9 +435,7 @@ void CRealDataControl::exeCtrlRequest() optCtrlRequest.vecOptCtrlQueue.push_back(optCtrlReqQueue); int msgType = ui->comboBox_cmdType->currentData().toInt(); - - COptCtrlRequest objOptCtrlRequest; - std::string objJson = objOptCtrlRequest.generate(optCtrlRequest); + std::string objJson = COptCtrlRequest::generate(optCtrlRequest); iot_net::CMbMessage msg = iot_net::CMbMessage(objJson,m_stAppInfo.nId,CH_HMI_TO_OPT_OPTCMD_DOWN,msgType); if(!m_pSendComm->sendMsgToDomain(msg,m_pSystemResources->getDomainIdByLocationId(m_nDestLocationId))) { @@ -468,14 +465,23 @@ void CRealDataControl::exeCtrlSelect() QString columnName = "value"; optCtrlReqQueue.strKeyIdTag = (tableName+"."+strTagName+"."+columnName).toStdString(); optCtrlReqQueue.nCtrlType = 0; - if(ui->comboBox_ctrlValue->count()) + + if("ANALOG" == m_strTableName) { - optCtrlReqQueue.dTargetValue = ui->comboBox_ctrlValue->currentData().toInt(); + optCtrlReqQueue.dTargetValue = ui->lineEdit_ctrlValue->text().toFloat(); } else { - optCtrlReqQueue.dTargetValue = 0.0; + if(ui->comboBox_ctrlValue->count()) + { + optCtrlReqQueue.dTargetValue = ui->comboBox_ctrlValue->currentData().toInt(); + } + else + { + optCtrlReqQueue.dTargetValue = 0.0; + } } + optCtrlReqQueue.nCtrlActType = 0; optCtrlReqQueue.strCtrlActName = ""; optCtrlReqQueue.strOffsetNo = ""; @@ -486,8 +492,7 @@ void CRealDataControl::exeCtrlSelect() int msgType = ui->comboBox_cmdType->currentData().toInt(); - COptCtrlRequest objOptCtrlRequest; - std::string objJson = objOptCtrlRequest.generate(optCtrlRequest); + std::string objJson = COptCtrlRequest::generate(optCtrlRequest); iot_net::CMbMessage msg = iot_net::CMbMessage(objJson,m_stAppInfo.nId,CH_HMI_TO_OPT_OPTCMD_DOWN,msgType); if(!m_pSendComm->sendMsgToDomain(msg,m_pSystemResources->getDomainIdByLocationId(m_nDestLocationId))) { @@ -515,13 +520,21 @@ void CRealDataControl::exeCtrlExecute() QString columnName = "value"; optCtrlReqQueue.strKeyIdTag = (tableName+"."+strTagName+"."+columnName).toStdString(); optCtrlReqQueue.nCtrlType = 0; - if(ui->comboBox_ctrlValue->count()) + + if("ANALOG" == m_strTableName) { - optCtrlReqQueue.dTargetValue = ui->comboBox_ctrlValue->currentData().toInt(); + optCtrlReqQueue.dTargetValue = ui->lineEdit_ctrlValue->text().toFloat(); } else { - optCtrlReqQueue.dTargetValue = 0.0; + if(ui->comboBox_ctrlValue->count()) + { + optCtrlReqQueue.dTargetValue = ui->comboBox_ctrlValue->currentData().toInt(); + } + else + { + optCtrlReqQueue.dTargetValue = 0.0; + } } optCtrlReqQueue.nCtrlActType = 0; optCtrlReqQueue.strCtrlActName = ""; @@ -533,8 +546,7 @@ void CRealDataControl::exeCtrlExecute() int msgType = ui->comboBox_cmdType->currentData().toInt(); - COptCtrlRequest objOptCtrlRequest; - std::string objJson = objOptCtrlRequest.generate(optCtrlRequest); + std::string objJson = COptCtrlRequest::generate(optCtrlRequest); iot_net::CMbMessage msg = iot_net::CMbMessage(objJson,m_stAppInfo.nId,CH_HMI_TO_OPT_OPTCMD_DOWN,msgType); if(!m_pSendComm->sendMsgToDomain(msg,m_pSystemResources->getDomainIdByLocationId(m_nDestLocationId))) { @@ -561,14 +573,23 @@ void CRealDataControl::exeCtrlCancel() QString columnName = "value"; optCtrlReqQueue.strKeyIdTag = (tableName+"."+strTagName+"."+columnName).toStdString(); optCtrlReqQueue.nCtrlType = 0; - if(ui->comboBox_ctrlValue->count()) + + if("ANALOG" == m_strTableName) { - optCtrlReqQueue.dTargetValue = ui->comboBox_ctrlValue->currentData().toInt(); + optCtrlReqQueue.dTargetValue = ui->lineEdit_ctrlValue->text().toFloat(); } else { - optCtrlReqQueue.dTargetValue = 0.0; + if(ui->comboBox_ctrlValue->count()) + { + optCtrlReqQueue.dTargetValue = ui->comboBox_ctrlValue->currentData().toInt(); + } + else + { + optCtrlReqQueue.dTargetValue = 0.0; + } } + optCtrlReqQueue.nCtrlActType = 0; optCtrlReqQueue.strCtrlActName = ""; optCtrlReqQueue.strOffsetNo = ""; @@ -578,8 +599,7 @@ void CRealDataControl::exeCtrlCancel() optCtrlRequest.vecOptCtrlQueue.push_back(optCtrlReqQueue); int msgType = ui->comboBox_cmdType->currentData().toInt(); - COptCtrlRequest objOptCtrlRequest; - std::string objJson = objOptCtrlRequest.generate(optCtrlRequest); + std::string objJson = COptCtrlRequest::generate(optCtrlRequest); iot_net::CMbMessage msg = iot_net::CMbMessage(objJson,m_stAppInfo.nId,CH_HMI_TO_OPT_OPTCMD_DOWN,msgType); if(!m_pSendComm->sendMsgToDomain(msg,m_pSystemResources->getDomainIdByLocationId(m_nDestLocationId))) { @@ -617,8 +637,7 @@ void CRealDataControl::exeCtrlClose() optCtrlRequest.vecOptCtrlQueue.push_back(optCtrlReqQueue); int msgType = ui->comboBox_cmdType->currentData().toInt(); - COptCtrlRequest objOptCtrlRequest; - std::string objJson = objOptCtrlRequest.generate(optCtrlRequest); + std::string objJson = COptCtrlRequest::generate(optCtrlRequest); iot_net::CMbMessage msg = iot_net::CMbMessage(objJson,m_stAppInfo.nId,CH_HMI_TO_OPT_OPTCMD_DOWN,msgType); if(!m_pSendComm->sendMsgToDomain(msg,m_pSystemResources->getDomainIdByLocationId(m_nDestLocationId))) { @@ -825,9 +844,8 @@ void CRealDataControl::OptPointQuery() void CRealDataControl::ctrlRequestReply(const std::string &strMsg) { int nRetCode = -1; - COptCtrlReply objOptCtrlReply; SOptCtrlReply stOptCtrlReply; - nRetCode = objOptCtrlReply.parse(strMsg,stOptCtrlReply); + nRetCode = COptCtrlReply::parse(strMsg,stOptCtrlReply); if(nRetCode <= 0) { ui->textBrowser_exeResult->setText(tr("解析返回结果出错")); @@ -898,13 +916,13 @@ void CRealDataControl::setTargetValue(bool &bExist) if(ctrlActName != "") { bExist = true; - strSql = QString("SELECT CTRL_ACT_NAME,CTRL_GRP_NO FROM OPT_CTRL_ACT_DEFINE WHERE CTRL_GRP_NAME = ") + "'" + ctrlActName + "'"; + strSql = QString("SELECT CTRL_ACT_NAME,CTRL_GRP_NO,TARGET_VALUE FROM OPT_CTRL_ACT_DEFINE WHERE CTRL_GRP_NAME = ") + "'" + ctrlActName + "'"; m_pDbInterface->execute(strSql,queryRet); if(queryRet.isActive()) { while(queryRet.next()) { - ui->comboBox_ctrlValue->addItem(ctrlActName+"_"+queryRet.value("CTRL_ACT_NAME").toString(),queryRet.value("CTRL_GRP_NO").toInt()); + ui->comboBox_ctrlValue->addItem(ctrlActName+"_"+queryRet.value("CTRL_ACT_NAME").toString(),queryRet.value("TARGET_VALUE").toInt()); } } } @@ -1120,8 +1138,16 @@ void CRealDataControl::slot_updateOtherArgs(int index) ui->textBrowser_exeStatus->clear(); ui->comboBox_otherArgs->setEnabled(true); ui->lineEdit_ctrlValue->setEnabled(true); - ui->lineEdit_ctrlValue->hide(); - ui->comboBox_ctrlValue->show(); + if("ANALOG" == m_strTableName) + { + ui->lineEdit_ctrlValue->show(); + ui->comboBox_ctrlValue->hide(); + } + else + { + ui->lineEdit_ctrlValue->hide(); + ui->comboBox_ctrlValue->show(); + } ui->comboBox_otherArgs->addItem(tr("占用设备"),true); ui->comboBox_otherArgs->addItem(tr("不占用设备"),false); ui->pushButton_exe->setEnabled(true); @@ -1135,8 +1161,17 @@ void CRealDataControl::slot_updateOtherArgs(int index) ui->textBrowser_exeStatus->clear(); ui->comboBox_otherArgs->setEnabled(true); ui->lineEdit_ctrlValue->setEnabled(true); - ui->lineEdit_ctrlValue->hide(); - ui->comboBox_ctrlValue->show(); + if("ANALOG" == m_strTableName) + { + ui->lineEdit_ctrlValue->show(); + ui->comboBox_ctrlValue->hide(); + } + else + { + ui->lineEdit_ctrlValue->hide(); + ui->comboBox_ctrlValue->show(); + } + ui->comboBox_otherArgs->addItem(tr("占用设备"),true); ui->comboBox_otherArgs->addItem(tr("不占用设备"),false); ui->pushButton_exe->setEnabled(true); @@ -1150,8 +1185,16 @@ void CRealDataControl::slot_updateOtherArgs(int index) ui->textBrowser_exeStatus->clear(); ui->comboBox_otherArgs->setEnabled(true); ui->lineEdit_ctrlValue->setEnabled(true); - ui->lineEdit_ctrlValue->hide(); - ui->comboBox_ctrlValue->show(); + if("ANALOG" == m_strTableName) + { + ui->lineEdit_ctrlValue->show(); + ui->comboBox_ctrlValue->hide(); + } + else + { + ui->lineEdit_ctrlValue->hide(); + ui->comboBox_ctrlValue->show(); + } ui->comboBox_otherArgs->addItem(tr("占用设备"),true); ui->comboBox_otherArgs->addItem(tr("不占用设备"),false); ui->pushButton_exe->setEnabled(true); diff --git a/product/src/tools/debug_tool/CRealDataSelect.cpp b/product/src/tools/debug_tool/CRealDataSelect.cpp index 6f57c62c..58675358 100644 --- a/product/src/tools/debug_tool/CRealDataSelect.cpp +++ b/product/src/tools/debug_tool/CRealDataSelect.cpp @@ -31,6 +31,11 @@ void CRealDataSelect::setSystemResources(CSystemResources *pSystemResources) m_pSystemResources = pSystemResources; } +void CRealDataSelect::setRealDataWatch(CRealDataWatch *pWatch) +{ + m_pRealDataWatch = pWatch; +} + CRealDataSelect::~CRealDataSelect() { @@ -362,9 +367,26 @@ void CRealDataSelect::solt_showPoint(QTreeWidgetItem* _item, int treeIndex) tableNameList.append(constTableName); pointType.append(tr("常量")); + //分页信息 + QString keyword; + int nCurPage = 0; + int nPageSize = 0; + m_pRealDataWatch->getFilterAndPageInfo(keyword,nCurPage,nPageSize); + QString strSql1 = "SELECT DESCRIPTION,TAG_NAME FROM "; QString strSql2 = QString(" WHERE DEVICE = ")+QString("'")+ devTage+"'"; + + if(nCurPage != 0 && nPageSize != 0) + { + if(!keyword.isEmpty()) + { + strSql2 += QString(" and DESCRIPTION LIKE '%%1%'").arg(keyword); + } + + strSql2 += QString(" LIMIT %1,%2").arg((nCurPage -1)*nPageSize).arg(nPageSize); + } + uint rowCount = 0; int j = 0; QTableWidgetItem *item; @@ -696,6 +718,11 @@ void CRealDataSelect::slot_selectTreeDevGroup(int) } +void CRealDataSelect::slot_paging() +{ + solt_showPoint(ui->treeWidget_devGroup->currentItem(),ui->treeWidget_devGroup->currentColumn()); +} + void CRealDataSelect::slot_addAllCurrentPoint(QTreeWidgetItem *, int) { int rowCount = ui->tableWidget_MesurePoint->rowCount(); diff --git a/product/src/tools/debug_tool/CRealDataSelect.h b/product/src/tools/debug_tool/CRealDataSelect.h index a94c9c64..cff3738a 100644 --- a/product/src/tools/debug_tool/CRealDataSelect.h +++ b/product/src/tools/debug_tool/CRealDataSelect.h @@ -10,6 +10,7 @@ #include "db_api_ex/CDbApi.h" #include "CSystemResources.h" #include +#include "CRealDataWatch.h" namespace Ui { @@ -23,7 +24,9 @@ class CRealDataSelect : public QWidget public: explicit CRealDataSelect(QWidget *parent = 0); void setSystemResources(CSystemResources *); + void setRealDataWatch(CRealDataWatch *pWatch); void initSelect(); + ~CRealDataSelect(); signals: @@ -41,17 +44,14 @@ private slots: //void slot_selectTreeDevGroup(int); void slot_addAllCurrentPoint(QTreeWidgetItem*,int); void slot_selectTreeDevGroup(int); - - - - + void slot_paging(); private: Ui::CRealDataSelect *ui; iot_dbms::CDbApi *m_pObjDbInterface; CSystemResources *m_pSystemResources; // bool m_isFristQuery; - + CRealDataWatch *m_pRealDataWatch; private: void initView(); diff --git a/product/src/tools/debug_tool/CRealDataWatch.cpp b/product/src/tools/debug_tool/CRealDataWatch.cpp index de45d9e4..b3fc37ad 100644 --- a/product/src/tools/debug_tool/CRealDataWatch.cpp +++ b/product/src/tools/debug_tool/CRealDataWatch.cpp @@ -29,6 +29,11 @@ CRealDataWatch::CRealDataWatch(QWidget *parent) : pSearchLayout->addWidget(m_pSearchButton); ui->lineEdit->setLayout(pSearchLayout); ui->checkBox_append->setChecked(false); + + ui->checkBox_paging->setChecked(false); //todo:分页实现不完善,临时实现 + ui->lineEdit_pageNum->setAlignment(Qt::AlignHCenter); + m_nCurPageNum = 0; + m_nPageSize = 0; } CRealDataWatch::~CRealDataWatch() @@ -275,7 +280,7 @@ void CRealDataWatch::slot_addPoint(QString locationName, uint locationId, m_pDpcdaForApp->subscribe(tableName.toLower().toStdString(), pointTagName.toStdString(), QString("value").toStdString()); - m_pDpcdaForApp->subscribe(tableName.toStdString(), + m_pDpcdaForApp->subscribe(tableName.toLower().toStdString(), pointTagName.toStdString(), QString("status").toStdString()); @@ -550,6 +555,8 @@ void CRealDataWatch::slot_updateMi(QString tagName, int value, uint status) void CRealDataWatch::slot_pointFilter() { + emit signal_paging(); + filter(); } @@ -736,3 +743,53 @@ void CRealDataWatch::slot_selectTextEdit(QString allStatus,QString m_allName, in { emit signal_selectTextEdit(allStatus,m_allName,m_value); } + + +void CRealDataWatch::getFilterAndPageInfo(QString &keyword,int &nCurPage, int &nPageSize) +{ + keyword = ui->lineEdit->text().trimmed(); + nCurPage = m_nCurPageNum; + nPageSize = m_nPageSize; +} + +void CRealDataWatch::on_checkBox_paging_stateChanged(int arg1) +{ + if(arg1 == 2) //选中 + { + m_nCurPageNum = 1; + m_nPageSize = 100; + ui->lineEdit_pageNum->setText(QString::number(m_nCurPageNum)); + } + else if(arg1 == 0) + { + m_nCurPageNum = 0; + m_nPageSize = 0; + } +} + +void CRealDataWatch::on_btn_pre_clicked() +{ + m_nCurPageNum = m_nCurPageNum > 1 ? (m_nCurPageNum-1) : 1; + ui->lineEdit_pageNum->setText(QString::number(m_nCurPageNum)); + + emit signal_paging(); +} + +void CRealDataWatch::on_btn_next_clicked() +{ + ++m_nCurPageNum; + ui->lineEdit_pageNum->setText(QString::number(m_nCurPageNum)); + + emit signal_paging(); +} + +void CRealDataWatch::on_btn_status_search_clicked() +{ + if(m_searchDialog != NULL) + m_searchDialog->show(); + else + { + m_searchDialog = new CStatusDialog(m_pSystemResources,this); + m_searchDialog->show(); + } +} diff --git a/product/src/tools/debug_tool/CRealDataWatch.h b/product/src/tools/debug_tool/CRealDataWatch.h index a0a9825b..7835833e 100644 --- a/product/src/tools/debug_tool/CRealDataWatch.h +++ b/product/src/tools/debug_tool/CRealDataWatch.h @@ -37,14 +37,25 @@ private slots: void slot_pointsitemClicked(QTableWidgetItem *item); void slot_selectTextEdit(QString allStatus,QString m_allName, int m_value); + void on_checkBox_paging_stateChanged(int arg1); + + void on_btn_pre_clicked(); + + void on_btn_next_clicked(); + + void on_btn_status_search_clicked(); + public: explicit CRealDataWatch(QWidget *parent = 0); ~CRealDataWatch(); void initWatch(); void setSystemResources(CSystemResources *); void deletePoint(int row); + void getFilterAndPageInfo(QString &keyword,int &nCurPage,int &nPageSize); signals: void signal_selectTextEdit(QString allStatus,QString m_allName, int m_value); + void signal_paging(); + protected: void contextMenuEvent(QContextMenuEvent *event); void keyPressEvent(QKeyEvent *event); @@ -59,6 +70,8 @@ private: QPushButton *m_pSearchButton; CStatusDialog* m_searchDialog; + int m_nCurPageNum;//2个值同时为0时不启用分页 + int m_nPageSize; private: void initVariable(); diff --git a/product/src/tools/debug_tool/CRealDataWatch.ui b/product/src/tools/debug_tool/CRealDataWatch.ui index 4f47e81b..6a694213 100644 --- a/product/src/tools/debug_tool/CRealDataWatch.ui +++ b/product/src/tools/debug_tool/CRealDataWatch.ui @@ -6,7 +6,7 @@ 0 0 - 830 + 858 452 @@ -79,6 +79,13 @@ + + + + 状态查询 + + + @@ -150,6 +157,50 @@ + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + 启用分页 + + + + + + + 上一页 + + + + + + + + 30 + 16777215 + + + + + + + + 下一页 + + + diff --git a/product/src/tools/debug_tool/CTcpClient.cpp b/product/src/tools/debug_tool/CTcpClient.cpp index 562209c7..82e23239 100644 --- a/product/src/tools/debug_tool/CTcpClient.cpp +++ b/product/src/tools/debug_tool/CTcpClient.cpp @@ -313,7 +313,7 @@ int CTcpClient::RxData(unsigned char *buff) printf("TcpClient.cpp 5 Rx Select len<0, socket not exist! len=%d", len); TcpClose(); } - if (FD_ISSET(m_Socket, &fdSet)) + if (INVALID_SOCKET != m_Socket && FD_ISSET(m_Socket, &fdSet)) { #ifdef WIN32 rtn = ::recv(m_Socket , (char *)buff , 1024 , 0); diff --git a/product/src/tools/debug_tool/FesDef.h b/product/src/tools/debug_tool/FesDef.h index 2aaa0df5..9696a067 100644 --- a/product/src/tools/debug_tool/FesDef.h +++ b/product/src/tools/debug_tool/FesDef.h @@ -545,7 +545,7 @@ typedef struct _SFesAcc { char PointTagName[CN_FesMaxTagSize]; char PointDesc[CN_FesMaxDescSize];//2020-01-16 thxiao 增加点描述 float Base; //基值 - float Coeff; //系数; + double Coeff; //系数; int Param1; //规约参数,每种协议各不相同。 如modbus FunNo int Param2; //规约参数,每种协议各不相同。 如modbus DataAddress int Param3; //规约参数,每种协议各不相同。 如modbus InfoNo diff --git a/product/src/tools/debug_tool/FesSimProtocol.h b/product/src/tools/debug_tool/FesSimProtocol.h index f9affc63..17ea1afe 100644 --- a/product/src/tools/debug_tool/FesSimProtocol.h +++ b/product/src/tools/debug_tool/FesSimProtocol.h @@ -400,7 +400,7 @@ typedef struct{ //整形量数值响应 typedef struct { uint32 PointNo; - long Value; + double Value; uint32 Status; uint64 time; //1970-01-01 00:00 至今的毫秒数 }SFesSimAccData; @@ -607,9 +607,9 @@ typedef struct{ short Period; //变化周期,单位:秒 long SetValue; //设置值 uint32 Status; //设值点状态 - int MinValue; //设置值最小值 - int MaxValue; //设置值最大值 - int StepValue; //设置值步长 + float MinValue; //设置值最小值 + float MaxValue; //设置值最大值 + float StepValue; //设置值步长 int RtuNo; // RTU号 -1: 所有RTU 其他:对应RTU号 int PointNo; //点号, -1:RTU所有点 其他:对应点号 }SFesSimAccStartReq; diff --git a/product/src/tools/debug_tool/SingleApplication_p.cpp b/product/src/tools/debug_tool/SingleApplication_p.cpp index e54ce296..d3b1b81e 100644 --- a/product/src/tools/debug_tool/SingleApplication_p.cpp +++ b/product/src/tools/debug_tool/SingleApplication_p.cpp @@ -146,7 +146,7 @@ void SingleApplicationPrivate::initializeMemoryBlock() void SingleApplicationPrivate::startPrimary() { Q_Q(SingleApplication); - q; + //q; // Successful creation means that no main process exists // So we start a QLocalServer to listen for connections QLocalServer::removeServer( blockServerName ); diff --git a/product/src/tools/debug_tool/chanmondlg.cpp b/product/src/tools/debug_tool/chanmondlg.cpp index abeead83..18c798bd 100644 --- a/product/src/tools/debug_tool/chanmondlg.cpp +++ b/product/src/tools/debug_tool/chanmondlg.cpp @@ -15,7 +15,7 @@ #include #include #include -#include + #include "pub_logger_api/logger.h" #define FESSIM_K_LOG_FILE "FesSimLog.txt" #define FESSIM_K_MAX_SHOW_LINES 50000 @@ -47,7 +47,7 @@ ChanMonDlg::ChanMonDlg(int windowId, QWidget *parent) : ui->SelectDisp2->setChecked(m_SelectDisp[1]); ui->SelectDisp3->setChecked(m_SelectDisp[2]); ui->SelectDisp4->setChecked(m_SelectDisp[3]); - // ui->ChanNo->setStyle(QStyleFactory::create("Windows")); + ui->ChanNo->setView(new QListView()); for(i=0;iChanNo->clear(); - m_pdbApi = new iot_dbms::CDbApi(DB_CONN_MODEL_READ); - if(m_pdbApi->open()) + for(i=0;i<2048;i++) { - QSqlQuery ret; - QString strSql = "SELECT CHAN_NO,DESCRIPTION FROM FES_CHANNEL_PARA ORDER BY CHAN_NO"; - m_pdbApi->execute(strSql,ret); - if(ret.isActive()) - { - while(ret.next()) - { - int nChanNo = ret.value("CHAN_NO").toInt(); - QString sChanDesc = ret.value("DESCRIPTION").toString(); - ui->ChanNo->addItem(QString::number(nChanNo) +":"+ sChanDesc); - } - } - } - else - { - for(i=0;i<2048;i++) - { - ui->ChanNo->addItem(QString::number(i)+":通道"+QString::number(i)); - } - qDebug() << "数据库接口打开失败" <ChanNo->addItem(QString::number(i)); } + //m_ListModel = new QStringListModel(this); //m_ListModel->setStringList(m_DataList); //ui->DispListView->setModel(m_ListModel); @@ -94,7 +72,7 @@ ChanMonDlg::ChanMonDlg(int windowId, QWidget *parent) : //m_RefreshTimer = new QTimer(this); //if(m_RefreshTimer!=NULL) - // connect(m_RefreshTimer,SIGNAL(timeout()),this,SLOT(OnRefreshTimer())); + // connect(m_RefreshTimer,SIGNAL(timeout()),this,SLOT(OnRefreshTimer())); connect(ui->RefreshButton,SIGNAL(clicked()),this,SLOT(OnRefresh())); connect(ui->ClearButton,SIGNAL(clicked()),this,SLOT(OnClearDisp())); @@ -128,7 +106,6 @@ ChanMonDlg::~ChanMonDlg() { //if(m_RefreshTimer != NULL) // delete m_RefreshTimer; - m_pdbApi->close(); if (m_openFlag) m_file.close(); @@ -234,11 +211,7 @@ void ChanMonDlg::OnRefresh() //if(!this->isActiveWindow())//只有激活的窗口才可发送数据,避免发送数据冲突。 // return; - QString strChannel = ui->ChanNo->currentText(); - QString str = strChannel.split(":").at(0); - - //QString str=ui->ChanNo->currentText(); - + QString str=ui->ChanNo->currentText(); bool ok; m_ChanNo = str.toInt(&ok,10); if(m_RefreshFlag == 0) diff --git a/product/src/tools/debug_tool/chanmondlg.h b/product/src/tools/debug_tool/chanmondlg.h index ea9d94a3..958d5a50 100644 --- a/product/src/tools/debug_tool/chanmondlg.h +++ b/product/src/tools/debug_tool/chanmondlg.h @@ -11,10 +11,11 @@ #include #include "FesSimProtocol.h" #include "ComProtocolThread.h" -#include "CSystemResources.h" const int CN_ChanMonAnalyzeNum = 4; + + namespace Ui { class ChanMonDlg; } @@ -62,7 +63,6 @@ signals: private: Ui::ChanMonDlg *ui; // QTimer *m_RefreshTimer; - iot_dbms::CDbApi *m_pdbApi; int m_ConnectFlag; //连接成功标志 int m_RefreshFlag; //刷新标志 1:正再刷新 0:停止刷新 bool m_DispRecv; diff --git a/product/src/tools/debug_tool/debug_tool.ico b/product/src/tools/debug_tool/debug_tool.ico index f4393754..d9a231d4 100644 Binary files a/product/src/tools/debug_tool/debug_tool.ico and b/product/src/tools/debug_tool/debug_tool.ico differ diff --git a/product/src/tools/debug_tool/debug_tool.pro b/product/src/tools/debug_tool/debug_tool.pro index c418c030..9d627e6d 100644 --- a/product/src/tools/debug_tool/debug_tool.pro +++ b/product/src/tools/debug_tool/debug_tool.pro @@ -8,7 +8,7 @@ QT += core gui sql xml printsupport QT += network greaterThan(QT_MAJOR_VERSION, 4): QT += widgets -TARGET = debug_tool +TARGET = debug_tool_v1 TEMPLATE = app # The following define makes your compiler emit warnings if you use @@ -245,3 +245,5 @@ RESOURCES += \ contains(DEFINES, OS_WINDOWS) { RC_ICONS = debug_tool.ico } + +TRANSLATIONS = $$PWD/en.ts diff --git a/product/src/tools/debug_tool/en.ts b/product/src/tools/debug_tool/en.ts new file mode 100644 index 00000000..a59028cc --- /dev/null +++ b/product/src/tools/debug_tool/en.ts @@ -0,0 +1,5191 @@ + + + + + AiMonDlg + + + Dialog + Dialog + + + + RTU刷新 + RTU refresh + + + 点配置刷新 + Point refresh + + + + + 数据刷新 + Data refresh + + + 全部 + All + + + 区间 + Interval + + + -- + -- + + + + RTU号 + RTU number + + + + + 使用标志 + Use flag + + + + RTU名称 + RTU name + + + + 点号 + Point number + + + + 标签名 + Tag name + + + + 设备 + Device + + + + 点描述 + Point desc + + + + 点值 + Point value + + + + 点状态 + Point status + + + + 后台标签 + Background Label + + + + 远动号 + Remote Control Number + + + + 时间 + Time + + + + 前置设备 + Front-end Equipment + + + + + + + + 告警 + Alarm + + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + 区域start数据非法或为负,默认为0! + The area start data is illegal or negative, the default is 0! + + + 区域end数据非法或为负,默认为0! + The area end data is illegal or negative, the default is 0! + + + 区域start 大于 区域end点数,两者默认为0! + The area start is greater than the area end points, both of which default to 0! + + + + + 停止刷新 + Stop refresh + + + + CCheckUser + + 账号 + Account + + + 姓名 + Name + + + 用户组 + User group + + + 密码 + Password + + + 验证 + Validation + + + 取消 + Cancel + + + 权限验证 + Permission to verify + + + 提示 + Prompt + + + 请输入正确的账号 + Please enter the correct account + + + 账号不能为空 + Account can not be empty + + + 账号不存在 + Account does not exist + + + 权限接口错误 + Permission interface error + + + 密码错误 + wrong password + + + + CDebugTool + + + CDebugTool + CDebugTool + + + + 事件信息 + Event Information + + + + 实时数据 + Real data + + + + 测点选择 + Point selection + + + + 测点监控 + Point monitoring + + + + 实时库表 + Rtdb table + + + + 表选择 + Table selection + + + + 表内容 + Table contents + + + 筛选向导 + Screening Wizard + + + 实时报警 + Real-time alarm + + + 实时事件 + Real-time events + + + 历史事件 + Historical events + + + 节点状态 + Node status + + + 前置通道 + Fes channel + + + + 前置数据 + Fes data + + + + 工程调试工具 + Engineering debugging tools + + + + CEventDataCollect + + + + + + + + + + 错误 + Error + + + + + + + + + + + 打开数据库失败 + Failed to open the database + + + + 其他 + Other + + + + CEventFilterDialog + + + 过滤 + Filter + + + + 时间 + Time + + + + 开始时间 + Start Time + + + + + yyyy/MM/dd hh:mm + yyyy/MM/dd hh:mm + + + + 结束时间 + End Time + + + + 优先级 + Priority + + + + + + + 全选 + Select all + + + + 位置 + Location + + + + 责任区 + Responsibility Zone + + + + 事件状态 + Event Status + + + + 确定 + Confirm + + + + 取消 + Cancel + + + + 设备类型 + Device Type + + + + 事件内容关键字 + Event Content Keywords + + + + 复归 + Reset + + + + 已复归 + Reset Done + + + + 未复归 + Not Reset + + + + CEventFormShow + + + Form + Form + + + + CEventItemModel + + + 时间 + Time + + + + 优先级 + Priority + + + + 位置 + Location + + + + 责任区 + Responsible Area + + + + 事件类型 + Event Type + + + + 事件状态 + Event Status + + + + 复归状态 + Restoration Status + + + + 事件内容 + Event Details + + + + 未复归 + Not Restored + + + + 已复归 + Restored + + + + CFesChanData + + + Form + Form + + + + CFesChannel + + 专业通道 + Sub channel + + + 专业 + Sub + + + 通道 + Channel + + + 通道状态 + Channel status + + + + CFesCtrlSim + + + Form + Form + + + + 模拟量控制 + Analog Control + + + + 数字量控制 + Digital Control + + + + 混合量控制 + Hybrid Control + + + + 自定义控制 + Custom Control + + + + CFesData + + + Form + Form + + + 专业选择 + Sub choice + + + 通讯状态: + Communication status: + + + + 模拟量 + Analog + + + + 数字量 + Digital + + + + 累积量 + Accuml + + + + 混合量 + Mix + + + 通讯中断 + Disconnect + + + 告警 + Alarm + + + 获取进程所在目录失败 + Failed to get the directory where the process is located + + + SYS_MODEL_APP_INFO.xml 配置文件无法打开! + SYS_MODEL_APP_INFO.xml, The configuration file cannot be opened! + + + 通信连接 + Connection + + + 通信中断 + Disconnect + + + + CFesDataSim + + + Form + Form + + + + 模拟量仿真 + Analog Simulation + + + + 数字量仿真 + Digital Simulation + + + + 累积量仿真 + Accumulated Quantity Simulation + + + + 混合量仿真 + Mixed Quantity Simulation + + + + 事件仿真 + Event Simulation + + + + CFesEvent + + + Form + Form + + + + SOE事件 + SOE Event + + + + 通道事件 + Channel Event + + + + SOE内存 + SOE Memory + + + + CFesForwardData + + + Form + Form + + + + 模拟量 + Analog + + + + 单点数字量 + Single Point Digital + + + + 双点数字量 + Dual Point Digital + + + + 累积量 + Accuml + + + + 混合量 + Mix + + + + CFesParamShow + + + Form + Form + + + + 通道参数 + Channel Parameters + + + + RTU参数 + RTU Parameters + + + + CFessim + + + Form + Form + + + + 通讯状态 + Communication Status + + + + 前置数据 + Pre-stage Data + + + + 数据仿真 + Data Simulation + + + + 控制仿真 + Control Simulation + + + + 事件监视 + Event Monitoring + + + + 转发数据 + Forward Data + + + + 通道报文 + Channel Message + + + + 61850工具 + 61850 Tools + + + + 专业名称 + Professional Name + + + + IP地址 + IP Address + + + + 网络端口 + Network Port + + + + 连接/断开 + Connect/Disconnect + + + + 通讯状态: + Communication Status: + + + + + 连接 + Connect + + + + + 通讯断开 + Disconnect + + + + 警告 + Warning + + + + 网络端口错误,无法连接网络 + Network port error, unable to connect to the network + + + + 断开 + Disconnect + + + + 通讯连接 + Communication Connected + + + + CHistoryEvent + + + Form + Form + + + + 查询 + Query + + + + 打印 + Print + + + + 事件条数 + Number of Events + + + + CLoginTool + + 中文 + Chinese + + + 用户 + User + + + 密码 + Password + + + IP地址 + IP address + + + 端口 + Port + + + 数据库类型 + DB type + + + 数据库名称 + DB name + + + 登录 + Login + + + 取消 + Cancel + + + 提示 + prompt + + + 请输入正确的端口号 + Please enter the correct port number + + + 系统初始化失败 + System initialization failed + + + 数据库设置 + DB settings + + + + CMyCalendar + + + Form + Form + + + + 至 + To + + + + 取消 + Cancel + + + + CNodeStatus + + + Form + Form + + + + 关键字 + Keyword + + + + 查找 + Search + + + + 刷新 + Refresh + + + + 全部选中 + Select All + + + + 全部取消 + Deselect All + + + + CRealAlarm + + + Form + + + + + 全部确认 + Confirm all + + + + 当前页确认 + Current page confirm + + + + 所选确认 + Selected confirm + + + + 取消选择 + Cancel selection + + + + 刷新 + Refresh + + + + 停止刷新 + Stop refresh + + + + + 选中条数 + Selected number + + + + 总报警条数 + Total number of alarms + + + + 未确认条数 + Unconfirmed + + + + 级别排序 + Rank order + + + + 滚动刷新 + Rolling refresh + + + + 状态筛选 + Status filtering + + + + 当前报警条数 + Number of current alarms + + + 报警类型 + Alarm type + + + 报警状态 + Alarm status + + + 时标 + Time + + + 域ID + Domain ID + + + 位置ID + location ID + + + 报警内容 + Alarm content + + + 报警优先级id + Alarm priority id + + + 设备类型ID + Device type ID + + + 责任区ID + Responsibility area ID + + + 测点ID + Point ID + + + 设备 + Device + + + + CRealDataControl + + + Form + Form + + + + 控制测点: + Control Points: + + + + 命令类型: + Command Type: + + + + 其他参数: + Other Parameters: + + + + 控制数值: + Control Value: + + + + 执行命令 + Execute Command + + + + 状态查询 + Status Inquiry + + + + 执行状态 + Execution Status + + + + 反馈结果 + Feedback Result + + + + 设置AI限值 + Set AI limits + + + + + + + 服务点禁止刷新报文 + Service point forbids refresh message + + + 服务点禁止报警报文 + Service point prohibits alarm message + + + + + + 服务点禁止告警报文 + Service Point Prohibition Alarm Message + + + + + + + 人工置数报文 + Manual Set Message + + + + + + 遥控请求 + Remote Control Request + + + + + + 遥控选择 + Remote Control Selection + + + + + + 遥控执行 + Remote execution + + + + + + 遥控取消 + Remote cancel + + + + + + 遥控关闭 + Remote shutdown + + + + + 提示 + prompt + + + + + 请输入正确的数值 + Please enter the correct value + + + + + + + 等待返回结果中。。。。 + Waiting for results. . . . + + + + 程序猿还在写 + Program ape is still writing + + + + + + 远程查询实时数据库失败 + Remote query of real-time database failed + + + + 未查询到测点 + No query points found + + + + 限值 + Limit + + + + + 禁止刷新:未设置 + + Disable refresh: not set + + + + + 禁止告警:未设置 + + Prohibit Alarm: Not Set + + + + 禁止刷新:已设置 + + Do Not Refresh: Set + + + + 禁止告警:已设置 + + Do Not Alert: Set + + + 禁止告警:未设置 + Prohibit Alarm: Not Set + + + 禁止告警:已设置 + Prohibit Alarm: Set + + + 禁止报警:未设置 + Disable alarm: not set + + + + + 人工置数:未设置 + Manual Setting: Not Set + + + 禁止刷新:已设置 + Prohibit Refresh: Set + + + 禁止报警:已设置 + Disable alarm: set + + + + 人工置数: + Manual Setting: + + + + 解析返回结果出错 + Error Parsing Return Result + + + + 接受返回结果超时 + Timeout Accepting Return Result + + + + + + + + + 该命令无反馈结果 + No feedback results for this command + + + + + + + 取消 + Cancel + + + + + + + 设置 + Set up + + + + + + + 占用设备 + Occupied equipment + + + + + + + 不占用设备 + No equipment occupied + + + + + 程序猿还没写完 + Program ape has not finished + + + + CRealDataSelect + + + Form + Form + + + + 位置 + Location + + + + 专业 + Specialty + + + + 设备组 + Equipment Group + + + + 查询 + Query + + + 设备 + Device + + + + 测点 + Measurement Point + + + 所有位置 + All Locations + + + 所有专业 + All Specialties + + + 所有设备组 + All Equipment Groups + + + + 请输入描述信息 + Please enter description information + + + + 类型 + Type + + + + + 模拟量 + Analog + + + + + 数字量 + Digital + + + + + 累积量 + Accuml + + + 累计量 + Accuml + + + + + 混合量 + Mix + + + + 常量 + Const + + + + CRealDataWatch + + + Form + + + + 查找 + Search + + + + 测点描述: + Measurement Point Description: + + + + 状态查询 + Status Inquiry + + + + + 全选 + Select All + + + + 模拟量 + Analog Quantity + + + + 数字量 + Digital Quantity + + + + 累积量 + Accumulated Quantity + + + + 混合量 + Mixed Quantity + + + + 启用分页 + Enable Pagination + + + + 上一页 + Previous Page + + + + 下一页 + Next Page + + + + 累加式 + Cumulative + + + 常量 + Constant + + + 测点删除 + Delete Measurement Point + + + Del + Delete + + + 反选 + Invert Selection + + + + 删除 + Delete + + + + 取消选择 + Cancel selection + + + + 请输入描述信息 + Please enter a description + + + + 设备 + Device + + + + 测点 + Point + + + + 位置 + Location + + + + 专业 + Sub + + + + 类型 + Type + + + + 标签 + Tag + + + + 值 + Value + + + + 状态 + Status + + + + 设备组 + Dev group + + + + RTU + RTU + + + + SEQ_NO + SEQ_NO + + + + 是否可控 + Whether controllable + + + + + 提示 + prompt + + + + const类型测点未配置 + Const type measuring point is not configured + + + + + 否 + No + + + + 是 + Yes + + + 所有位置 + All locations + + + 所有专业 + All Subs + + + + 操作 + Operating + + + + 当前未选中任何项! + No items are currently selected! + + + + CRealDatabaseFilter + + 选择字段 + Field + + + 句内条件 + In condition + + + 筛选内容 + Content + + + 句间条件 + Inter condition + + + 添加 + Add + + + 删除 + Delete + + + 执行 + Perform + + + 提示 + Prompt + + + 条件内容为空 + Condition content is empty + + + 列为空 + Column is empty + + + 请选择一个条件行 + Please select a condition line + + + + CRealDatabaseSelect + + + Form + + + + + 位置 + Location + + + + 专业 + Sub + + + + + 表 + Table + + + + 设备组 + Equipment Group + + + + 列 + Column + + + 应用 + Application + + + 表选择 + Table Selection + + + 列选择 + Column Selection + + + + 所有列 + All Columns + + + + 实时数据库选择初始化变量失败 + Initialization of real-time database selection variable failed + + + + 模拟量 + Analog Quantity + + + + 数字量 + Digital Quantity + + + + 累积量 + Accumulative Quantity + + + + 混合量 + Mixed Quantity + + + + CRealDatabaseShow + + + Form + + + + + 设备组 + Dev group + + + + 设备 + Device + + + + RTU + RTU + + + + 前置设备 + Front-end Equipment + + + + 状态查询 + Status Inquiry + + + 专业 + Specialty + + + 设备标签 + Equipment Label + + + 提示 + Hint + + + + + 所有设备 + All Equipment + + + 所有专业 + All Specialties + + + 未知的数据类型 + Unknown Data Type + + + 第 + Incorrect conditional value input in the + + + 行条件数值输入有错 + line + + + + CRealEvent + + + Form + Form + + + + 滚动刷新 + Scroll Refresh + + + + 筛选状态 + Screen Status + + + + 筛选 + Screen + + + + 打印 + Print + + + + 事件条数 + Number of events + + + + CSelectAppDlg + + 连接 + Connect + + + 断开连接 + Disconnect + + + FES IP地址: + FES IP Address: + + + FES网络端口: + FES NET port: + + + 连接状态: + Connection Status: + + + 专业名称: + Sub name: + + + 网络端口错误,无法连接网络。 + The network port is incorrect and cannot connect to the network. + + + 网络连接 + Connect + + + 网络断开 + Disconnect + + + + CStatusDialog + + + Dialog + Dialog + + + + 类型: + Type: + + + + 值: + Value: + + + + 查询 + Query + + + + 提示 + Prompt + + + + 请输入状态值! + Please enter the status value! + + + + ChanEventDlg + + + 通道事件 + Channel Events + + + + + 数据刷新 + Data Refresh + + + + 清除事件 + Clear Events + + + + 事件总数: + Total Events: + + + + 时间 + Time + + + + 通道标签名 + Channel Label Name + + + + 通道状态 + Channel Status + + + + 错误率 + Error Rate + + + + + 告警 + Alert + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication interrupted, data cannot be read. Please connect to the FES system! + + + + + 停止刷新 + Stop Refreshing + + + + 缓冲区溢出 + Buffer Overflow + + + + 通道未使用 + Channel Not in Use + + + + 通道检测 + Channel Detection + + + + 通道运行 + Channel Running + + + + 通道停止 + Channel Stopped + + + + 通道错误率高 + High Channel Error Rate + + + + ChanMonDlg + + + 通道监视 + Channel Monitoring + + + + 通道号 + Channel Number + + + + 发送帧数 + Frames Sent + + + + 接收帧数 + Frames Received + + + + 错误帧数 + Frames Error + + + + 显示接收 + Show Received + + + + 显示发送 + Show Sent + + + + 自动保存 + Auto Save + + + + 过滤显示 + Filter Display + + + + 位置 + Position + + + + 值(0x) + Value(0x) + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 清除显示 + Clear Display + + + + + + + + + 刷新 + Refresh + + + + 清除统计 + Clear Statistics + + + + 清除文件 + Clear File + + + + + 告警 + Alert + + + + 通信中断,无法读取数据。请连接FES系统! + Communication interrupted, data cannot be read. Please connect to the FES system! + + + + 数据刷新 + Data Refresh + + + + 停止刷新 + Stop Refreshing + + + + 请先取消自动保存! + Please cancel auto-save first! + + + + ChanParamDlg + + + 通道参数 + Channel Parameters + + + + 刷新 + Refresh + + + + 通道号 + Channel Number + + + + 通道描述 + Channel Description + + + + 使用标志 + Usage Flag + + + + 当前状态 + Current Status + + + + 通信方式 + Communication Method + + + + 通道方式 + Channel Mode + + + + 规约类型 + Protocol Type + + + + 连接等待时间 + Connection Wait Time + + + + 链接超时 + Link Timeout + + + + 重连次数 + Reconnection Attempts + + + + 接收超时 + Receive Timeout + + + + 响应超时 + Response Timeout + + + + 接收缓存区长度 + Receive Buffer Length + + + + 发送缓存区长度 + Send Buffer Length + + + + 帧错误标准 + Frame Error Standard + + + + + IP1 + IP1 + + + + PortNo1 + Port Number 1 + + + + IP2 + IP2 + + + + PortNo2 + Port Number 2 + + + + PortNo3 + Port Number 3 + + + + IP4 + IP4 + + + + PortNo4 + Port Number 4 + + + + 备用通道号1 + Backup Channel Number 1 + + + + 备用通道号2 + Backup Channel Number 2 + + + + 备用通道号3 + Backup Channel Number 3 + + + + 本地端口号 + Local Port Number + + + + 告警 + Alert + + + + 通信中断,无法读取数据。请连接FES系统! + Communication interrupted, data cannot be read. Please connect to the FES system! + + + + 使用 + In Use + + + + + 未使用 + Not in Use + + + + 通道检测 + Channel Detection + + + + 通道运行 + Channel Running + + + + 通道停止 + Channel Stopped + + + + 接收帧错误率高 + High Frame Error Rate in Reception + + + + TCP Client + TCP Client + + + + TCP Server + TCP Server + + + + UDP Client + UDP Client + + + + UDP Server + UDP Server + + + + Serial Port + + + + + Unknown Type + + + + + 双通道通信 + Dual-channel Communication + + + + 单通道通信 + Single-channel Communication + + + + DefCmdDlg + + + 自定义命控制 + Custom Command Control + + + + RTU刷新 + RTU refresh + + + + 设备ID + Device ID + + + + 命令个数: + Number of Commands: + + + + 序号 + Serial Number + + + + 关键字 + Keyword + + + + 数值 + Value + + + + 1 + 1 + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + 5 + 5 + + + + 6 + 6 + + + + 控制执行 + Execute Control + + + + 清除内容 + Clear Content + + + + 自定义内容 + Custom Content + + + + RTU号 + RTU Number + + + + 使用标志 + Use Flag + + + + 描述 + Description + + + + + 告警 + Alarm + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted, and data could not be read. Please connect to the FES system! + + + + 没有选择RTU,请选择! + No RTU selected, please select one! + + + + + 信息 + Information + + + + 控制执行成功! + Control execution successful! + + + + 控制执行失败! + Control execution failed! + + + + DiMonDlg + + + Dialog + 对话框 + + + + RTU刷新 + RTU refresh + + + 点配置刷新 + Point refresh + + + + + 数据刷新 + Data refresh + + + 全部 + All + + + 区间 + Interval + + + -- + -- + + + + 前置设备 + Front-end Equipment + + + + RTU号 + RTU number + + + + + 使用标志 + Use flag + + + + RTU名称 + RTU name + + + + 点号 + Point number + + + + 标签名 + Tag name + + + + 设备 + Device + + + + 点描述 + Point desc + + + + 点值 + Point value + + + + 点状态 + Point status + + + + 后台标签 + Background Label + + + + 远动号 + Remote Control Number + + + + 时间 + Time + + + + + + + + 告警 + Alarm + + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + 区域start数据非法或为负,默认为0! + The area start data is illegal or negative, the default is 0! + + + 区域end数据非法或为负,默认为0! + The area end data is illegal or negative, the default is 0! + + + 区域start 大于 区域end点数,两者默认为0! + The area start is greater than the area end points, both of which default to 0! + + + + + 停止刷新 + Stop refresh + + + + FwAccMonDlg + + + 转发电度量 + Forward Electricity Metering + + + + RTU刷新 + RTU refresh + + + + + 数据刷新 + Data refresh + + + + RTU号 + RTU number + + + + + 使用标志 + Use flag + + + + + 描述 + Description + + + + 点号 + Point number + + + + 点值 + Point value + + + + 点状态 + Point status + + + + 设备 + Device + + + + 时间 + Time + + + + 源RTU号 + Source RTU Number + + + + 源点号 + Source Point Number + + + + + + + + 告警 + Alarm + + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + + + 停止刷新 + Stop refresh + + + + FwAiMonDlg + + + 转发模拟量 + Forward Analog Value + + + + RTU刷新 + RTU refresh + + + + + 数据刷新 + Data refresh + + + + RTU号 + RTU number + + + + + 使用标志 + Use flag + + + + + 描述 + Description + + + + 点号 + Point number + + + + 点值 + Point value + + + + 点状态 + Point status + + + + 设备 + Device + + + + 时间 + Time + + + + 源RTU号 + Source RTU Number + + + + 源点号 + Source Point Number + + + + + + + + 告警 + Alarm + + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + + + 停止刷新 + Stop refresh + + + + FwDDiMonDlg + + + 转发双点数字量 + Forward Dual Digital Quantity + + + + RTU刷新 + RTU refresh + + + + + 数据刷新 + Data refresh + + + + RTU号 + RTU number + + + + + 使用标志 + Use flag + + + + + 描述 + Description + + + + 点号 + Point Number + + + + 点值 + Point Value + + + + 点状态 + Point Status + + + + 设备 + Device + + + + 时间 + Time + + + + 源RTU号 + Source RTU Number + + + + 源点号 + Source Point Number + + + + + + + + 告警 + Alarm + + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + + + 停止刷新 + Stop refresh + + + + FwDiMonDlg + + + 转发单点数字量 + Forward Single Digital Quantity + + + + RTU刷新 + RTU refresh + + + + + 数据刷新 + Data refresh + + + + RTU号 + RTU number + + + + + 使用标志 + Use flag + + + + + 描述 + Description + + + + 点号 + Point number + + + + 点值 + Point value + + + + 点状态 + Point status + + + + 设备 + Device + + + + 时间 + Time + + + + 源RTU号 + Source RTU Number + + + + 源点号 + Source Point Number + + + + + + + + 告警 + Alarm + + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + + + 停止刷新 + Stop refresh + + + + FwMiMonDlg + + + 转发混合量 + Forward Mixed Quantity + + + + RTU刷新 + RTU refresh + + + + + 数据刷新 + Data refresh + + + + RTU号 + RTU number + + + + + 使用标志 + Use flag + + + + + 描述 + Description + + + + 点号 + Point number + + + + 点值 + Point value + + + + 点状态 + Point status + + + + 设备 + Device + + + + 时间 + Time + + + + 源RTU号 + Source RTU Number + + + + 源点号 + Source Point Number + + + + + + + + 告警 + Alarm + + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + + + 停止刷新 + Stop refresh + + + + MiMonDlg + + + Dialog + + + + + RTU刷新 + RTU refresh + + + 点配置刷新 + Point refresh + + + + + 数据刷新 + Data refresh + + + 全部 + All + + + 区间 + Interval + + + -- + -- + + + + 前置设备 + Front-end Equipment + + + + RTU号 + RTU number + + + + + 使用标志 + Use flag + + + + RTU名称 + RTU name + + + + 点号 + Point number + + + + 标签名 + Tag name + + + + 设备 + Device + + + + 点描述 + Point desc + + + + 点值 + Point value + + + + 点状态 + Point status + + + + 后台标签 + Background Label + + + + 远动号 + Remote Control Number + + + + 时间 + Time + + + + + + + + 告警 + Alarm + + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + 区域start数据非法或为负,默认为0! + The area start data is illegal or negative, the default is 0! + + + 区域end数据非法或为负,默认为0! + The area end data is illegal or negative, the default is 0! + + + 区域start 大于 区域end点数,两者默认为0! + The area start is greater than the area end points, both of which default to 0! + + + + + 停止刷新 + Stop refresh + + + + PiMonDlg + + + Dialog + + + + + RTU刷新 + RTU refresh + + + 点配置刷新 + Point refresh + + + + + 数据刷新 + Data refresh + + + 全部 + All + + + 区间 + Interval + + + -- + -- + + + + 前置设备 + Front-end Equipment + + + + RTU号 + RTU number + + + + + 使用标志 + Use flag + + + + RTU名称 + RTU name + + + + 点号 + Point number + + + + 标签名 + Tag name + + + + 设备 + Device + + + + 点描述 + Point desc + + + + 点值 + Point value + + + + 点状态 + Point status + + + + 后台标签 + Background Label + + + + 远动号 + Remote Control Number + + + + 时间 + Time + + + + + + + + 告警 + Alarm + + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + 区域start数据非法或为负,默认为0! + The area start data is illegal or negative, the default is 0! + + + 区域end数据非法或为负,默认为0! + The area end data is illegal or negative, the default is 0! + + + 区域start 大于 区域end点数,两者默认为0! + The area start is greater than the area end points, both of which default to 0! + + + + + 停止刷新 + Stop refresh + + + + QObject + + + 初始化消息总线失败 + Failed to initialize message bus + + + + 初始化数据库接口失败 + Failed to initialize database interface + + + + 状态正常 + Status Normal + + + + 值未更新 + Value Not Updated + + + + 点值无效 + Point Value Invalid + + + + 点值超限 + Point Value Exceeded + + + + 通信中断 + Disconnect + + + + 正常 + Normal + + + + 无效 + Invalid + + + + RtuParamDlg + + + RTU参数 + RTU Parameters + + + + 刷新 + Refresh + + + + RTU号 + RTU number + + + + 描述 + Description + + + + 使用标志 + Use flag + + + + 当前状态 + Current Status + + + + RTU地址 + RTU Address + + + + 通道号 + Channel Number + + + + 模拟量个数 + Number of Analog Quantities + + + + 数字量个数 + Number of Digital Quantities + + + + 累积量个数 + Number of Accumulative Quantities + + + + 失败计数限值 + Failure Count Limit + + + + 告警 + Alarm + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect to the FES system! + + + + 使用 + Used + + + + + 未使用 + Not Used + + + + 通信正常 + Communication Normal + + + + 通信中断 + Communication Interrupted + + + + SimAiDlg + + + 模拟量仿真 + Analog Simulation + + + + RTU刷新 + RTU Refresh + + + + + 数据刷新 + Data Refresh + + + + 前置设备 + Front-end Device + + + + RTU号 + RTU Number + + + + + 使用标志 + Use Flag + + + + 描述 + Description + + + + 当前测点 + Current Measurement Point + + + + 当前RTU + Current RTU + + + + 所有RTU + All RTUs + + + + 固定置数 + Fixed Value Setting + + + + 值: + Value: + + + + 点状态: + Status: + + + + 固定设置 + Fixed Settings + + + + + + 停止设置 + 停止设置 + Stop Setting + + + + 线性置数 + Linear Value Setting + + + + 线性设置 + Linear Settings + + + + 步长值: + Step Value: + + + + 周期秒: + Cycle Seconds: + + + + 最小值: + Minimum Value: + + + + 最大值: + Maximum Value: + + + + 随机置数 + Random Value Setting + + + + 随机设置 + Random Settings + + + + 点号 + Point Number + + + + 标签名 + Tag Name + + + + 点描述 + Point Description + + + + 点值 + Point Value + + + + 点状态 + Point Status + + + + 设备 + Equipment + + + + 后台标签 + Backend Tag + + + + 远动号 + Remote Control Number + + + + + + + + + + + + + + + + + + + 告警 + Alarm + + + + + + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + + + 停止刷新 + Stop refresh + + + + + + 没有选择RTU,请选择! + Please select an RTU! + + + + + + 没有选择点,请选择! + Please select a point! + + + + + + 信息 + Information + + + + 固定设置成功! + Fixed setting successful! + + + + 线性设置成功! + Linear setting successful! + + + + 随机设置成功! + Random setting successful! + + + + 最大值小于最小值 + The maximum value is less than the minimum value. + + + + SimAoDlg + + + 模拟量仿真 + Analog Simulation + + + + RTU刷新 + RTU Refresh + + + + 前置设备 + Front-end Device + + + + RTU号 + RTU number + + + + + 使用标志 + Use flag + + + + 描述 + Description + + + + 选择 + Select + + + + 执行 + Perform + + + + 放弃 + Give up + + + + 控制值: + Control Value: + + + + 控制执行 + Control Execution + + + + 点号 + Point number + + + + 标签名 + Tag name + + + + 点描述 + Point description + + + + 设备 + Device + + + + 远动号 + Remote Control Number + + + + + + + + + 告警 + Alarm + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + + 没有选择RTU,请选择! + Please select an RTU! + + + + 没有选择点,请选择! + Please select a point! + + + + + 信息 + Information + + + + 控制执行成功! + Control execution successful! + + + + 控制执行失败! + Control execution failed! + + + + SimDiDlg + + + 数字量仿真 + Digital Simulation + + + + RTU刷新 + RTU Refresh + + + + + 数据刷新 + Data Refresh + + + + 前置设备 + Upstream Equipment + + + + RTU号 + RTU Number + + + + + 使用标志 + Usage Flag + + + + 描述 + Description + + + + 当前测点 + Current Measurement Point + + + + 当前RTU + Current RTU + + + + 所有RTU + All RTUs + + + + + 固定设置 + Fixed Settings + + + + + 停止设置 + Stop Settings + + + + 值: + Value: + + + + 停止设置 + Stop Setting + + + + 点状态: + Status: + + + + + 周期设置 + Periodic Setting + + + + 周期秒: + Period in Seconds: + + + + + 随机设置 + Random Setting + + + + 点号 + Point Number + + + + 标签名 + Label Name + + + + 点描述 + Point Description + + + + 点值 + Point Value + + + + 点状态 + Point Status + + + + 设备 + Equipment + + + + 后台标签 + Background Label + + + + 远动号 + Remote Control Number + + + + + + + + + + + + + + + + + + 告警 + Alarm + + + + + + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + + + 停止刷新 + Stop refresh + + + + + + 没有选择RTU,请选择! + Please select an RTU! + + + + + + 没有选择点,请选择! + Please select a point! + + + + + + 信息 + Information + + + + 固定设置成功! + Fixed setting successful! + + + + 周期设置成功! + Periodic setting successful! + + + + 随机设置成功! + Random setting successful! + + + + SimDoDlg + + + 数字量控制 + Digital Control + + + + RTU刷新 + RTU Refresh + + + + 前置设备 + Upstream Equipment + + + + RTU号 + RTU number + + + + + 使用标志 + Use flag + + + + 描述 + Description + + + + 选择 + Select + + + + 执行 + Perform + + + + 放弃 + Abandon + + + + 控制值: + Control Value: + + + + 控制执行 + Control Execution + + + + 点号 + Point Number + + + + 标签名 + Tag Name + + + + 点描述 + Point Description + + + + 设备 + Device + + + + 远动号 + Remote Control Number + + + + + + + + + 告警 + Alarm + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + + 没有选择RTU,请选择! + Please select an RTU! + + + + 没有选择点,请选择! + Please select a point! + + + + + 信息 + Information + + + + 控制执行成功! + Control execution was successful! + + + + 控制执行失败! + Control execution failed! + + + + SimEventDlg + + + 事件仿真 + Event Simulation + + + + RTU刷新 + RTU Refresh + + + + 前置设备 + Upstream Equipment + + + + 故障值个数: + Number of Fault Values: + + + + 1#故障类型: + Fault Type 1#: + + + + 故障值1: + Fault Value 1: + + + + 2#故障类型: + Fault Type 2#: + + + + 3#故障类型: + Fault Type 3#: + + + + 故障值2: + Fault Value 2: + + + + 故障值3: + Fault Value 3: + + + + 4#故障类型: + Fault Type 4#: + + + + 故障值4: + Fault Value 4: + + + + RTU号 + RTU Number + + + + + 使用标志 + Usage Flag + + + + 描述 + Description + + + + 点值: + Point Value: + + + + 点状态: + Status: + + + + 产生事件 + Generate Event + + + + 点号 + Point Number + + + + 标签名 + Tag Name + + + + 点描述 + Point Description + + + + 设备 + Device + + + + 后台标签 + Background Label + + + + 远动号 + Remote Control Number + + + + + + + + + 告警 + Alarm + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + + 没有选择RTU,请选择! + Please select an RTU! + + + + 没有选择点,请选择! + Please select a point! + + + + 信息 + Information + + + + 产生事件成功! + Event generated successfully! + + + + SimMiDlg + + + 混合量仿真 + Mixed Quantity Simulation + + + + RTU刷新 + RTU Refresh + + + + + 数据刷新 + Data Refresh + + + + 前置设备 + Upstream Equipment + + + + RTU号 + RTU Number + + + + + 使用标志 + Usage Flag + + + + 描述 + Description + + + + 当前测点 + Current Measurement Point + + + + 当前RTU + Current RTU + + + + 所有RTU + All RTUs + + + + 固定置数 + Fixed Value Setting + + + + 值: + Value: + + + + 点状态: + Status: + + + + 停止设置 + Stop Setting + + + + 固定设置 + Fixed Setting + + + + 停止设置 + Stop Setting + + + + 线性置数 + Linear Value Setting + + + + 最小值: + Minimum Value: + + + + 最大值: + Maximum Value: + + + + 步长值: + Step Value: + + + + 周期秒: + Cycle in Seconds: + + + + 线性设置 + Linear Setting + + + + 停止置数 + Stop Value Setting + + + + 随机置数 + Random Value Setting + + + + 随机设置 + Random Setting + + + + 点号 + Point number + + + + 标签名 + Tag name + + + + 点描述 + Point desc + + + + 点值 + Point value + + + + 点状态 + Point status + + + + 设备 + Device + + + + 后台标签 + Background Label + + + + 远动号 + Remote Control Number + + + + + + + + + + + + + + + + + + 告警 + Alarm + + + + + + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + + + 停止刷新 + Stop refresh + + + + + + 没有选择RTU,请选择! + Please select an RTU! + + + + + + 没有选择点,请选择! + Please select a point! + + + + + + 信息 + Information + + + + 固定设置成功! + Fixed setting successful! + + + + 线性设置成功! + Linear setting successful! + + + + 随机设置成功! + Random setting successful! + + + + SimMoDlg + + + 混合量输出 + Mixed Output + + + + RTU刷新 + RTU Refresh + + + + 前置设备 + Pre-positioned Equipment + + + + RTU号 + RTU Number + + + + + 使用标志 + Use Flag + + + + 描述 + Description + + + + 选择 + Select + + + + 执行 + Execute + + + + 放弃 + Abandon + + + + 控制值: + Control Value: + + + + 控制执行 + Execute Control + + + + 点号 + Point Number + + + + 标签名 + Tag Name + + + + 点描述 + Point Description + + + + 设备 + Device + + + + 远动号 + Remote Control Number + + + + + + + + + 告警 + Alarm + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + + 没有选择RTU,请选择! + Please select an RTU! + + + + 没有选择点,请选择! + Please select a point! + + + + + 信息 + Information + + + + 控制执行成功! + Control execution successful! + + + + 控制执行失败! + Control execution failed! + + + + SimPiDlg + + + 电度量仿真 + Electricity Metering Simulation + + + + RTU刷新 + RTU Refresh + + + + + 数据刷新 + Data Refresh + + + + 前置设备 + Pre-positioned Equipment + + + + RTU号 + RTU Number + + + + + 使用标志 + Usage Flag + + + + 描述 + Description + + + + 当前测点 + Current Measurement Point + + + + 当前RTU + Current RTU + + + + 所有RTU + All RTUs + + + + 固定置数 + Fixed Value Setting + + + + 停止设置 + Stop Setting + + + + 值: + Value: + + + + 点状态: + Status: + + + + 固定设置 + Fixed Setting + + + + 线性置数 + Linear Value Setting + + + + 线性设置 + Linear Setting + + + + + 停止设置 + Stop Setting + + + + 步长值: + Step Value: + + + + 周期秒: + Period in Seconds: + + + + 最小值: + Minimum Value: + + + + 最大值: + Maximum Value: + + + + 随机置数 + Random Value Setting + + + + 随机设置 + Random Setting + + + + 点号 + Point Number + + + + 标签名 + Tag Name + + + + 点描述 + Point Description + + + + 点值 + Point Value + + + + 点状态 + Point Status + + + + 设备 + Device + + + + 后台标签 + Background Label + + + + 远动号 + Remote Control Number + + + + + + + + + + + + + + + + + + + 告警 + Alarm + + + + + + + + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + + + 停止刷新 + Stop refresh + + + + + + 没有选择RTU,请选择! + Please select an RTU! + + + + + + 没有选择点,请选择! + Please select a point! + + + + + + 信息 + Information + + + + 固定设置成功! + Fixed setting successful! + + + + 线性设置成功! + Linear setting successful! + + + + 随机设置成功! + Random setting successful! + + + + 最大值小于最小值 + The maximum value is less than the minimum value. + + + + SoeEventDlg + + + SOE事件 + SOE Event + + + + + 数据刷新 + Data Refresh + + + + 清除事件 + Clear Events + + + + 事件总数: + Total Number of Events: + + + + 时间 + Time + + + + 标签名 + Tag Name + + + + 点值 + Point Value + + + + 点状态 + Point Status + + + + 故障个数 + Number of Faults + + + + 故障源1 + Fault Source 1 + + + + 故障值1 + Fault Value 1 + + + + 故障源2 + Fault Source 2 + + + + 故障值2 + Fault Value 2 + + + + 故障源3 + Fault Source 3 + + + + 故障值3 + Fault Value 3 + + + + 故障源4 + Fault Source 4 + + + + 故障值4 + Fault Value 4 + + + + + 告警 + Alarm + + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + + + 停止刷新 + Stop refresh + + + + 缓冲区溢出 + Buffer Overflow + + + + SoeMemorydlg + + + SOE内存 + SOE Memory + + + + 数据刷新 + Data refresh + + + + 序号 + Serial Number + + + + 时间 + Time + + + + 标签名 + Tag name + + + + 点值 + Point value + + + + 点状态 + Point status + + + + 故障个数 + Number of Faults + + + + 故障源1 + Fault Source 1 + + + + 故障值1 + Fault Value 1 + + + + 故障源2 + Fault Source 2 + + + + 故障值2 + Fault Value 2 + + + + 故障源3 + Fault Source 3 + + + + 故障值3 + Fault Value 3 + + + + 故障源4 + Fault Source 4 + + + + 故障值4 + Fault Value 4 + + + + 告警 + Alarm + + + + 通信中断,无法读取数据。请连接FES系统! + Communication was interrupted and data could not be read. Please connect FES system! + + + diff --git a/product/src/tools/debug_tool/fwaccmondlg.cpp b/product/src/tools/debug_tool/fwaccmondlg.cpp index 0cdc3169..5ba73c7b 100644 --- a/product/src/tools/debug_tool/fwaccmondlg.cpp +++ b/product/src/tools/debug_tool/fwaccmondlg.cpp @@ -119,6 +119,8 @@ void FwAccMonDlg::OnRTURefresh() } //stop other windows data refresh + m_CurrentRtuRow = -1; + changeRefreshBtnToStop(); m_CmdCode = CN_SFesSimFwRTUInfoReq; data[0] = m_CmdCode; @@ -666,10 +668,11 @@ void FwAccMonDlg::OnRecvPiDataResp(int CmdCode,QByteArray Data,int DataLen) return; int readx,count; float fvalue; + double dvalue; unsigned char* pTemp; count = 0; readx = 16; - pTemp = (unsigned char*)&fvalue; + pTemp = (unsigned char*)&dvalue; while(readxload( strFilePath.c_str()); + QApplication::installTranslator( pTrans ); + } + //暂时取消国际化 // std::string strRootPath =""; // std::string strLanguage; diff --git a/product/src/tools/debug_tool/pimondlg.cpp b/product/src/tools/debug_tool/pimondlg.cpp index cef7067c..5399e9a5 100644 --- a/product/src/tools/debug_tool/pimondlg.cpp +++ b/product/src/tools/debug_tool/pimondlg.cpp @@ -833,10 +833,11 @@ void PiMonDlg::OnRecvPiDataResp(int CmdCode,QByteArray Data,int DataLen) } int readx,count; float fvalue; + double dvalue; unsigned char* pTemp; count = 0; readx = 16; - pTemp = (unsigned char*)&fvalue; + pTemp = (unsigned char*)&dvalue; while(readxMaxPoints) { pRtu->MaxPoints = MaxPoints; - if(pRtu->pAcc!=NULL)//清除原有的空间,从新分配空间 + if(pRtu->pAcc!=NULL)//清除原有的空间,重新分配空间 { pRtu->pAcc = (SFesSimAcc*)realloc(pRtu->pAcc,sizeof(SFesSimAcc)*pRtu->MaxPoints); if(pRtu->pAcc!=NULL) @@ -821,10 +821,11 @@ void SimPiDlg::OnRecvPiDataResp(int CmdCode,QByteArray Data,int DataLen) return; int readx,count; float fvalue; + double dvalue; unsigned char* pTemp; count = 0; readx = 16; - pTemp = (unsigned char*)&fvalue; + pTemp = (unsigned char*)&dvalue; while(readxValueEdit->text(); - m_PiValue = str.toLong(&ok,10); + //m_PiValue = str.toLong(&ok,10); + m_PiValue = str.toDouble(&ok); str = ui->StatusEdit->text(); m_PiStatus = str.toInt(&ok,10); @@ -1024,14 +1040,23 @@ void SimPiDlg::OnSetValue() data[writex++] = m_PiFlag; data[writex++] = 0x00; data[writex++] = 0x00; - data[writex++] = m_PiValue&0xff; - data[writex++] = (m_PiValue>>8)&0xff; - data[writex++] = (m_PiValue>>16)&0xff; - data[writex++] = (m_PiValue>>24)&0xff; - data[writex++] = ((long long)m_PiValue>>32)&0xff; - data[writex++] = ((long long)m_PiValue>>40)&0xff; - data[writex++] = ((long long)m_PiValue>>48)&0xff; - data[writex++] = ((long long)m_PiValue>>56)&0xff; + // data[writex++] = m_PiValue&0xff; + // data[writex++] = (m_PiValue>>8)&0xff; + // data[writex++] = (m_PiValue>>16)&0xff; + // data[writex++] = (m_PiValue>>24)&0xff; + // data[writex++] = ((long long)m_PiValue>>32)&0xff; + // data[writex++] = ((long long)m_PiValue>>40)&0xff; + // data[writex++] = ((long long)m_PiValue>>48)&0xff; + // data[writex++] = ((long long)m_PiValue>>56)&0xff; + pTemp = (unsigned char*)&m_PiValue; + data[writex++] = *pTemp; + data[writex++] = *(pTemp+1); + data[writex++] = *(pTemp+2); + data[writex++] = *(pTemp+3); + data[writex++] = *(pTemp+4); + data[writex++] = *(pTemp+5); + data[writex++] = *(pTemp+6); + data[writex++] = *(pTemp+7); data[writex++] = m_PiStatus&0xff; data[writex++] = (m_PiStatus>>8)&0xff; data[writex++] = (m_PiStatus>>16)&0xff; @@ -1081,6 +1106,7 @@ void SimPiDlg::OnLineSet() { unsigned char data[50]; int SetMode,writex; + unsigned char *pTemp; if(m_ConnectFlag==CN_CommDisconnect) { QMessageBox::warning(NULL,tr("告警"),tr("通信中断,无法读取数据。请连接FES系统!")); @@ -1124,11 +1150,14 @@ void SimPiDlg::OnLineSet() */ str = ui->MinValueEdit->text(); - m_MinValue = str.toInt(&ok,10); + //m_MinValue = str.toInt(&ok,10); + m_MinValue = str.toFloat(&ok); str = ui->MaxValueEdit->text(); - m_MaxValue = str.toInt(&ok,10); + //m_MaxValue = str.toInt(&ok,10); + m_MaxValue = str.toFloat(&ok); str = ui->StepValueEdit->text(); - m_StepValue = str.toInt(&ok,10); + //m_StepValue = str.toInt(&ok,10); + m_StepValue = str.toFloat(&ok); str = ui->ChangeTimeEdit->text(); m_ChangeTime = str.toInt(&ok,10); @@ -1152,18 +1181,34 @@ void SimPiDlg::OnLineSet() data[writex++] = (m_ChangeTime>>8)&0xff; memset(&data[writex],0,12); writex+=12; - data[writex++] = m_MinValue&0xff; - data[writex++] = (m_MinValue>>8)&0xff; - data[writex++] = (m_MinValue>>16)&0xff; - data[writex++] = (m_MinValue>>24)&0xff; - data[writex++] = m_MaxValue&0xff; - data[writex++] = (m_MaxValue>>8)&0xff; - data[writex++] = (m_MaxValue>>16)&0xff; - data[writex++] = (m_MaxValue>>24)&0xff; - data[writex++] = m_StepValue&0xff; - data[writex++] = (m_StepValue>>8)&0xff; - data[writex++] = (m_StepValue>>16)&0xff; - data[writex++] = (m_StepValue>>24)&0xff; + // data[writex++] = m_MinValue&0xff; + // data[writex++] = (m_MinValue>>8)&0xff; + // data[writex++] = (m_MinValue>>16)&0xff; + // data[writex++] = (m_MinValue>>24)&0xff; + // data[writex++] = m_MaxValue&0xff; + // data[writex++] = (m_MaxValue>>8)&0xff; + // data[writex++] = (m_MaxValue>>16)&0xff; + // data[writex++] = (m_MaxValue>>24)&0xff; + // data[writex++] = m_StepValue&0xff; + // data[writex++] = (m_StepValue>>8)&0xff; + // data[writex++] = (m_StepValue>>16)&0xff; + // data[writex++] = (m_StepValue>>24)&0xff; + pTemp = (unsigned char*)&m_MinValue; + data[writex++] = *pTemp; + data[writex++] = *(pTemp+1); + data[writex++] = *(pTemp+2); + data[writex++] = *(pTemp+3); + pTemp = (unsigned char*)&m_MaxValue; + data[writex++] = *pTemp; + data[writex++] = *(pTemp+1); + data[writex++] = *(pTemp+2); + data[writex++] = *(pTemp+3); + pTemp = (unsigned char*)&m_StepValue; + data[writex++] = *pTemp; + data[writex++] = *(pTemp+1); + data[writex++] = *(pTemp+2); + data[writex++] = *(pTemp+3); + data[writex++] = m_CurrentRtuNo&0xff; data[writex++] = (m_CurrentRtuNo>>8)&0xff; data[writex++] = (m_CurrentRtuNo>>16)&0xff; diff --git a/product/src/tools/debug_tool/simpidlg.h b/product/src/tools/debug_tool/simpidlg.h index 79b447a0..49025d64 100644 --- a/product/src/tools/debug_tool/simpidlg.h +++ b/product/src/tools/debug_tool/simpidlg.h @@ -85,12 +85,12 @@ private: bool m_AllPiFlag; int m_PiFlag; - long m_MaxValue; - long m_MinValue; - long m_StepValue; + float m_MaxValue; + float m_MinValue; + float m_StepValue; int m_ChangeTime; //unit:1s - long m_PiValue; + double m_PiValue; int m_PiStatus; RtuDevMap m_rtuDevMap;