[ref]同步711
This commit is contained in:
parent
17f18f4135
commit
56b9649be6
@ -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)));
|
||||
}
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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,6 +465,13 @@ void CRealDataControl::exeCtrlSelect()
|
||||
QString columnName = "value";
|
||||
optCtrlReqQueue.strKeyIdTag = (tableName+"."+strTagName+"."+columnName).toStdString();
|
||||
optCtrlReqQueue.nCtrlType = 0;
|
||||
|
||||
if("ANALOG" == m_strTableName)
|
||||
{
|
||||
optCtrlReqQueue.dTargetValue = ui->lineEdit_ctrlValue->text().toFloat();
|
||||
}
|
||||
else
|
||||
{
|
||||
if(ui->comboBox_ctrlValue->count())
|
||||
{
|
||||
optCtrlReqQueue.dTargetValue = ui->comboBox_ctrlValue->currentData().toInt();
|
||||
@ -476,6 +480,8 @@ void CRealDataControl::exeCtrlSelect()
|
||||
{
|
||||
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,6 +520,13 @@ void CRealDataControl::exeCtrlExecute()
|
||||
QString columnName = "value";
|
||||
optCtrlReqQueue.strKeyIdTag = (tableName+"."+strTagName+"."+columnName).toStdString();
|
||||
optCtrlReqQueue.nCtrlType = 0;
|
||||
|
||||
if("ANALOG" == m_strTableName)
|
||||
{
|
||||
optCtrlReqQueue.dTargetValue = ui->lineEdit_ctrlValue->text().toFloat();
|
||||
}
|
||||
else
|
||||
{
|
||||
if(ui->comboBox_ctrlValue->count())
|
||||
{
|
||||
optCtrlReqQueue.dTargetValue = ui->comboBox_ctrlValue->currentData().toInt();
|
||||
@ -523,6 +535,7 @@ void CRealDataControl::exeCtrlExecute()
|
||||
{
|
||||
optCtrlReqQueue.dTargetValue = 0.0;
|
||||
}
|
||||
}
|
||||
optCtrlReqQueue.nCtrlActType = 0;
|
||||
optCtrlReqQueue.strCtrlActName = "";
|
||||
optCtrlReqQueue.strOffsetNo = "";
|
||||
@ -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,6 +573,13 @@ void CRealDataControl::exeCtrlCancel()
|
||||
QString columnName = "value";
|
||||
optCtrlReqQueue.strKeyIdTag = (tableName+"."+strTagName+"."+columnName).toStdString();
|
||||
optCtrlReqQueue.nCtrlType = 0;
|
||||
|
||||
if("ANALOG" == m_strTableName)
|
||||
{
|
||||
optCtrlReqQueue.dTargetValue = ui->lineEdit_ctrlValue->text().toFloat();
|
||||
}
|
||||
else
|
||||
{
|
||||
if(ui->comboBox_ctrlValue->count())
|
||||
{
|
||||
optCtrlReqQueue.dTargetValue = ui->comboBox_ctrlValue->currentData().toInt();
|
||||
@ -569,6 +588,8 @@ void CRealDataControl::exeCtrlCancel()
|
||||
{
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
#include "db_api_ex/CDbApi.h"
|
||||
#include "CSystemResources.h"
|
||||
#include<QTreeWidget>
|
||||
#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();
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>830</width>
|
||||
<width>858</width>
|
||||
<height>452</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -79,6 +79,13 @@
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_status_search">
|
||||
<property name="text">
|
||||
<string>状态查询</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
@ -150,6 +157,50 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="checkBox_paging">
|
||||
<property name="text">
|
||||
<string>启用分页</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_pre">
|
||||
<property name="text">
|
||||
<string>上一页</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="lineEdit_pageNum">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>30</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btn_next">
|
||||
<property name="text">
|
||||
<string>下一页</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_6">
|
||||
<property name="orientation">
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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 );
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
#include <QDir>
|
||||
#include <QDirIterator>
|
||||
#include <QTextEdit>
|
||||
#include<QStyleFactory>
|
||||
|
||||
#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;i<CN_ChanMonAnalyzeNum;i++)
|
||||
{
|
||||
m_Pos[i]=0;
|
||||
@ -59,34 +59,12 @@ ChanMonDlg::ChanMonDlg(int windowId, QWidget *parent) :
|
||||
m_ChanNo=0;
|
||||
m_RefreshLine = 0;
|
||||
|
||||
//<< 获取通道信息
|
||||
//==============================================================================
|
||||
ui->ChanNo->clear();
|
||||
m_pdbApi = new iot_dbms::CDbApi(DB_CONN_MODEL_READ);
|
||||
if(m_pdbApi->open())
|
||||
{
|
||||
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() << "数据库接口打开失败" <<endl;
|
||||
ui->ChanNo->addItem(QString::number(i));
|
||||
}
|
||||
|
||||
|
||||
//m_ListModel = new QStringListModel(this);
|
||||
//m_ListModel->setStringList(m_DataList);
|
||||
//ui->DispListView->setModel(m_ListModel);
|
||||
@ -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)
|
||||
|
||||
@ -11,10 +11,11 @@
|
||||
#include <QFile>
|
||||
#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;
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 3.1 KiB |
@ -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
|
||||
|
||||
5191
product/src/tools/debug_tool/en.ts
Normal file
5191
product/src/tools/debug_tool/en.ts
Normal file
File diff suppressed because it is too large
Load Diff
@ -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(readx<DataLen)
|
||||
{
|
||||
piData.PointNo = RecvData[readx++];
|
||||
@ -677,14 +680,26 @@ void FwAccMonDlg::OnRecvPiDataResp(int CmdCode,QByteArray Data,int DataLen)
|
||||
piData.PointNo |= RecvData[readx++]<<16;
|
||||
piData.PointNo |= RecvData[readx++]<<24;
|
||||
|
||||
piData.Value = (long)RecvData[readx++];
|
||||
piData.Value |= (long)RecvData[readx++]<<8;
|
||||
piData.Value |= (long)RecvData[readx++]<<16;
|
||||
piData.Value |= (long)RecvData[readx++]<<24;
|
||||
piData.Value |= (long long)RecvData[readx++]<<32;
|
||||
piData.Value |= (long long)RecvData[readx++]<<40;
|
||||
piData.Value |= (long long)RecvData[readx++]<<48;
|
||||
piData.Value |= (long long)RecvData[readx++]<<56;
|
||||
// piData.Value = (long)RecvData[readx++];
|
||||
// piData.Value |= (long)RecvData[readx++]<<8;
|
||||
// piData.Value |= (long)RecvData[readx++]<<16;
|
||||
// piData.Value |= (long)RecvData[readx++]<<24;
|
||||
// piData.Value |= (long long)RecvData[readx++]<<32;
|
||||
// piData.Value |= (long long)RecvData[readx++]<<40;
|
||||
// piData.Value |= (long long)RecvData[readx++]<<48;
|
||||
// piData.Value |= (long long)RecvData[readx++]<<56;
|
||||
pTemp = (unsigned char*)&dvalue;
|
||||
*pTemp = RecvData[readx++];
|
||||
*(pTemp+1) = RecvData[readx++];
|
||||
*(pTemp+2) = RecvData[readx++];
|
||||
*(pTemp+3) = RecvData[readx++];
|
||||
*(pTemp+4) = RecvData[readx++];
|
||||
*(pTemp+5) = RecvData[readx++];
|
||||
*(pTemp+6) = RecvData[readx++];
|
||||
*(pTemp+7) = RecvData[readx++];
|
||||
piData.Value = dvalue;
|
||||
|
||||
|
||||
piData.Status = (uint32)RecvData[readx++];
|
||||
piData.Status |= (uint32)RecvData[readx++]<<8;
|
||||
piData.Status |= (uint32)RecvData[readx++]<<16;
|
||||
|
||||
@ -119,6 +119,8 @@ void FwAiMonDlg::OnRTURefresh()
|
||||
}
|
||||
|
||||
//stop other windows data refresh
|
||||
m_CurrentRtuRow = -1;
|
||||
changeRefreshBtnToStop();
|
||||
|
||||
m_CmdCode = CN_SFesSimFwRTUInfoReq;
|
||||
data[0] = m_CmdCode;
|
||||
|
||||
@ -121,6 +121,8 @@ void FwDDiMonDlg::OnRTURefresh()
|
||||
}
|
||||
|
||||
//stop other windows data refresh
|
||||
m_CurrentRtuRow = -1;
|
||||
changeRefreshBtnToStop();
|
||||
|
||||
m_CmdCode = CN_SFesSimFwRTUInfoReq;
|
||||
data[0] = m_CmdCode;
|
||||
|
||||
@ -119,6 +119,8 @@ void FwDiMonDlg::OnRTURefresh()
|
||||
}
|
||||
|
||||
//stop other windows data refresh
|
||||
m_CurrentRtuRow = -1;
|
||||
changeRefreshBtnToStop();
|
||||
|
||||
m_CmdCode = CN_SFesSimFwRTUInfoReq;
|
||||
data[0] = m_CmdCode;
|
||||
|
||||
@ -115,6 +115,8 @@ void FwMiMonDlg::OnRTURefresh()
|
||||
}
|
||||
|
||||
//stop other windows data refresh
|
||||
m_CurrentRtuRow = -1;
|
||||
changeRefreshBtnToStop();
|
||||
|
||||
m_CmdCode = CN_SFesSimFwRTUInfoReq;
|
||||
data[0] = m_CmdCode;
|
||||
|
||||
@ -12,6 +12,7 @@
|
||||
#include "SingleApplication.h"
|
||||
#include "CDebugTool.h"
|
||||
#include "CSystemResources.h"
|
||||
#include "pub_utility_api/FileUtil.h"
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
@ -23,6 +24,17 @@ int main(int argc, char *argv[])
|
||||
SingleApplication a(argc, argv);
|
||||
a.setWindowIcon(QIcon(":/debug_tool.ico"));
|
||||
iot_public::StartLogSystem("BASE", "debug_tool");
|
||||
|
||||
const std::string strLanguage = std::move( iot_public::getCurLanguage());
|
||||
|
||||
std::string strFilePath = std::move( iot_public::CFileUtil::getPathOfResFile( "debug_tool/translate/" + strLanguage + ".qm"));
|
||||
if ( !strFilePath.empty())
|
||||
{
|
||||
auto *pTrans = new QTranslator;
|
||||
pTrans->load( strFilePath.c_str());
|
||||
QApplication::installTranslator( pTrans );
|
||||
}
|
||||
|
||||
//暂时取消国际化
|
||||
// std::string strRootPath ="";
|
||||
// std::string strLanguage;
|
||||
|
||||
@ -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(readx<DataLen)
|
||||
{
|
||||
piData.PointNo = RecvData[readx++];
|
||||
@ -844,14 +845,25 @@ void PiMonDlg::OnRecvPiDataResp(int CmdCode,QByteArray Data,int DataLen)
|
||||
piData.PointNo |= RecvData[readx++]<<16;
|
||||
piData.PointNo |= RecvData[readx++]<<24;
|
||||
|
||||
piData.Value = (long)RecvData[readx++];
|
||||
piData.Value |= (long)RecvData[readx++]<<8;
|
||||
piData.Value |= (long)RecvData[readx++]<<16;
|
||||
piData.Value |= (long)RecvData[readx++]<<24;
|
||||
piData.Value |= (long long)RecvData[readx++]<<32;
|
||||
piData.Value |= (long long)RecvData[readx++]<<40;
|
||||
piData.Value |= (long long)RecvData[readx++]<<48;
|
||||
piData.Value |= (long long)RecvData[readx++]<<56;
|
||||
// piData.Value = (long)RecvData[readx++];
|
||||
// piData.Value |= (long)RecvData[readx++]<<8;
|
||||
// piData.Value |= (long)RecvData[readx++]<<16;
|
||||
// piData.Value |= (long)RecvData[readx++]<<24;
|
||||
// piData.Value |= (long long)RecvData[readx++]<<32;
|
||||
// piData.Value |= (long long)RecvData[readx++]<<40;
|
||||
// piData.Value |= (long long)RecvData[readx++]<<48;
|
||||
// piData.Value |= (long long)RecvData[readx++]<<56;
|
||||
*pTemp = RecvData[readx++];
|
||||
*(pTemp+1) = RecvData[readx++];
|
||||
*(pTemp+2) = RecvData[readx++];
|
||||
*(pTemp+3) = RecvData[readx++];
|
||||
*(pTemp+4) = RecvData[readx++];
|
||||
*(pTemp+5) = RecvData[readx++];
|
||||
*(pTemp+6) = RecvData[readx++];
|
||||
*(pTemp+7) = RecvData[readx++];
|
||||
|
||||
piData.Value = dvalue;
|
||||
|
||||
piData.Status = (uint32)RecvData[readx++];
|
||||
piData.Status |= (uint32)RecvData[readx++]<<8;
|
||||
piData.Status |= (uint32)RecvData[readx++]<<16;
|
||||
|
||||
@ -231,7 +231,7 @@ void SimPiDlg::OnRecvRTUInfoResp(int CmdCode,QByteArray Data,int DataLen)
|
||||
if(TotalNum!=m_RtuNum)
|
||||
{
|
||||
m_RtuNum = TotalNum;
|
||||
if(m_pRtuInfo!=NULL)//清除原有的空间,从新分配空间
|
||||
if(m_pRtuInfo!=NULL)//清除原有的空间,重新分配空间
|
||||
{
|
||||
m_pRtuInfo = (SAccMonRtu*)realloc(m_pRtuInfo,sizeof(SAccMonRtu)*m_RtuNum);
|
||||
if(m_pRtuInfo!=NULL)
|
||||
@ -409,7 +409,7 @@ void SimPiDlg::OnRecvPiParamResp(int CmdCode,QByteArray Data,int DataLen)
|
||||
if(MaxPoints!=pRtu->MaxPoints)
|
||||
{
|
||||
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(readx<DataLen)
|
||||
{
|
||||
piData.PointNo = RecvData[readx++];
|
||||
@ -832,14 +833,28 @@ void SimPiDlg::OnRecvPiDataResp(int CmdCode,QByteArray Data,int DataLen)
|
||||
piData.PointNo |= RecvData[readx++]<<16;
|
||||
piData.PointNo |= RecvData[readx++]<<24;
|
||||
|
||||
piData.Value = (long)RecvData[readx++];
|
||||
piData.Value |= (long)RecvData[readx++]<<8;
|
||||
piData.Value |= (long)RecvData[readx++]<<16;
|
||||
piData.Value |= (long)RecvData[readx++]<<24;
|
||||
piData.Value |= (long long)RecvData[readx++]<<32;
|
||||
piData.Value |= (long long)RecvData[readx++]<<40;
|
||||
piData.Value |= (long long)RecvData[readx++]<<48;
|
||||
piData.Value |= (long long)RecvData[readx++]<<56;
|
||||
// piData.Value = (long)RecvData[readx++];
|
||||
// piData.Value |= (long)RecvData[readx++]<<8;
|
||||
// piData.Value |= (long)RecvData[readx++]<<16;
|
||||
// piData.Value |= (long)RecvData[readx++]<<24;
|
||||
// piData.Value |= (long long)RecvData[readx++]<<32;
|
||||
// piData.Value |= (long long)RecvData[readx++]<<40;
|
||||
// piData.Value |= (long long)RecvData[readx++]<<48;
|
||||
// piData.Value |= (long long)RecvData[readx++]<<56;
|
||||
pTemp = (unsigned char*)&dvalue;
|
||||
// LOGINFO("RecvData = %s",test.toStdString().c_str());
|
||||
|
||||
*pTemp = RecvData[readx++];
|
||||
*(pTemp+1) = RecvData[readx++];
|
||||
*(pTemp+2) = RecvData[readx++];
|
||||
*(pTemp+3) = RecvData[readx++];
|
||||
*(pTemp+4) = RecvData[readx++];
|
||||
*(pTemp+5) = RecvData[readx++];
|
||||
*(pTemp+6) = RecvData[readx++];
|
||||
*(pTemp+7) = RecvData[readx++];
|
||||
|
||||
piData.Value = dvalue;
|
||||
|
||||
piData.Status = (uint32)RecvData[readx++];
|
||||
piData.Status |= (uint32)RecvData[readx++]<<8;
|
||||
piData.Status |= (uint32)RecvData[readx++]<<16;
|
||||
@ -998,7 +1013,8 @@ void SimPiDlg::OnSetValue()
|
||||
bool ok;
|
||||
|
||||
str = ui->ValueEdit->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;
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user