当前位置:   article > 正文

hid编程 qt_c – 如何在Linux上使用Qt读取HID设备(/ dev / hidrawX)?

linux 读取usbhid自定义

我正在开发一种’RepRap校准工具’,它可以使用连接到打印平台的鼠标来测量平台的运动.

现在我一直试图从/ dev / hidrawX读取原始鼠标数据,但我无法读取任何数据.

到目前为止,我已经尝试过:

第一次尝试:

QFile f("/dev/hidraw0");

f.readAll();

什么都不读.

第二次尝试:

m_file = new QFile("/dev/hidraw0");

m_sn= new QSocketNotifier(m_file->handle(),QSocketNotifier::Read);

m_sn->setEnabled(true);

connect(m_sn,SIGNAL(activated(int)),this,SLOT(readyRead()));

然后在readyRead SLOT上:

qDebug()<

此代码触发readyRead插槽一次,但它在read(64)调用时卡住,如果我注释read(64),则每次移动鼠标时都会触发插槽.

m_file.bytesAvailable()始终报告0.

用Qt读取这些设备的正确方法是什么?

解:

我重写了以下代码:

bool rcMouseHandler::openHidraw(QString device)

{

int fd =open(device.toLocal8Bit(),O_NONBLOCK);

if(fd <=0)

{

qDebug()<

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号