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));//
	}
}
相关推荐
潼心1412o1 小时前
C++初阶(长期更新)第5讲:类和对象(中)
开发语言·c++
weixin_307779131 小时前
C++代码实现MATLAB中的normalize函数功能
开发语言·c++·算法·matlab
(Charon)2 小时前
【C++面试】手写String类:同时实现拷贝构造与移动构造
c++·算法
程序员老陆2 小时前
通过std::unique_ptr初始化std::shared_ptr
开发语言·c++
Cx330❀4 小时前
Qt 多线程深度解析:从底层原理到 UI 线程与同步实战
开发语言·qt·ui·搜索引擎·性能优化·图形渲染
西西弗Sisyphus4 小时前
Qt6 实现 会动的界面像物理世界一样
c++·qt
UIU1144 小时前
头文件可以防什么错?运用头文件做声明
c++·学习·c#
by209994 小时前
list:迭代器与资源管理实现的综合叙述(下)
数据结构·c++·笔记·list
MayZork5 小时前
Qt 开发集成CMake + vcpkg
开发语言·c++·qt
书生执笔画浮沉5 小时前
Linux桌面端应用向鸿蒙PC迁移适配纪实
c++·qt·c·信创·海思·libc·ohos