查看: 10205|回复: 7

[原创] 发一个PyQt+pywinusb写的KSDK2.0 usb_device_hid_generic例程的上位机

[复制链接]
  • TA的每日心情
    慵懒
    2021-8-31 12:39
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    26

    主题

    149

    帖子

    1

    高级会员

    Rank: 4

    积分
    559
    最后登录
    2025-7-17
    发表于 2016-12-29 21:50:32 | 显示全部楼层 |阅读模式
    本帖最后由 zhangshengping 于 2016-12-30 13:59 编辑


    之前忘了把git项目设置为公开项目,现已公开!

    KSDK 2.0 的包里面提供了一个 usb_device_hid_generic 的自定义HID设备的USB例程(KL27)。

    在例程的说明文档里面只提到了在哪里下载 C# 的源码和源码需要修改的地方。
    然而我比较菜,在VS2013的环境下并没有编译出一个可执行的exe文件来。

    上网搜索了一下使用windows 环境下Python的pywinusb可以比较快的写出一个与USB HID类通信的例程,
    于是就花了几天的时间写了一个比较简陋的上位机程序。

    话不多说先上上位机的效果图!

    启动后的界面

    启动后的界面

    在发送数据的输入文本框内输入需要发送的数据,其中第一个自己的数据是HID的报告ID,
    KSDK例程的报告描述符中没有 Report ID,则 Report ID 为0。所有在发送时第一个字节
    为0.

    在ID列表中列出了所选的USB HID 设备支持那些Report ID及该Report 的输出输出特性。
    数据长度显示的是输出报告的字节长度,在没有打开设备时显示为16, 打开设备后显示
    为设备输出报告的长度。
    pyqt_hid2.png

    该上位机对用户输入数据中的Report ID做了一个检测,  当用户给的Report ID不是输出Report ID时,会
    将输入框的背景设置为红色,并在最下方用文字提示输入有误。

    pyqt_hid3.png

    需要源码的朋友可以到 git@osc 网址上获取,
    有 KL27 的KSDK 工程源码和Python的上位机源码及用pyinstaller打包后的exe文件。
    exe文件比较大,有17MB

    下面是 git@osc git项目的文件截图:

    pyqt_hid4.png
    如果希望将整个工程(KL27 的SDK包和Python脚本)下载下来的话可以使用这个链接
    对上图的Python脚本做一件简单的说明:

    pyqt_hid.pyw 没有使用Qt的线程来监控 pywinusb中的接收线程,
                          而是直接在pywinusb的接收线程里操作PyQt的对象,
                          程序很容易宕掉;
    pyqt_qthread.pyw 和 pyqt_qthread_qrc.pyw 实现方式是 在pywinusb的接收线程向队列中发消息,
                          然后用一个QThread 线程来监控队列,再用发射信号的方式,将从队列中获取到的
                          数据发送给Qt 的UI主线程中的显示文本框。这样程序不会宕掉。
    penguin.ico    是程序中会使用到的一个图标文件。
    images.py      是使用pyrcc4 工具利用penguin.ico生成为py文件,这样便于使用pyinstaller 将ico图标
                          文件导入到exe文件中,不需要额外提供图标文件。


    如果要运行 python脚本的话需要python环境的支持:
    这里说明一下我的开发环境:

    Python(x,y)-2.7.10.0
    pywinusb
    pyinstaller

    其中Python(x,y)-2.7.10.0中集成了PyQt4的库。

    链接:
    Python(x,y)-2.7.10.0
    pywinusb
    pyinstaller
    源代码
    源代码打包

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-7-22 13:56
  • 签到天数: 38 天

    连续签到: 1 天

    [LV.5]常住居民I

    20

    主题

    644

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1820
    最后登录
    2020-10-13
    发表于 2016-12-30 00:04:25 来自手机 | 显示全部楼层
    学习了        
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-8-1 11:36
  • 签到天数: 96 天

    连续签到: 1 天

    [LV.6]常住居民II

    2

    主题

    670

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1543
    最后登录
    2017-11-16
    发表于 2016-12-30 08:39:13 | 显示全部楼层
    :loveliness至此
    签到。。。。。。。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-6-2 13:32
  • 签到天数: 272 天

    连续签到: 1 天

    [LV.8]以坛为家I

    44

    主题

    995

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    4411
    最后登录
    2023-6-2
    发表于 2016-12-30 08:59:16 | 显示全部楼层
    LZ厉害
    不知道有没有类似的PC端驱动程序?还是不需要驱动直接就能操作了?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2021-8-31 12:39
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    26

    主题

    149

    帖子

    1

    高级会员

    Rank: 4

    积分
    559
    最后登录
    2025-7-17
     楼主| 发表于 2016-12-30 11:27:53 | 显示全部楼层
    andrewz 发表于 2016-12-30 08:59
    LZ厉害
    不知道有没有类似的PC端驱动程序?还是不需要驱动直接就能操作了?

    Windows 自带 USB HID类的驱动。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2023-6-2 13:32
  • 签到天数: 272 天

    连续签到: 1 天

    [LV.8]以坛为家I

    44

    主题

    995

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    4411
    最后登录
    2023-6-2
    发表于 2016-12-30 11:31:39 | 显示全部楼层
    zhangshengping 发表于 2016-12-30 11:27
    Windows 自带 USB HID类的驱动。

    哦~
    又学到了.
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    40

    主题

    500

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1089
    最后登录
    2025-1-13
    发表于 2018-1-9 16:28:13 | 显示全部楼层
    谢谢楼主给的方案
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    1

    帖子

    0

    新手上路

    Rank: 1

    积分
    6
    最后登录
    2018-2-14
    发表于 2018-2-14 17:26:03 | 显示全部楼层
    为什么用你的程序在我的电脑上无法检测到usb设备
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-18 13:22 , Processed in 0.099462 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表