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));//
	}
}
相关推荐
别动我齐刘海1 小时前
机器人运动控制学习4——状态估计 State Estimation
c++·人工智能·学习·目标检测·机器学习·机器人·自动驾驶
学习星球1 小时前
OpenHarness 全面配置教学——从游戏开发工作流引入
c++·游戏·ai·ai编程
小小龙学IT2 小时前
Qt 6 跨平台开发完全指南:从信号槽机制到实际项目落地
开发语言·qt
wWYy.2 小时前
C++与C的区别
c语言·c++
丰锋ff5 小时前
基于 Qt 的智能门禁系统
qt·学习
程序员与背包客_CoderZ6 小时前
高性能分布式KV存储引擎RocksDB入门与C/C++编码实战
c语言·开发语言·数据库·c++·分布式·分布式数据库·rocksdb
进击的_鹏6 小时前
从零开始的 Redis 学习
服务器·数据库·c++·redis·缓存
_Narcissus_7 小时前
链表算法题和静态链表
数据结构·c++·笔记·算法·链表·ai·力扣
布莱克6057 小时前
C++拷贝构造与拷贝赋值运算符的区别详解
开发语言·c++
啦啦啦啦啦zzzz8 小时前
时间轮定时器
linux·服务器·网络·c++·定时器