Important: Please read the Qt Code of Conduct -

Write to HID device of type (/dev/hidrawX) on Linux

  • bool BusMain::openHidraw(QString device)
    int fd = open(device.toLocal8Bit(),O_NONBLOCK);
    if(fd <= 0)
    qDebug()<<"[WARN]rcMouseHandler::open-> Cant open!";
    return false;
    qDebug() << fd << ": HID Connected";
    m_read = new QSocketNotifier(fd, QSocketNotifier::Read);
    connect(m_read, SIGNAL(activated(int)), this, SLOT(readyHIDRead()));

    m_write = new QSocketNotifier(fd, QSocketNotifier::Write);
    emit this->hid_detected();
    return true;


    void BusMain::readyHIDRead()
    qDebug() << buffer;

    void BusMain::readyHIDWrite()
    int n = write(m_write->socket(),"GET",3);
    if (n < 0)
    qDebug() << "ERROR writing to socket";
    qDebug() << "GET SENT";

    hid_detected() is connected to a thread which executes readyHIDWrite every second.
    My program connects to HID and reads perfectly well but is not able to Write.
    AM i doing something wrong?

Log in to reply