linux 查看libusb版本,linux / libusb获取usb设备路径

我使用libusb来枚举一些usb设备.现在我想获得“设备路径”.我认为这不是usb device-path,因为我没有成功使用谷歌.

如果我用linux连接usb设备,我会在dmesg中收到一条消息,这里有一些带有usb温度传感器的“设备路径”的例子(类似于this):@H_301_3@

直接到usb端口:

[68448.099682] generic-usb 0003:0C45:7401.0056:输入,hidraw1:USB HID v1.10键盘[RDing TEMPer1V1.2] on usb-0000:00:12.0-1 / input0 => 12.0-1@H_301_3@

直接到另一个港口:

[68560.853108] generic-usb 0003:0C45:7401.0058:输入,hidraw1:USB HID v1.10键盘[RDing TEMPer1V1.2] on usb-0000:00:13.0-1 / input0 => 13.0-1@H_301_3@

到第一个使用端口的USB集线器:

[68600.245809] generic-usb 0003:0C45:7401.005A:输入,hidraw1:USB HID v1.10键盘[RDing TEMPer1V1.2] on usb-0000:00:12.2-1.4 / input0 => 12.2-1.4@H_301_3@

到同一USB集线器上的另一个端口:

[68647.925092] generic-usb 0003:0C45:7401.005C:输入,hidraw1:USB HID v1.10键盘[RDing TEMPer1V1.2] on usb-0000:00:12.2-1.3 / input0 => 12.2-1.3@H_301_3@

现在用于以前使用的usb集线器上的usb集线器:

[68740.715518] generic-usb 0003:0C45:7401.005E:输入,hidraw1:USB HID v1.10键盘[RDing TEMPer1V1.2] on usb-0000:00:12.2-1.4.4 / input0 => 12.2-1.4.4@H_301_3@

长话短说:

内核消息始终包含物理USB设备位置的唯一路径(请参阅之前的粗体文本).是否有可能通过libusb在用户空间中获得这条“路径”?我用struct usb_bus和struct usb_device尝试了很多东西,但我总是没有成功.@H_301_3@

我需要这个来识别这些usb温度计中的多个,因为它们没有唯一的序列号,有时它们只是在运行时“重新连接”,因此它们会得到不同的usb id.所以我认为识别它们的唯一方法是通过物理位置.@H_301_3@

谢谢您的帮助,@H_301_3@

最好的祝福

凯文M.@H_301_3@

-编辑-@H_301_3@

目前我使用以下代码来搜索我的USB设备:@H_301_3@usb_dev_handle *find_lvr_winusb() {

struct usb_bus *bus;

struct usb_device *dev;

for (bus = usb_busses; bus; bus = bus->next) {

for (dev = bus->devices; dev; dev = dev->next) {

if (dev->descriptor.idVendor == VENDOR_ID &&

dev->descriptor.idProduct == PRODUCT_ID ) {

usb_dev_handle *handle;

if(debug) {

printf("lvr_winusb with Vendor Id: %x and Product Id: %x found.\n",VENDOR_ID,PRODUCT_ID);

printf("INFO: %d\n",dev->bus->location);

printf("INFO: %d %s\n",bus->location,bus->dirname);

}

if (!(handle = usb_open(dev))) {

printf("Could not open USB device\n");

return NULL;

}

return handle;

}

}

}

return NULL;

}

但是使用此代码我无法获得唯一的物理位置ID. bus->位置返回一个整数(bus-> dirname包含相同的,但作为字符串),这不是唯一的.我知道usb有一个层次结构,在dmesg中我可以看到这个层次结构的路径.@H_301_3@

使用libusb我只能得到总线ID(?)和一些设备ID.但他们没有帮助我,因为我需要识别这些温度传感器中的两个或更多个.当温度传感器复位连接(每5到60秒)并且总线ID不唯一时,device-id总是会改变.不幸的是,温度传感器没有唯一的序列号.@H_301_3@

所以我认为物理路径是识别设备的唯一方法.@H_301_3@

最好的祝福

凯文M.@H_301_3@

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用Apache Drill分析高度动态的数据集

当今的数据是动态的,并由应用程序驱动。 由诸如Web /社交/移动/ IOT等行业趋势驱动的新业务应用时代的增长正在生成具有新数据类型和新数据模型的数据集。 这些应用程序是迭代的,并且关联的数据模型通常是半结构化的,无模式的且不断发展的。 …

MVC中不能使用原生态的#include ,可替代的解决方案

<!--#include file"../stuff/foo/box.aspx"--> 1.可以用 <%: Html.Partial("~/Views/foo/box.ascx") %>OR <% Html.RenderPartial("~/Views/foo/box.ascx"); %> 2. Html.Raw(File.ReadAllText(Server.MapPath("~/html/te…

linux备份日志文件脚本,Linux篇:Shell脚本实现Gitlab双备份

01 前言最近成功从架构组拿到了Gitlab的管理权限&#xff0c;第一件事就是想着如何备份&#xff0c;以防数据丢失背大锅&#xff0c;于是在网上搜索一番&#xff0c;发现一段非常赞的备份脚本&#xff0c;记录照着操作一下&#xff1a;尤其是第二篇文章博主&#xff0c;有非常多…

物理数据模型(PDM)-概念数据模型 (CDM)-面向对象模型 (OOM):适用于已经设计好数据库表结构了。...

步骤如下&#xff1a; 一、反向生成物理数据模型PDM 开发环境 PowerDesigner 15 ,SQL Server2005 &#xff08;1&#xff09;在开始逆向生成PDM图之前&#xff0c;需要为指定的数据库创建ODBC数据源。以Windows xp操作系统为例&#xff0c;选择“开始”/“运行”命令&#xff0…

带有Hibernate OGM的NoSQL –第二部分:查询数据

1月底发布了Hibernate OGM的第一个最终版本之后&#xff0c;团队一直在忙于制作一系列教程式博客&#xff0c;使您有机会轻松地从Hibernate OGM重新开始。 第一部分是关于设置和保留您的第一个实体 。 在第二部分中&#xff0c;您将学习如何查询数据。 Hibernate OGM将使您以几…

Linux下做一个arp欺骗程序6,LINUX下防ARP欺骗攻击

arp欺骗的原理不多述&#xff0c;基本就是利用发送假的arp数据包&#xff0c;冒充网关。一般在网上通讯的时候网关的IP和MAC的绑定是放在arp 缓存里面的&#xff0c;假的arp包就会刷新这个缓存&#xff0c;导致本该发送到网关的数据包发到了欺骗者那里。解决的办法就是静态arp。…

MySQL作为Kubernetes服务,可从WildFly Pod访问

Kubernetes上使用Vagrant的Java EE 7和WildFly&#xff08;技术提示&#xff03;71&#xff09;介绍了如何在使用Kubernetes和Docker托管的WildFly上运行琐碎的Java EE 7应用程序。 Java EE 7应用程序是在世界范围内交付的动手实验室 。 它使用与WildFly捆绑在一起的内存数据库…

几个最短路径算法Floyd、Dijkstra、Bellman-Ford、SPFA的比较

几大最短路径算法比较 转自&#xff1a;http://blog.csdn.net/v_july_v/article/details/6181485 几个最短路径算法的比较&#xff1a;Floyd 求多源、无负权边的最短路。用矩阵记录图。时效性较差&#xff0c;时间复杂度O(V^3)。 Floyd-Warshall算法&#xff08;Floyd-W…

linux系统creat函数,Linux系统调用之creat函数

Linux中系统调用很多&#xff0c;但是再多也有几种不变的根本&#xff1a;创建&#xff0c;打开&#xff0c;写&#xff0c;读&#xff0c;关闭&#xff0c;删除&#xff0c;等最最基本的操作&#xff0c;就像人们所常说的&#xff0c;Linux上的一切我们都可以当做文件来处理&a…

防止在多模块Maven中找到“未找到插件”

在多模块Maven项目的子模块上定义Maven插件会给我们“找不到插件”错误。 尤其是如果我们有一个多模块项目&#xff0c;并且只想在一个特定模块中应用Maven插件&#xff0c;则此错误会经常发生。 假设我们有一个看起来像这样的多模块root pom。 <project xmlns"http:…

linux 4412跑程序,荣品4412的板子上跑纯linux

昨天开始突然想在4412上面跑人QT玩&#xff0c;首先得跑个纯linux昨天做好第一步&#xff0c;把根文件系统&#xff0c;用make_ext4fs 打包。make_ext4fs -l 34M -s system.img minifs/然后在uboot启动命令中把启动参数修改&#xff1a;setenv bootargs noinitrd root/dev/mmcb…

ASP.NET MVC 笔记

&#xff08;从今天开始&#xff0c;还是换回默认的代码高亮插件吧。。。话说此篇仅供个人遗忘后查阅&#xff0c;木有详尽解释。。。&#xff09; 1、Controller中的所有Action方法不限制返回值类型&#xff0c;返回值应该至少可以被ToString()&#xff0c;这样最终页面上呈现…

JPA 2.1:不同步的持久性上下文

JPA 2.1版带来了一种新的方式来处理持久性上下文与当前JTA事务以及资源管理器之间的同步。 术语资源管理器来自Java事务处理API &#xff0c;它表示操纵一个资源的组件&#xff08;例如&#xff0c;使用JDBC驱动程序操纵的具体数据库&#xff09;。 默认情况下&#xff0c;容器…

麒麟Linux启动目录,优麒麟目录结构介绍 系统入门必备

对于Linux爱好者来说&#xff0c;深入了解Linux文件目录结构的标准和每个目录的详细功能&#xff0c;对于我们用好Linux系统至关重要&#xff0c;下面就由小编给大家介绍下优麒麟系统的目录结构&#xff0c;PS: 同样适用于其他Linux发行版。查看系统的全部目录&#xff1a;* 在…

java课堂作业(一)

1、环境变量配置参见&#xff1a;http://www.cnblogs.com/dongwenbo/p/3282014.html window ---> preference ---> java ---> installed jres ---> add jres tomcat 配置&#xff1a;myeclipse ---> preferences ---> myeclipse enterprise workbench --->…

为什么我的JVM访问的内存少于通过-Xmx指定的内存?

“嘿&#xff0c;你能来看看奇怪的东西吗&#xff1f;” 这就是我开始研究一个支持案例的方式&#xff0c;该案例将我引向了这篇博客文章。 当前的特殊问题与不同的工具报告了有关可用内存的不同数字有关。 简而言之&#xff0c;一位工程师正在研究特定应用程序的过多内存使用…

linux怎么安装高德导航软件,高德地图车机版如何安装?高德地图车机版安装教程...

高德地图车机版是高德为汽车车载机提供的一个专用版本&#xff0c;对于车主们来说有时候用手机导航实在是非常不方便&#xff0c;不仅屏幕小而且还可能中途来个电话什么的。高德地图车机版可以帮你的车载机装上导航地图&#xff0c;就算你不想买导航设备也能让你的车子为你导航…

SharePoint 2010 技术参数(整理)

今天整理一些 SharePoint 2010 的技术参数&#xff0c;其内容都来自 SharePoint-Sandbox 网站。 有些参数值是硬性的&#xff0c;比如列表单条记录的尺寸&#xff1b;而有些是为了使用和性能考虑的推荐值。 技术参数值列表最大记录数500万条列表单条记录上限8KB&#xff08;不含…

Dropwizard,MongoDB和Gradle实验

介绍 我使用Dropwizard&#xff0c;MongoDB和Gradle创建了一个小项目。 它实际上是从一个实验性的Guava缓存开始的&#xff0c;作为将计数器发送到MongoDB&#xff08;或任何其他DB&#xff09;的缓冲区。 我也想尝试MondleDB插件的Gradle。 接下来&#xff0c;我想创建某种接口…

linux eclipse svn插件安装,Linux上Eclipse安装SVN插件和安装JavaHL

在Eclipse上安装svn插件有两种选择&#xff0c;一种是Subclipse&#xff0c;一种是Eclipse Subversion。前者是svn的官网eclipse插件&#xff0c;后者是eclipse的官方svn插件&#xff0c;具体有什么不同我也不算很清楚&#xff0c;想知道的请自行百度。网上建议用Subclipse&…