标签: usb

同步 USB 传输混乱

  1. 等时端点只是一种方式。但是单个等时 IN 传输在各种来源(例如,此处http://www.beyondlogic.org/usbnutshell/usb4.shtml#Isochronous)中被描述为一个 IN 令牌数据包(从主机到设备),后跟一个 DATA 数据包(从设备到主机)。所以我在这里看到了双向的沟通。来自主机的令牌数据包是否由同一 IN 同步端点接收,然后发送数据?
  2. 同步有什么用?这里: http: //wiki.osdev.org/Universal_Serial_Bus#Supporting_Isochronous_Transfers我们读到:“由于应用程序特定的采样率、不同的硬件时钟设计、操作系统中的调度策略,甚至物理异常,主机和同步设备可能会失去同步。” 但如何呢?我理解这样的事件序列:设备用数据填充其传出缓冲区,并等待令牌(可能有一些中断)。主机发送令牌包,并等待数据包,(我认为)应该立即到达。序列每一帧都重复(@FS),每个人都很高兴。令牌包不是同步设备的回复吗?
  3. http://wiki.osdev.org/Universal_Serial_Bus#SYNC_Field中,我们读到:“所有 USB 数据包都以 SYNC 字段开头,毫不奇怪,该字段充当接收器和发送器之间的同步机制。” 所以我再次问:为什么要以另一种方式同步等时传输?

linux usb

2
推荐指数
1
解决办法
3358
查看次数

Android USBDevice:如何从vendorID和DeviceID确定“供应商名称”和“设备名称”?

我有一个 USB 设备,我想知道如何从供应商 ID 和设备 ID 中识别“供应商名称”和“设备名称”。

我从 USBManagers 的 DeviceList Hashmap 获得的设备名称看起来无效。

最后我想要的是这样的:

(硅 - 功率 8GB)

usb android android-launcher

2
推荐指数
1
解决办法
3722
查看次数

在 Delphi 中正确调用外部 dll?

我知道一些 Delphi 的基础知识(实际上我已经使用它几年了)......

我正在用 DLL 撞墙(从来没有真正玩过这个)。

考虑这个例子:

   unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

Type FT_Result = Integer;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


var
  Form1: TForm1;
  FT_HANDLE : DWord = 0;



implementation

{$R *.dfm}

function I2C_GetNumChannels(numChannels: dword):FT_Result; stdcall; external 'libmpsse.dll' name 'I2C_GetNumChannels';
function I2C_OpenChannel(index:dword;handle:pointer):FT_Result; stdcall; external 'libmpsse.dll' name 'I2C_OpenChannel';

procedure TForm1.Button1Click(Sender: TObject);
var
numofchannels:dword;
begin
i2c_getnumchannels(numofchannels);
showmessage(inttostr(numofchannels));
end; …
Run Code Online (Sandbox Code Playgroud)

delphi usb dll i2c ftdi

2
推荐指数
1
解决办法
8524
查看次数

使用 libusb 和 Ruby 从 USB 设备(Waterrower S4 Monitor)读取数据

我买了一个Waterrower,它有一个S4 性能监视器,背面有一个微型 USB 连接器,我认为能够获取来自 S4 的数据并用它做一些很好的事情会很好。

我确实知道一些 Ruby,但我一点也不喜欢与硬件交谈。我确实在 Github 上找到了Lars Kanislibusb Ruby 绑定,并使用了它:

2.1.0 :001 > require "libusb"
 => true 
2.1.0 :002 > usb = LIBUSB::Context.new
 => #<LIBUSB::Context:0x000001011451c0 @ctx=#<FFI::Pointer address=0x000001032788b0>, @on_pollfd_added=nil, @on_pollfd_removed=nil, @hotplug_callbacks={}> 
2.1.0 :003 > usb.devices
 => [#<LIBUSB::Device 20/9 04d8:000a Microchip Technology Inc. CDC RS-232: WR-S4.2 ? (Comm (00,00))>, #<LIBUSB::Device 20/8 054c:0243 Sony Storage Media 2A08080530914 (MassStorage SCSI Bulk-Only)>, #<LIBUSB::Device 20/1 05ac:025a Apple Inc. Apple Internal Keyboard / Trackpad ? (HID …
Run Code Online (Sandbox Code Playgroud)

ruby macos usb libusb osx-yosemite

2
推荐指数
1
解决办法
3251
查看次数

Android USB 调试未显示授权对话框

我需要有关 USB 调试的帮助...

多年来,我一直试图让我的计算机调试我的手机。这令人沮丧。我已经安装了所有必需的驱动程序。我的设备已被检测到,adb devices但未经授权。无论我尝试多少次,我的 android 上的授权对话框都没有出现。

如果你想告诉我去对根文件做些什么,我不能。我的手机还是原装的,没有root。是的,我已更改为 PTP。我还从 SDK Manager 安装了最新的 sdk 平台工具。我使用 Windows,并在 cmd 中使用 adb。

请帮忙!

debugging usb android authorization adb

2
推荐指数
1
解决办法
2万
查看次数

如何使用 SigWeb 在 JavaScript 代码中检测 Topaz 设备是否已连接(通过 USB)?

如何检测 Topaz 设备是否已连接?

我的 Topaz 是:T-LBK462-HSB-R (USB) 我使用的是:SigWeb SDK (SigWebTablet.js)

我应该调用 SigWebTablet.js 库的哪个方法来检查设备是否已连接?

正如他们在官方演示中所说:http : //www.sigplusweb.com/sigwebtablet_demo.htm

如果我想使用 Topaz,我需要调用此代码:

   var ctx = document.getElementById('cnv').getContext('2d');         
   SetDisplayXSize( 500 );
   SetDisplayYSize( 100 );
   SetTabletState(0, tmr);
   SetJustifyMode(0);
   ClearTablet();
   if(tmr == null)
   {
      tmr = SetTabletState(1, ctx, 50);
   }
   else
   {
      SetTabletState(0, tmr);
      tmr = null;
      tmr = SetTabletState(1, ctx, 50);
   }
Run Code Online (Sandbox Code Playgroud)

但是这段代码即使没有连接 Topaz 设备也能成功执行,这基本上意味着它只需要运行 Topaz 本地服务器。但这对我来说还不够,我需要知道设备已连接。

javascript usb topaz-signatures

2
推荐指数
1
解决办法
1002
查看次数

USB 描述符的 ID_SERIAL 和 ID_SERIAL_SHORT udev 属性有什么区别

ID_SERIALID_SERIAL_SHORTudev 属性有什么区别。udev 如何为这 2 个 udev 属性 ID 分配值。我正在编写 USB 驱动程序,我正在使用udev_device_get_property_value()方法来获取 udev 属性的值。在这种情况下,我可以看到上面提到的 2 个类似的属性。我找不到这些信息的解释文件。

c usb udev linux-device-driver

2
推荐指数
1
解决办法
1550
查看次数

Mtp 在 Ubuntu 16.04 中未检测到 Android

Ubuntu 没有显示我的 android 设备。

我尝试安装 libmtp* mtp* 并重新安装它并且还尝试将设备信息放在 udev.rules 的相关文件中

usb android mtp

2
推荐指数
1
解决办法
1万
查看次数

定义了哪个库 GUID_DEVINTERFACE_USB_HUB

此问题涉及:如何使用 Windows API 重置 USB 设备? 我使用的是 Visual Studio 2015,项目目标平台是Win10.0.14393.0.

我正在尝试使用用户空间解决方案通过调用CM_Reenumerate_DevInst().

我遇到的问题是打电话时
SetupDiGetClassDevs(&GUID_DEVINTERFACE_USB_HUB, NULL, NULL, DIGCF_DEVICEINTERFACE);

我收到此编译错误。

1>UsbDevices.obj : error LNK2001: unresolved external symbol GUID_DEVINTERFACE_USB_HUB
1>C:\DEV\Experiment\MFCApplication1\x64\Debug\MFCApplication1.exe : fatal error LNK1120: 1 unresolved externals
Run Code Online (Sandbox Code Playgroud)

我找不到定义此 GUID 的库。

usb winapi visual-studio-2015

2
推荐指数
1
解决办法
800
查看次数

Android 10 中没有设备过滤器的 USB_DEVICE_ATTACHED

我正在开发一个 Android 应用程序,它在清单中为 BroadcastReceiver 注册了四个意图过滤器。这些是:

android.hardware.usb.action.USB_DEVICE_ATTACHED
android.hardware.usb.action.USB_DEVICE_DETACHED
android.hardware.usb.action.USB_ACCESSORY_ATTACHED
android.hardware.usb.action.USB_ACCESSORY_DETACHED
Run Code Online (Sandbox Code Playgroud)

请注意,目前没有device-filter与任何这些意图一起注册的元数据。当我在 Android 9(特别是在三星 Galaxy S9 上)启动这个应用程序时,任何和所有 USB 设备都被注册,并且onReceive在 BroadcastReceiver 中成功调用了该方法。但是,在 Android 10(在 Galaxy S20 上)中运行的相同代码不会调用onReceive. 我意识到设备过滤器被列为开发人员文档一项要求,但 Android 9 毫无疑问地接受了它。

在理想的世界中,我不想使用设备过滤器,因为我的应用程序通过用户配置包含一个动态设备过滤选项,他们在其中输入应用程序要使用的 PID/VID 组合。

我的问题是:有没有办法通过清单为 Android 10 应用程序提供“允许所有”设备过滤器?设备过滤器行为的这种变化一般是 Android 的预期功能,还是三星的实现?

如果它影响任何事情,这个应用程序是一个设备管理员。

usb android broadcastreceiver

2
推荐指数
1
解决办法
174
查看次数