现在的位置: 首页 > 综合 > 正文

主页(MainPage)

2013年10月02日 ⁄ 综合 ⁄ 共 1452字 ⁄ 字号 评论关闭

 

介绍

libusb 是一个开源库,允许你通过用户空间与USB设备通信。更多信息请见 libusb官方主页

本文档针对于那些希望通过自己的软件与USB外设进行通信的应用程序开发者。在对本文档进行完整的阅读之后,可以将反馈和问题发送到libusb-devel邮件列表

本文档建立在假设阅读者已经拥有如何从一个软件操作USB设备知识的立场(描述符,配置,接口,断点,控制/块/中断/同步传输,等等)。完整的信息可以在 USB 2.0 规范 找到,它可以被自由下载。通过搜索这个网页你很可能找不到太详细的介绍。

库特性

  • 支持所有的传输类型(控制/块/中断/同步)
  • 2 种传输接口:
    1. 同步 (简单)
    2. 异步 (更复杂,但是功能更强)
  • 线程安全(虽然使用异步接口意味着你通常不需要额外线程)
  • 简洁的 API,轻量级
  • 通过使用libusb-compat-0.1 转换层兼容libusb-0.1

入门

开始阅读本API文档,请从libusb不同的功能分类中的模块页(Modules)连接开始。

一个你不得不做出选择的就是决定使用同步传输还是异步传输接口。 在这个话题上Synchronous and asynchronous device I/O 文档提供了一些意见。

再libusb的源码发布版本中的examples子文件夹下可以找到一些示例程序。libusb 主页上包含一个实际使用libusb的项目例子。

错误处理

Libusb返回0代表成功,或返回负值错误代码代码失败。这些负值错误代码是作为LIBUSB_ERROR 枚举的值依次排列的,它们被列在 miscellaneous 文档页上。

调试信息记录

libusb 默认不记录任何信息。因此,你的应用程序可以自由关闭stdout/stderr 并且那些描述符(标准输出,标准错误描述符)可以作为其他用途毫无顾忌的重用。

libusb_set_debug() 函数可以用来设定使能stdout/stderr 特定的信息记录。 在标准配置情况下, libusb完全不记录信息,所以建议你使用这个函数使能所有的error/warning/informational
信息。这将能帮助你在你的软件中调试问题。

记录下来的信息是未经组织过的。 在被记录的信息之间没有成对比的关系并且成功或者失败都会从libusb函数返回代码。这些信息没有格式,所以你不应该尝试捕获或者解析它们。它们不会并且也将不会是局部化的。这些信息是不适合传递给应用程序的用户;相应的你应该将这些从libuusb函数返回的错误代码解释成可理解的信息,并且以一种恰当的方式呈现给用户。作为一个编程者这些信息可以简单的给你提供帮助,并且如果你因从libusb函数获得一个陌生的错误代码,,那么使能消息记录能够给你一个合适的解答。

LIBUSB_DEBUG环境变量可以被用来在运行时使能消息记录。这个环境变量应该被设置为一个与libusb_set_debug() 参数解释一致的数值。 当这个环境变量被设置了,消息记录冗余等级设定好, libusb_set_debug() 不会做任何事。

Libusb可以编译为无记录函数版本,用于嵌入式系统。在这种情况下libusb_set_debug() 和LIBUSB_DEBUG环境变量没有任何作用。

Libusb也可被编译为复杂记录信息版本。当库用这种方式编译,所有的信息总是都会被记录。libusb_set_debug() 和LIBUSB_DEBUG 环境变量没有任何作用。

其他备注

Libusb也存在不完美之处。 caveats 页面记录了这些内容。

抱歉!评论已关闭.