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));//
	}
}
相关推荐
傲世仙尊几秒前
继承-类设计层次复用切片转换与菱形继承的死结
c++
架构师伯子明3 分钟前
FFmpeg C++学习(一):编译和demo
开发语言·c++·学习
纪念 22926 分钟前
C++算法(六)
开发语言·c++·算法
ShineWinsu1 小时前
对于Qt:QCheckBox常见属性的详细解析
c++·qt·面试·笔试·gui·qcheckbox·多选框
AI的探索之旅1 小时前
97 个 OpenCV 实例(三十七):二维码识别,一张图四个码的陷阱
c++·opencv·计算机视觉
UIU1142 小时前
P16237 [蓝桥杯 2026 省 B] 应急布线
数据结构·c++·算法·蓝桥杯
raindayinrain2 小时前
c++设计模式
开发语言·c++·设计模式
旖旎夜光2 小时前
LeetCode 315: 算右侧小于当前元素的个数(归并排序) —— 题解
c++·学习·算法·leetcode·排序算法
D e re k ZH2 小时前
保序回归:从 PAVA 到可并堆的单调约束优化
c++·算法·数据挖掘·回归·kotlin
青少儿编程课堂2 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:字典树前缀树与单词检索统计
c++·python·算法·bfs·信息学竞赛