vs2008 Hotlink实时数据读取

在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));//
	}
}
相关推荐
GG-_-Bond8 小时前
9.1 kv存储resp协议模拟面试
c++
Quz8 小时前
QML StackView:实现卡片堆叠效果
qt
米糕闯编程8 小时前
鱼香ros2(五)用C++编写节点
c++·ros2·cmakelists·鱼香
Quz9 小时前
QML Drawer 抽屉导航详解
qt
xiangyun6110 小时前
【408数据结构 08】队列:循环队列判空判满,408年年考,一次讲清
c语言·开发语言·数据结构·c++·算法
xiangyun6110 小时前
【408数据结构 06】双链表、循环链表、静态链表
c语言·开发语言·数据结构·c++·算法
fpcc12 小时前
计算机原理—构建过程中的分段分析
c++
xxwxx__12 小时前
C++ AVL 树深度剖析:平衡二叉搜索树原理、源码与面试考点
数据结构·c++
Escalating_xu12 小时前
【C语言常见概念】从第一行代码到字符串结束标志:一次打通编译、main、ASCII、转义字符与注释
c语言·c++
bnmoel12 小时前
C++ 基础入门篇(三):内联函数与空指针
c++·内联函数·nullptr·低层