【问题标题】:USB detection using qt application使用 qt 应用程序进行 USB 检测
【发布时间】:2013-10-12 04:25:50
【问题描述】:

我是 Qt 的初学者。我想使用 QDbusConnection API 来获取有关设备连接的信息。 我使用了以下代码

#include <QtCore/QDebug>
#include <QtGui/QApplication>



#include <QtDBus/QDBusConnection>

#define HAL_SERV      "org.freedesktop.Hal"
#define HAL_MGR_INT   "org.freedesktop.Hal.Manager"
#define HAL_DEV_INT   "org.freedesktop.Hal.Device" 

#define HAL_MGR_PATH  "/org/freedesktop/Hal/Manager"
#define HAL_DEVS_PATH "/org/freedesktop/Hal/devices"

class Hal : public QObject
{                         
        Q_OBJECT        

public:
        Hal() : 
                QObject(),
                cnx( QDBusConnection::connectToBus( QDBusConnection::SystemBus,     "system" ) )
        {
                cnx.connect(
                                HAL_SERV, HAL_MGR_PATH, HAL_MGR_INT, "DeviceAdded",
                                this, SLOT(added(QString)) );
                cnx.connect(
                                HAL_SERV, HAL_MGR_PATH, HAL_MGR_INT, "DeviceRemoved",
                                this, SLOT(removed(QString)) );
        }

private slots:
        void added( QString dev )
        {
                qDebug() << __FUNCTION__ << dev;
        }

        void removed( QString dev )
        {
                qDebug() << __FUNCTION__ << dev;
        }

private:
        QDBusConnection cnx;
};

int main( int ac, char * * av )
{
        QApplication  app( ac, av );

        Hal hal;

        return( app.exec() );
}

#include "main.moc"

我成功构建了项目,如果我运行,我没有观察到任何输出。 和调试器显示如下警告: GDB:设置控制终端失败:设备的 ioctl 不合适\n"

什么问题,谁能详细解释一下。如何运行应用程序?我是否需要任何参数?

问候, 素佳他

【问题讨论】:

  • 你不想试试 libusb 库吗?
  • libusb 是否可以通过发送“信号”或“事件”来立即检测到密钥的插入?示例代码会对我有所帮助。
  • 使用QDBusconnection,连接成功,但是即使USB连接到系统也没有收到信号。有人可以帮我解决这个问题吗?

标签: c++ c qt


【解决方案1】:

尝试使用libusb

关于如何获取附加/分离 USB 设备事件的示例是 here

【讨论】:

    猜你喜欢
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多