当前位置: 首页 > 网络知识

NI 使用DAQmx获取设备名及物理通路名

时间:2026-01-26 14:19:47

首先介绍一个小知识:

NIDAQmx的lib库分为32位和64位,

64位库文件路径为Program Files (x86)\National Instruments\Shared\ExternalCpilerSupport\C\lib64\msvc.这是一个本地的64位库文件,可以在64位C或者C++环境中使用。

首先介绍问题来源背景:

在使用NIDAQmx过程中,笔者遇到需要获取电脑连接的NI设备名和物理通路名的需求,这个需求在使用labview进行开发时,labview会提供相应的控件,但笔者的需求是使用C调用NIDAQmx驱动获取NI的设备名和物理通路名,使用QT显示在图像界面上。话不多说,给大家上代码。觉得有帮助的铁子麻烦给个赞,有问题的铁子也可以在评论区留言。

1 DAQmxGetSysDevNames(char *data, uInt32 bufferSize); 2 形参:1、设备名数组2、设备名数组的长度

使用上面这个函数便可以获取笔记本中所有NI设备的设备名及插槽名,函数的两个形参分别为要存储设备名的char数组和char数组的长度。

拿到设备名字符串后,按‘,’进行字符串切割,得到各个设备名。

1 DAQmxGetDevAIPhysicalChans(const char device[], char *data, uInt32 bufferSize); 2 形参:1、插槽名2、设备通路名数组3、设备通路名数组的长度

循环对各个插槽名使用DAQmxGetDevAIPhysicalChans函数,即可得到各个设备的物理通路名。

需特别指出的是,DAQmxGetSysDevNames函数不但会返回NI设备的所有设备名也会返回各个设备内的插槽名!!!

而DAQmxGetDevAIPhysicalChans函数只有传入插槽名才会返回物理通路名,否则不会返回数据。(即传入设备名无数据传出)

因此,循环对DAQmxGetSysDevNames函数得到的所有设备名及插槽名使用DAQmxGetDevAIPhysicalChans函数便可得到各个设备的物理通路名。

1 DAQmxGetDevChassisModuleDevNames(const char device[], char *data, uInt32 bufferSize); 2 形参:1、设备名2、插槽名3、插槽名数组长度

特殊的:DAQmxGetDevChassisModuleDevNames函数可以通过设备名得到该设备内的插槽名。

我封装了一个函数,功能是通过形参返回所有设备的通路名,各通路名间通过逗号进行分隔。大家可以直接使用这个函数。觉得好的铁子点个赞支持一下。

1 int GetAllDevChannelName(std::string& AllDevChannelName) 2 ; 4 DAQmxGetSysDevNames(AllDevName, 1000); 5 std::string* DevName = new std::string; 6 std::vector<std::string> DevNameVector; 7 std::stringstream DevNameStream(AllDevName); 8 9 while (getline(DevNameStream, *DevName, ',')) 10 13 delete DevName; 14 char tempDevChannelName[2000] = ; 15 for (std::vector<std::string>::iterator iter = DevNameVector.begin(); iter != DevNameVector.end(); iter++) 22 } 23 return 0; 24 } 25



上一篇:C/C++ RECT, PRECT, NPRECT, LPRECT;它们之间有什么区别?
下一篇:C/C++ 窗口取消置顶后被父窗口挡住,HWND_TOPMOST与HWND_NOTOPMOST踩坑记录
NI(LabVIEW)
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素