精华内容
下载资源
问答
  • 最近测试发现,运行qt程序,当使用USB触摸屏时,在触摸屏拔出后触摸屏的event节点会消失,当再次插入触摸屏时,即使生成了...在QWSTslibMouseHandlerPrivate::readMouseData()的开始处加入以下代码,即可支持热插拔

    最近测试发现,运行qt程序,当使用USB触摸屏时,在触摸屏拔出后触摸屏的event节点会消失,当再次插入触摸屏时,即使生成了相同的节点,屏幕已经不能点击了。

    解决办法:

    解决办法:修改qt源码,使qt支持触屏的热插拔,使用的qt库为4.8.6

    因为使用的是使用的是tslib库,对应的源码在qt源码中的src/gui/embedded/qmousetslib_qws.cpp

    在QWSTslibMouseHandlerPrivate::readMouseData()的开始处加入以下代码,即可支持热插拔:

    void QWSTslibMouseHandlerPrivate::readMouseData() 
    {
        if(!qt_screen)
            return;
        /* Support usb touchscreen hotplug */
        int version;
        if (ioctl(ts_fd(dev), EVIOCGVERSION, &version) < 0) {
            disconnect(mouseNotifier, 0, 0, 0);
            delete mouseNotifier;
            while (1) {
                if(open()) {
                    mouseNotifier = new QSocketNotifier(ts_fd(dev), QSocketNotifier::Read, this);
                    connect(mouseNotifier, SIGNAL(activated(int)), this, SLOT(readMouseData()));
                    resume();
                    return;
                }
                system("echo waiting for tp ...");
                system("sleep 1");
            }
        }
        /* end */
        ...
    }

    重新编译qt,将生成的libQtGui.so.4.8.6替换到机器上即可。

     

    展开全文
  • Qt4.8.6支持USB触摸屏热插拔

    千次阅读 2016-11-04 14:09:38
    Qt4.8.6支持USB触摸屏热插拔当前环境:qt-everywhere-opensource-src-4.8.6 + tslib-1.4 + linux 3.2.0测试发现,运行qt程序,当使用USB触摸屏时,在触摸屏拔出后触摸屏的event会消失,当再次插入触摸屏时,屏幕已经...

    Qt4.8.6支持USB触摸屏热插拔


    转载请注明:http://blog.csdn.net/kp339/article/details/53034215

    当前环境:qt-everywhere-opensource-src-4.8.6 + tslib-1.4 + linux 3.2.0

    测试发现,运行qt程序,当使用USB触摸屏时,在触摸屏拔出后触摸屏的event节点会消失,当再次插入触摸屏时,即使生成了相同的节点,屏幕已经不能点击了。

    解决办法:修改qt源码,使qt支持触屏的热插拔。

    使用的是tslib库,对应的源码在qt源码中的src/gui/embedded/qmousetslib_qws.cpp

    在QWSTslibMouseHandlerPrivate::readMouseData()的开始处加入以下代码,即可支持热插拔:

    void QWSTslibMouseHandlerPrivate::readMouseData() 
    {
        if(!qt_screen)
            return;
        /* Support usb touchscreen hotplug */
        int version;
        if (ioctl(ts_fd(dev), EVIOCGVERSION, &version) < 0) {
            disconnect(mouseNotifier, 0, 0, 0);
            delete mouseNotifier;
            while (1) {
                if(open()) {
                    mouseNotifier = new QSocketNotifier(ts_fd(dev), QSocketNotifier::Read, this);
                    connect(mouseNotifier, SIGNAL(activated(int)), this, SLOT(readMouseData()));
                    resume();
                    return;
                }
                system("echo waiting for tp ...");
                system("sleep 1");
            }
        }
        /* end */
        ...
    }

    重新编译qt,将生成的libQtGui.so.4.8.6替换到机器上即可。

    展开全文
  • usb触摸屏断开之后,即使重连,在已经运行的qt程序中,并且系统已经生成了触摸设备节点,qt程序也是能恢复触摸。 解决方法:修改qt源码中的src/gui/embedded/qmousetslib_qws.cpp 在QWSTslibMouseHandlerPrivate...

    环境:周立功的m3352的核心板,使用tslib,Qt4.7的环境下

    usb触摸屏断开之后,即使重连,在已经运行的qt程序中,并且系统已经生成了触摸设备节点,qt程序也是不能恢复触摸。

    解决方法:修改qt源码中的src/gui/embedded/qmousetslib_qws.cpp

    在QWSTslibMouseHandlerPrivate::readMouseData()的开始处加入以下代码

    void QWSTslibMouseHandlerPrivate::readMouseData() 
    {
        if(!qt_screen)
            return;
        /* Support usb touchscreen hotplug */
        int version;
        if (ioctl(ts_fd(dev), EVIOCGVERSION, &version) < 0) {
            disconnect(mouseNotifier, 0, 0, 0);
            delete mouseNotifier;
            while (1) {
                if(open()) {
                    mouseNotifier = new QSocketNotifier(ts_fd(dev), QSocketNotifier::Read, this);
                    connect(mouseNotifier, SIGNAL(activated(int)), this, SLOT(readMouseData()));
                    resume();
                    return;
                }
                system("echo waiting for tp ...");
                system("sleep 1");
            }
        }
        /* end */
        ...
    }

    注:

    • 记得ioctl()的头文件, #include <sys/ioctl.h>
    • EVIOCGVERSION未定义 ,#define EVIOCGVERSION _IOR('E', 0x01, int) /* 获取驱动的版本信息*/

    重新编译qt,将生成的libQtGui.so.4.7.3替换到机器上即可

    这一次真的被搞死了,arm板子是周立功的m3352的核心板,一切都按照他给的参考资料,然后发现,实际里面的跟他们给的教程的build-qt是不一致的,使用新编译的库替换后,永远运行不成功,不是bus error,就是Segmentation fault

    替换后的Qt4编译源码的build-qt.sh文件

    #!/bin/sh
    
    
    (echo yes) | \
    ./configure 							\
            -prefix /opt/qt /*指定路径*/         				\
            -embedded arm                                 		\
            -platform qws/linux-x86-g++     			\
            -xplatform qws/linux-arm-gnueabi-g++      		\
            -depths 16,18,24,32                             	\
            -no-mmx                                                 \
            -no-3dnow                                               \
            -no-sse                                                 \
            -no-sse2                                                \
            -no-glib                                                \
            -no-cups                                                \
            -no-largefile                                  		\
            -no-accessibility                              		\
            -no-openssl                                    		\
            -no-gtkstyle                                   		\
            -qt-mouse-pc                                   		\
            -qt-mouse-linuxtp                              		\
            -qt-mouse-linuxinput                   			\
            -plugin-mouse-linuxtp                   		\
            -plugin-mouse-pc                                	\
            -fast                                                   \
            -D QT_NO_QWS_CURSOR               			\
            -D QT_QWS_CLIENTBLIT                   			\
            -release                                                \
    	-host-little-endian	-little-endian	\
            -opensource						\
            /* 添加内容 */
    	-qt-mouse-tslib						\
    	-I/opt/tslib/include					\
    	-L/opt/tslib/lib					\
    

    同时修改qt-everywhere-opensource-src-4.7.3/mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf文件

    #
    # qmake configuration for building with arm-none-linux-gnueabi-g++
    #
    
    include(../../common/g++.conf)
    include(../../common/linux.conf)
    include(../../common/qws.conf)
    
    # modifications to g++.conf
    QMAKE_CC                = arm-none-linux-gnueabi-gcc -lts /* -lts为添加内容 */
    QMAKE_CXX               = arm-none-linux-gnueabi-g++ -lts
    QMAKE_LINK              = arm-none-linux-gnueabi-g++ -lts
    QMAKE_LINK_SHLIB        = arm-none-linux-gnueabi-g++ -lts
    
    # modifications to linux.conf
    QMAKE_AR                = arm-none-linux-gnueabi-ar cqs
    QMAKE_OBJCOPY           = arm-none-linux-gnueabi-objcopy
    QMAKE_STRIP             = arm-none-linux-gnueabi-strip
    
    load(qt_config)

    参考http://blog.csdn.net/kp339/article/details/53034215

     

    展开全文
  • 硬件设计使用了,usb转sd卡的电路,类似sd卡读卡器,经过测试,发现linux系统,usb动,直接插拔sd卡,系统无法热插拔, 经过多方验证,查找到一种复位usb节点的方法,可实现重新加载usb设备,可以类比其他类似...

            硬件设计使用了,usb转sd卡的电路,类似sd卡读卡器,经过测试,发现linux系统,usb口不动,直接插拔sd卡,系统无法热插拔,

    经过多方验证,查找到一种复位usb节点的方法,可实现重新加载usb设备,可以类比其他类似功能,实现复位usb设备。

    echo 0 > /sys/devices/soc/7000000.ssusb/7000000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1.3/authorized 

    echo 1 > /sys/devices/soc/7000000.ssusb/7000000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1.3/authorized 

    具体节点,查看自己设备内核日志

    方法一:应用层使用文件系统读写失败,时,可动态操作节点,实现热插拔,重新加载sd卡设备

    方法二:硬件上增加一个sd卡检测引脚,拔掉卡时,判断io口,比方法一有更快的时效性和准确性

    此处在提供一个内核更改方法,需要懂mmc框架,此处只提供下思路,需要自己实现:

    通过一直发送cmd:TEST_UNIT_READY 来检测card的状态。
    这边看了 /drivers/scsi/sd.c 文件是有走到的。可以参考函数 sd_spinup_disk里面状态检测。

    展开全文
  • wifi usb dongle不支持hotplug热插拔

    千次阅读 2013-09-06 15:30:53
    gm8128平台开发中发生了一件事,原本支持hotplug的wifi dongle,突然支持了。 我怀疑是linux kernel配置修改或是busybox...下面的热插拔过程打印: rtusb init ---> === pAd = c9c02000, size = 504032 ===
  • 有两种方案: 1.利用系统的udev进行热插拔检测,QT...所以很多嵌入式系统都不支持这种方式,除非你的文件系统移植了systemd,systemd有一个systemd-udev的程序专门用于处理热插拔事件,而且systemd文档齐全,不像...
  • 配置虚拟机支持USB设备的热插拔

    千次阅读 2015-06-02 20:37:22
    今天,无意中把山寨的JLINK,用segger 4.90给升级了,导致无法使用,非常郁闷。...结果是,虚拟机能动态的支持USB设备。物理机和虚拟机应该是一样的啊。 后来,百度搜了搜,才找到原因。因为我本身用
  • U盘不支持热插拔

    2008-11-24 08:42:00
    最近买了个u盘,刚用了两次就坏掉了,插到电脑上就提示“无法识别的usb设备”...后来发现,是u盘不支持热插拔了,把u盘插上去再开机,电脑就可以认出来,还好,u盘是2g的,当硬盘用了,不知道是把u盘上那个芯片烧坏了?
  • Qt5修改支持热插拔

    2020-11-02 18:33:53
    原文: ...QT5.7.0 嵌入式平台 usb鼠标键盘热插拔问题 - it610.comhttps://www.it610.com/article/1305212461422514176.htm 谢谢作者,真是帮了大忙了,亲测可以解决USB鼠标键盘热插拔问题。
  • 转自:https://blog.csdn.net/shengzhadon/article/details/51455361QT5.5.1 嵌入式平台 鼠标键盘不能热插拔问题解决 qt5.7.0编译的默认输入选项是-evdev,不支持usb鼠标热拔插,可以修改qt安装目录/Users/...
  • Linux下自动检测USB热插拔

    万次阅读 2016-08-04 16:53:27
    做嵌入式开发,尤其在网关、路由器或者其他支持USB设备的终端上,为了提高用户体验...在Linux下,我们主要有两种办法检测USB热插拔。 第一种便是定时检查/proc/scsi/scsi文件,该文件内会按照标准格式保存着当前
  • 接口为PS/2的键盘鼠标不支持热插拔 计算机中PS/2接口的键盘,鼠标等硬件不支持带电插拔功能,带电插拔时瞬间电流过大,可能会烧坏主板;而有些时候主板上的某个电路或元器件能自动形成保护,导致计算机黑屏,主板...
  • netlink 判断USB热插拔事件

    千次阅读 2013-04-07 11:05:43
    做嵌入式开发,尤其在网关、路由器或者其他支持USB设备的终端上,为了提高用户...在Linux下,我们主要有两种办法检测USB热插拔。 第一种便是定时检查/proc/scsi/scsi文件,该文件内会按照标准格式保存着当前设备
  • MiniGUI鼠标热插拔支持

    千次阅读 2015-07-21 19:05:17
    因产品需求,需要minigui支持USB鼠标支持热插拔功能。但是奇怪的是测试人员说以前测试的时候是支持usb热插拔的,现在不行了。这叫我情何以堪,我压根就没动什么呀,从linux内核到文件系统再到minigui 的库,我印象中...
  • 1、使用Windows API串口编程方法实现的串口工具(**支持热插拔功能**),Serial.cpp为串口通信类。界面是使用MFC编程的。编译工具是vs2017,也可在vs2008编译执行,此zip中包含可执行的源代码和可直接使用的exe。 注意...
  • 因为项目需要支持usb 串口的设备,因为linux... 但是热插拔或者同时插入几个usb 串口设备。生成ttyUSB* 就是确定序列号。 所以我们通过android ueventd 守护进程根据固定的设备路径做软连接。apk 就可以打开这个软
  • libusb中的热插拔使用举例

    千次阅读 2020-04-26 13:57:09
    以下为判断usb设备是插入还是拔出状态(热插拔)的测试代码:在Windows下是不支持的,在Linux是支持的,下一个版本可能会支持Windows下的热插拔: #include <chrono> #include <thread> #include <...
  • 经过uboot/kernel/fs的移植之后usb接口的热插拔已经OK,但是QT怎么也不支持热插拔,工作任务和强迫症双层压力下,决心对键鼠的热插拔一探究竟。 首先感谢...
  • 通常来说,一个完整的热插拔系统包括热插拔系统的硬件,支持热插拔的软件和操作系统,支持热插拔的设备驱动程序和支持热插拔的用户接口。热插拔技术已被广泛应用到电信服务器、USB接口、火线(firewire)和CompactPCI...
  • Xorg,Xserver,udev,热插拔

    千次阅读 2011-07-11 16:00:05
    问题: Xorg不支持热插拔usb鼠标和键盘解决:重新编译Xorg,去掉udev编译选项,去掉xorg.conf,使用通用的鼠标和键盘驱动(不能用evdev)问题:udev使用解决:编译(或拷贝)udevd、udevadm, 配置:/lib/udev e
  • USB特点

    2020-11-13 02:17:48
    USB具有以下一些显著特点。  (1)高速数据传送  USB1.1支持1.5~12Mbps的传输速率,2.0版本更支持高达120~240Mbps的传输速率,该速率与一个标准的并口相比,也快出近10...所有USB设备支持热插拔,系统对其进行
  • 知道的USB

    2019-07-12 11:56:00
    USB的接口类型、定义和原理 目前USB接口类型已经更新到了USB3.1和USB Type-C类型,下面就对USB的类型进行...USB接口具有传输速度更快,支持热插拔以及连接多个设备的特点。目前已经在各类外部设备中广泛的被采用...
  • USB是一种快速、双向、同步传输、廉价、方便使用的可热拔插的串行接口。由于数据传输快,接口方便,支持热插拔等优点使USB设备得到广泛应用。目前,市场上以USB2.0为接口...
  • USB(Universal Serial Bus)全称通用串口总线,USB为解决即插即用需求而诞生,支持热插拔USB协议版本有USB1.0、USB1.1、USB2.0、USB3.1等,USB2.0目前比较常用,USB是主从模式的结构,设备与设备之间、主机与主机...
  • CAN-RS232接口卡速度太慢,且不支持热插拔;CAN-PCI接口卡虽然速度快,但不支持热插拔。而采用CAN-USB接口卡,不但速度快,而且支持热插拔,并且可以从系统中直接汲取电流而不需要外部供电。  文[1][2]中所设计的...
  • USB总线

    万次阅读 2018-01-26 10:39:33
    USB(通用串行总线)具有数据传输率高,易扩展,支持即插即拔和热插拔的优点。USB1.1包含全速和低速两种模式,低速支持一些需要很大数据吞吐量和高实时性的设备,如鼠标。全速可以外接速率更高的外设。在USB2.0中,...
  • 由于数据传输快,接口方便,支持热插拔等优点使USB设备得到广泛应用。目前,市场上以USB2.0为接口的产品居多,但很多硬件新手在USB应用中遇到很多困扰,往往PCB装配完之后USB接口出现各种问题比如通讯稳定或是无法...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 171
精华内容 68
关键字:

usb不支持热插拔