#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
this->setWindowTitle(QStringLiteral("USB/HID设备"));
if(!m_timer)
m_timer = new QTimer();
connect(m_timer, &QTimer::timeout, this, &MainWindow::getHIDData);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::getHIDData()
{
hid_init();
m_Handle = hid_open(1046, 45057, NULL);//vid和pid绑定
unsigned char buf1[4] = {0xff};
hid_set_nonblocking(m_Handle, 0);
// 数据接收
hid_read(m_Handle, buf1, 4);
// while(hid_read(handle, buf1, 8))
{
for(int i = 0; i < 4; i++)
{
qDebug("%d %02X",i, buf1[i]);
ui->plainTextEdit->appendPlainText(QString("%1 %2").arg(i).arg(QString::number(buf1[i], 16), 2, QLatin1Char('0')).toUpper());
}
ui->plainTextEdit->appendPlainText("\n");
}
// 数据发送
// unsigned char buffer[9];
// memset(buffer, 0, sizeof(buffer));
// buffer[0] = 0x00;
// buffer[1] = 0x20;
// buffer[2] = 0x00;
// buffer[3] = 0x02;
// buffer[4] = 0x00;
// buffer[5] = 0x07;
// hid_write(handle, buffer, 9);
hid_close(m_Handle);
m_Handle = nullptr;
}
void MainWindow::on_btn_Data_clicked()
{
if(ui->btn_Data->text() == QStringLiteral("获取数据"))
{
m_timer->start(10);
ui->btn_Data->setText(QStringLiteral("停止获取"));
}
else if(ui->btn_Data)
{
m_timer->stop();
if(m_Handle)
{
hid_close(m_Handle);
m_Handle = nullptr;
}
ui->btn_Data->setText(QStringLiteral("获取数据"));
}
}
void MainWindow::on_btn_HIDInfo_clicked()
{
struct hid_device_info *devs, *cur_dev;
devs = hid_enumerate(0x0, 0x0);
cur_dev = devs;
QString deviceInfo;
while (cur_dev) {
// qDebug()<<"Device Found:"<< cur_dev->vendor_id<< cur_dev->product_id<< cur_dev->path<< cur_dev->serial_number << cur_dev;
deviceInfo = QString("vid:%1 pid:%2 %3 %4").arg(cur_dev->vendor_id).arg(cur_dev->product_id).arg(cur_dev->path).arg(cur_dev->serial_number);
ui->plainTextEdit->appendPlainText(deviceInfo);
cur_dev = cur_dev->next;
}
hid_free_enumeration(devs);
}
USB/HID设备+Qt数据收发
需积分: 0 42 浏览量
2024-05-17
10:41:38
上传
评论
收藏 96KB ZIP 举报
![avatar](https://profile-avatar.csdnimg.cn/984abaa9739d4d5b8a4282cb0832db6e_m0_58635225.jpg!1)
隔壁裴大爷
- 粉丝: 26
- 资源: 2
最新资源
- TC7262D SOP-16封装 8通道LED显示屏行扫描消隐控制驱动芯片 深圳市可芯电子有限公司.pdf
- 基于STM32的交流电力控制系统例程(交流调压,调功)
- addresstool工具授权文件,有效期1年,所有工具都可使用
- CTF隐写工具Stegsolve+工具使用说明
- 基于SpringBoot+vue的在线花店管理系统源码+数据库+说明文档(95分以上可直接运行大作业项目)
- TC8301.SOP-8封装 单通道直流马达驱动器 深圳市可芯电子有限公司.pdf
- win7calc.7z win7计算器
- 1719296385116.jpg
- untitled.7z
- C语言文件操作深度解析:实现文件的随机访问
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)