QT5.15使用VISA接口连接GPIB设备和USB设备

本文是之前再外网找到的解决方法,本着分享目的共享出来。

1. 首先安装NI-VISA环境包:点击下载

    如果使用GPIB还需要安装GPIB的环境包:点击下载(这个忘记了,似乎不安装也行)

2. 安装完成后,检查目录是否存在

C:\Program Files (x86)\IVI Foundation\VISA\winnt\include
C:\Program Files (x86)\IVI Foundation\VISA\winnt\lib

3. 在QT工程的.pro文件中加入如下内容。

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

4. 然后在你自己的文件中添加如下内容。

#include "visa.h"

ViSession osc;
ViSession rscmng;
uint8_t   viStatus;

5. 然后使用如下函数进行搜索设备,注意,如果想查找GPIB设备,要替换viFindRsrc里面的字符串。

bool MainWindow::scanGPIB(QStringList *strList)
{
    ViStatus stat = viOpenDefaultRM(&rscmng);
    // search for the oscilloscope
    ViChar      viFound[VI_FIND_BUFLEN];
    ViUInt32    nFound;
    ViFindList  listOfFound;
    
    //如果是查找GPIB设备,则把字符串换成"GPIB?*INSTR"
    stat = viFindRsrc(rscmng, (ViString)"USB?*INSTR", &listOfFound, &nFound, viFound);
    if(stat != 0){
        this->log("未找到设备,请关闭软件后连接设备,然后再打开本软件!");
        return false;
    }

    // connect to the oscilloscope
    stat = viOpen(rscmng, viFound, VI_NULL, VI_NULL, &osc);

    // communicate
    viPrintf(osc, (ViString)"*IDN?\n");
    char buf[256] = {0};
    viScanf(osc,(ViString)"%t",&buf);
    qDebug() << buf;
    strList->append(viFound);

    // close VI sessions
    viClose(osc);

    return true;
}

上面的截图就是扫描到设备的ID

6. 写命令到VISA

viPrintf(osc, (ViString)"*RST\n");

或者

strcpy (stringinput,"*IDN?\n");
      status = viWrite (instr, (ViBuf)stringinput, (ViUInt32)strlen(stringinput), &writeCount);

7. 从VISA读数据

 status = viRead (instr, buffer, 100, &retCount);

对于VISA的基本操作,在你安装完VISA环境包之后会有一个Example,例如我的就是:

C:\Users\Public\Documents\National Instruments\NI-VISA\Examples\C\USB

以上就是QT+VISA的全部内容了,祝你们调试顺利。

  • 4
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Snow_2018

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值