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));//
	}
}
相关推荐
SunkingYang1 天前
QT编译报错:使用Lambda表达式作为槽函数,报错‘xxx‘ in capture list does not name a variable
qt·list·报错·lambda表达式·槽函数·in capture list·does not name
hqwest1 天前
码上通QT实战25--报警页面01-报警布局设计
开发语言·qt·qwidget·ui设计·qt布局控件
HellowAmy1 天前
我的C++规范 - 玩一个小游戏
开发语言·c++·代码规范
自学不成才1 天前
深度复盘:一次flutter应用基于内存取证的黑盒加密破解实录并完善算法推理助手
c++·python·算法·数据挖掘
SunkingYang1 天前
QT中如何遍历QStringList
qt·解析·遍历·方式·读取·qstringlist
hqwest1 天前
码上通QT实战26--系统设置01-系统设置布局
开发语言·qt·qss·qt基础控件·qt布局控件·qt表格控件
玖釉-1 天前
[Vulkan 学习之路] 08 - 给图片穿马甲:图像视图 (Image Views)
c++·windows·图形渲染
m0_748250031 天前
C++ 信号处理
c++·算法·信号处理
yuyanjingtao1 天前
动态规划 背包 之 凑钱
c++·算法·青少年编程·动态规划·gesp·csp-j/s
hqwest1 天前
码上通QT实战29--系统设置04-用户操作管理
开发语言·qt·模态窗体·addbindvalue·bindvalue