若该文为原创文章,转载请注明原文出处
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/166990299
长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…
Qt开发专栏:三方库开发技术
上一篇:没有了
下一篇:敬请期待…
前言
本文介绍 TiePie Handyscope HS3 一体化 USB 虚拟采集仪器开发。
TiePie Handyscope HS3
概述
Handyscope HS3 是荷兰 TiePie 推出的 USB 总线一体化虚拟测量仪器,集成双通道示波器采集模块与内置任意波形发生器(AWG)。硬件最高采样率 100MS/s,模拟带宽 50MHz,任意波形输出最高可达 2MHz,全部信号通道通过 BNC 接口引出,由 USB 完成供电与数据传输。 设备提供原生二次开发 DLL 接口,支持自定义波形生成、采集时序控制、原始信号读取,非常适合 PC 端自研测量系统,将信号激励与数据采集合并在同一台硬件内。
特点
- 激励与采集一体化:单台设备同时具备波形输出与双通道同步采集能力,省去分立信号源、独立采集卡两套硬件,简化外部接线与同步调试。
- 原生同步时序:波形发生器输出与采集通道硬件级同步,规避多设备之间时钟不同步带来的相位偏差,适合需要激励 - 回波时序对齐的测量。
- 轻量化 USB 方案:USB 供电,无需额外外接电源,便携,适合实验室原型快速搭建,方便外场试验验证。
- 开放二次开发接口:提供 Windows 平台 DLL,支持C/C++、Qt、C#等语言调用,可绕过官方 GUI 软件,直接控制硬件、读取原始采样数据。
- 多仪器合一:硬件底层同时具备示波器、频谱分析仪、瞬态记录仪、万用表功能,一套硬件可适配多种测量需求。
- BNC 标准接口:通用 BNC 模拟接口,可直接连接各类探头、信号前端,硬件适配性强
场景
这类一体化虚拟仪器非常适合自研测量系统原型开发,在电磁涡流、超声波无损检测的信号采集中,可使用该设备作为前端激励与采集单元,替代分立信号源+采集卡组合,简化硬件链路,方便算法快速迭代验证。
下载SDK
官网:https://www.tiepie.com/en/usb-oscilloscope/handyscope-hs3
SDK归档页:https://www.tiepie.com/en/download/archive
下载下来:
基础开发环境Demo
步骤一:下载sdk
步骤二:通过def生成lib
只给了def,没有lib,所以要使用vs将def生成对应lib:
打开vs2019相关的工具:
进入工具cmd:
切换目录:
执行def生成lib指令:
步骤三:.pri模块引入头文件和库文件
步骤四:编译报错,需c++17
编译报错:
添加c++17的支持:
通过。
步骤五:测试基础环境
同一个设备存在多个角色,手上的就是可以是示波器,还有一个信号源发生器,所以需要兼容:
可以一个句柄当两个设备打开:
步骤六:运行结果
模块化
Demo源码
voidHs3Manager::testEvn(){// sdk版本LOG<<QSTRING("Library version: %1.%2.%3").arg(TIEPIE_HW_VERSION_MAJOR).arg(TIEPIE_HW_VERSION_MINOR).arg(TIEPIE_HW_VERSION_PATCH);// 步骤一: 初始化sdkTiePie::Hardware::Library::init();// 步骤二: 允许探测开启TiePie::Hardware::Network::setAutoDetectEnabled(true);// 步骤三: 刷新设备列表(探测刷新)TiePie::Hardware::DeviceList::update();// 步骤四: 循环打印所有设备信息for(intindex=0;index<TiePie::Hardware::DeviceList::count();index++){// 获取项目智能(默认返回就是智能指针)std::unique_ptr<TiePie::Hardware::DeviceListItem>pItemPtr=TiePie::Hardware::DeviceList::getItemByIndex(index);if(!pItemPtr){LOG<<index<<"if(!pItemPtr)";continue;}// 打印设备基础信息TiePie::Hardware::DeviceListItem*pItem=pItemPtr.get();LOG<<QString("===== 设备[%1] =====").arg(index);LOG<<QString("设备名称:%1").arg(QString::fromStdString(pItem->name()));LOG<<QString("序列号:%1").arg(pItem->serialNumber());QStringList strList;{if(pItem->types()&TIEPIE_HW_DEVICETYPE_OSCILLOSCOPE){strList<<QSTRING("Oscilloscope(示波器)");}if(pItem->types()&TIEPIE_HW_DEVICETYPE_GENERATOR){strList<<QSTRING("Generator(信号源)");}if(strList.size()==0){strList<<QSTRING("Unknow");}};LOG<<QString("有效类型:%1").arg(strList.join(","));}// 步骤五: 释放sdkTiePie::Hardware::Library::fini();}工程模板v1.0.0
上一篇:没有了
下一篇:敬请期待…
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/166990299