在vs2008中新建form1.ui窗体,拖入label、label_2控件
form1.h
cpp
#include "slqcap.h"
private:
SlQCap m_slqpowerHotlink; //Hotlink
SlQCapHandle m_slqpowerHandleHotlink;
private slots:
void multipowerAdviseDataSlot( SlCapErrorEnum, const QVector<SlCapAdviseResultType>& );
void handleRetVal(SlCapErrorEnum eError, QString szSuccess = QString::null );
form1.cpp
cpp
form1::form1(QWidget* pParent, const QString& rszName)
: SlGfwDialogForm(pParent, rszName)
{
setupUi(this);
QObject::connect(&m_slqpowerHotlink,
SIGNAL(multiAdviseData(SlCapErrorEnum, const QVector<SlCapAdviseResultType>&)),
this,
SLOT(multipowerAdviseDataSlot(SlCapErrorEnum, const QVector<SlCapAdviseResultType>&)));
//建立Hot连接
formpowerAdviseData();
}// <-- form1::form1 ()
form1::~form1(void)
{
SlCapErrorEnum eError1 = m_slqpowerHotlink.unadvise(m_slqpowerHandleHotlink);
} // <-- ::~ ()
void form1::handleRetVal( SlCapErrorEnum eError, QString szSuccess )
{
if( SL_CAP_OK != eError )
{
QString szHexErrorNr = QString("%1").arg(eError,0,16).right(8);
setStatusBarElementText(ACCESS_ERROR.arg(szHexErrorNr),0);
}
else
{
setStatusBarElementText(szSuccess,0);
}
}
void form1::formpowerAdviseData()
{
//Hot连接:在btss.chm中查询通道路径
QString szItem1 = "/Channel/MachineAxis/vaLoad[u1,1]";
QString szItem2 = "/Channel/MachineAxis/vaLoad[u1,2]";
QVector<SlCapAdviseSpecType> vecAdviseSpec;
vecAdviseSpec.append( SlCapAdviseSpecType( szItem1 ) );
vecAdviseSpec.append( SlCapAdviseSpecType( szItem2 ) );
SlCapErrorEnum eError = m_slqpowerHotlink.multiAdvise(vecAdviseSpec,m_slqpowerHandleHotlink);
//Hot连接故障处理:状态条0显示故障代码
handleRetVal(eError,SUCCESS_MULTIADVISE);
}
void form1::multipowerAdviseDataSlot(SlCapErrorEnum eError ,const QVector<SlCapAdviseResultType>& adviseResult)
{
if( SL_CAP_OK != eError )
{
handleRetVal( eError );
}
else
{
this->label ->setValue(QString::number(adviseResult[0].m_vValue.toDouble(),'f',4));//
this->label_2->setValue(QString::number(adviseResult[1].m_vValue.toDouble(),'f',4));//
}
}