C# 使用 LibUsbDotNet 实现 USB 设备检测 (blog.yuanpei.me)

【简介】

基于某些不可抗因素上的考虑,博主需要在程序中集成某厂商的硬件。我猜测,人们觉得这件事情“简单”,或许是看到这个设备有一条 USB 连接线,因为在人们的固有印象中,只要把它接到电脑上就可以正常工作了。事实的确如此,因为你只要考虑串口(SerialPort)、USB 以及这两者间的相互转换即可。当然,这世上的事情圆满者少,遗憾者多,博主在使用过程中发现,厂商的提供的 SDK 存在 Bug,当设备从电脑上拔出后,其 SDK 的初始化函数依然正常返回了,这意味着我们无法在使用设备前“正确”地检测出硬件状态。考虑厂商愿不愿意修复这个 Bug 还是个未知数,博主不得不尝试另辟蹊径。

点击查看原文 >>

@技术头条 2023-10-24 23:39 / 原作者微博:@云来雁去 / 0个评论
赞过的人: @IT技术博客大学习
要不要再学学下面的文章?
AWS运维部署实践--使用sigma自建镜像仓库代替ECR (wiki.eryajf.net)
本文介绍了如何使用 `sigma` 替代 AWS 的 ECR 作为轻量级的镜像仓库解决方案。通过配置 `s3` 存储、端口监听等设置,实现了低资源占用下的高效镜像管理。文章详细提供了 `config.yaml` 文件的配置方案,以及 `sigma` 部署的具体步骤,适合在自建环境中替代 ECR 进行镜像管理。
by @技术头条 2024-11-02 17:03 查看详情
Linux 安全 Auditd 审计工具使用说明 (dusays.com)
本文介绍了 Linux 的 Auditd 审计工具,用于监控和记录安全相关事件。内容涵盖工具安装、审计规则配置、日志管理和规则持久化。审计规则包括文件、系统调用的监控,适合检测敏感操作。通过 `auditctl`、`ausearch` 和 `aureport` 等工具,管理员可以分析日志并生成报告,提升系统的安全性和合规性。
by @技术头条 2024-11-02 16:54 查看详情
使用结构化数据管理 SSH 配置:SSH Config Tool (soulteary.com)
本文介绍了使用 SSH Config Tool 管理 SSH 配置的最佳实践。工具将复杂的 SSH 配置简化为 YAML 格式,实现模块化和自动化管理,适用于设备多、配置庞杂的场景。通过 YAML 文件生成精简的 SSH Config,可提高可读性,减少冗余。工具支持 Docker 运行和 Linux 管道,提供灵活的跨平台应用方式。
by @技术头条 2024-11-02 16:27 查看详情
如何使用纯CSS鉴别是不是Safari浏览器 (www.zhangxinxu.com)
如何通过纯 CSS 来判断是否为 Safari 浏览器?本文介绍了多种实用技巧和 @supports 规则的使用,帮助开发者轻松检测并处理 Safari 特有的样式兼容性问题。无论是桌面还是 iOS Safari,本文都有详细的解决方案!
by @技术头条 2024-09-09 23:40 查看详情
Android|使用阿里云推流 SDK 实现双路推流不同画面 (mazhuang.org)
想知道如何在 Android 中通过阿里云 SDK 实现双路推流不同画面?本文介绍了一个巧妙的解决方案,虽然阿里云 SDK 不支持原生多路推流,但通过跨进程调用,实现了同时推送不同区域的画面,适用于直播和录播场景的分离展示。开发者不容错过的实战分享,赶快阅读!
by @技术头条 2024-09-08 23:26 查看详情
USB 设备开发:从入门到实践指南(三) (paper.seebug.org)
本文深入研究了Nintendo手柄驱动在Linux系统中的实现细节,并解决了一些关于USB HID和input驱动的疑问。
by @技术头条 2024-08-06 08:27 查看详情
USB 设备开发:从入门到实践指南(二) (paper.seebug.org)
本文介绍了如何利用树莓派设备模拟USB鼠标和游戏手柄。文章从修改HID描述符开始,详细说明了如何通过调整bash脚本中的协议配置模拟不同的USB设备。在模拟鼠标时,作者修改了协议为鼠标,调整了HID描述符以支持鼠标的左右键、中键、滚轮等功能。接着,在模拟游戏手柄部分,作者通过设定正确的供应商和产品ID,使设备被识别为XBox 360手柄。文章还探讨了如何动态修改Ubuntu驱动来支持Switch手柄。

在研究过程中,作者分析了USB HID协议,使用eBPF和调试输出方式研究Linux内核驱动代码,探索了手柄的各种功能键和坐标轴的实现。此外,作者对Switch Pro手柄的驱动支持问题进行了深入分析,发现需要特定协议的支持,并提供了解决方案。
by @技术头条 2024-08-06 08:26 查看详情
USB 设备开发:从入门到实践指南(一) (paper.seebug.org)
这篇文章介绍了使用树莓派4B设备进行USB设备开发的经验。作者从研究工具、搭建开发环境、分析USB协议等多个角度详细描述了如何将树莓派模拟成一个USB键盘,并通过Wireshark捕获流量以研究和理解USB协议的工作原理。文章提供了具体的操作步骤和代码示例,并深入探讨了设备描述符、配置描述符、接口描述符、端点描述符等USB协议的关键组件。该文章为USB设备开发提供了实用的指导,适合对底层硬件开发感兴趣的开发者参考。
by @技术头条 2024-08-06 08:25 查看详情
使用 OpenRewrite 优化代码 (www.diguage.com)
本文介绍了如何使用OpenRewrite工具优化Java代码。OpenRewrite可以通过自动化脚本进行代码重构,减少技术债务,提升代码质量。作者详细讲解了如何配置Maven插件,并使用多种重构“处方”,例如排序import语句、升级到Java 21、替换Base64实现,以及迁移到Spring Boot 3.2和JUnit 5。通过这些工具和方法,开发者可以简化代码维护和升级流程。
by @技术头条 2024-08-06 08:04 查看详情
使用eBPF编写系统调用跟踪器 (colobu.com)
本文总结了如何使用eBPF编写一个名为BeeTracer的系统调用跟踪器。文章介绍了eBPF的基本概念及其优势,并详细描述了在Rust中实现该工具的步骤。通过利用eBPF的tracepoints和maps功能,BeeTracer可以高效地捕获并记录Linux系统调用的细节。作者还提供了代码示例,展示了如何在内核空间进行实时跟踪。
by @技术头条 2024-08-06 07:57 查看详情