使用qt+visa实现程控

曾经在如何使用VS2010调用visa进行程控中使用vs2010+visa 实现了程控最简单的Demo,现实现Qt实现visa的Demo

===== 本人诚接各种程控开发项目 =====

软件环境

  • 系统: windows 10
  • 开发环境: Qt 5.80
  • visa库版本: visa 6.0

软件下载

步骤

1. 添加依赖库

Demo.pro中添加依赖

win32 {
    INCLUDEPATH += "C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Include"
    LIBS += "C:\Program Files (x86)\IVI Foundation\VISA\WinNT\lib\msc\visa32.lib"
}

2. Demo

#include <QCoreApplication>
#include <visa.h>
#include <iostream>
using namespace std;

#define MAX_SCPI_LEN    255
#define DEFAULT_TMO     5000

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    /* Visa Session*/
    ViStatus nRetStatus;
    ViSession rmSession = 0;
    ViSession pInstrHandle;

    /* Visa communicate buffer */
    ViByte wrBuff[MAX_SCPI_LEN];
    ViByte rdBuff[MAX_SCPI_LEN];

    int retCount = 0;

    /* open device and get visa Handle */
    nRetStatus = viOpenDefaultRM( &rmSession);
    nRetStatus = viOpen( rmSession, "TCPIP0::127.0.0.1::5000::SOCKET", VI_NULL, VI_NULL, &pInstrHandle);

    /* set visa Format */
    nRetStatus = viSetAttribute( pInstrHandle, VI_ATTR_TMO_VALUE, DEFAULT_TMO);
    nRetStatus = viSetAttribute( pInstrHandle, VI_ATTR_SUPPRESS_END_EN, VI_FALSE);
    nRetStatus = viSetAttribute( pInstrHandle, VI_ATTR_SEND_END_EN, VI_FALSE);

    /* Query device IDN */
    nRetStatus = viQueryf( pInstrHandle, "*IDN?\n", "%s", rdBuff);

    cout << rdBuff << endl;

    /* Close */
    viClose( pInstrHandle);
    viClose( rmSession);

    return a.exec();
}

转载于:https://www.cnblogs.com/xbotao/p/6622419.html

  • 2
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值