问题标签 [peripherals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1173 浏览

android - 如何通过 USB 在 android 设备和在 windows 上运行的机器之间进行通信

我正在开发一个 android 应用程序,我正在尝试在 android 设备和在 windows 操作系统上运行的机器之间建立通信。我想使用 USB 将一些字节从 android 设备传输到该机器。

我相信在 Windows 操作系统上运行的机器总是充当主机。正确的 ?

我看到android有两个API

谁能建议我哪个 API 适合我?

0 投票
0 回答
199 浏览

android - 连接到在 android 设备上模拟的 ble 外围设备后未获得 rssi

我有两个 android 设备:设备 A 和设备 B。我在设备 A 上运行 BLE 外设模拟器。我在 BLE Central 模式下运行设备 B。我也有一个 BLE 信标。使用设备 BI 可以连接到 ble 信标并请求 rssi

但是,当我从设备 B(处于 BLE 中央模式)连接运行 BLE 外围模拟器的设备 A 时,我无法获得具有相同功能的正确 rssi。它给了0

0 投票
1 回答
317 浏览

android - 通过 Hikey 上的 PeripheralManagerService 访问 SPI

我正在尝试将数据发送到连接到 hikey960 平台的 SPI 的设备。Hikey 在普通的移动 Android 上运行。是否可以在像 Hikey 这样的开发平台上运行 androidthings api?

我用上面的代码构建了一个 apk。并且在安装缺少库时出现错误。显然这是由于在普通的 android sdk 中缺少 android 库。是否有任何解决方法或方法可以将数据写入 android 平台上的 spi 设备。

错误-

安装失败并显示消息 INSTALL_FAILED_MISSING_SHARED_LIBRARY: Package could not be installed in /data/app/com.example.androidthings.myproject-1: Package com.example.androidthings.myproject 需要不可用的共享库 com.google.android.things; 失败!。

0 投票
0 回答
763 浏览

ios - iOS 上的 BLE 外设设计

我正在开发一个需要 iPhone 作为外围设备的低功耗蓝牙 (BLE) 项目。我正在使用BLEManager来处理与CoreBluetooth相关的工作,其中包括对CentralPeripheral模式的良好实现。

问题

我对外围架构的设计模式和最佳实践一无所知。服务和特征的定义没有模式。看来我可以选择以下模式之一:

  • 定义多个服务,具有一个读/写/通知特性
  • 定义一项服务,具有一些读/写/通知特性
  • 定义一项服务,一项读取/写入/通知的特征,并从特征更新值中提取命令

我该选择哪一个?

执行

以下是我使用BLEManager实现的外围设备的一些部分:

0 投票
1 回答
657 浏览

usb - USB 外围设备的 bIntervals 是如何执行的?

我有一个发送报告描述符的全速 USB 设备,其相关端点描述符声明 abInterval为 8,即 8 毫秒。

当设备的驱动程序是 HidUsb 时,从 USB Descriptor Dumper 获取以下报告摘录:

在将驱动程序切换到 WinUSB 以便能够使用它之后,如果我使用 libusb 反复查询 IN 中断传输,并使用此脚本计算 2 个 libusb 调用之间和 libusb 调用期间花费的实际时间:

这是获得值的示例:

总和值始终保持非常接近 8 毫秒,除非在启动新的中断传输调用之前经过的时间太长(对于我的特定情况,阈值似乎在 6 到 6.5 之间),在这种情况下它等于 16。我有曾经看到一个“for”度量等于 18 毫秒,而总和恰好等于 24 毫秒。使用 URB 跟踪器(在我的例子中是 Microsoft 消息分析器),Complete URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER消息之间的时间差也是 8 毫秒的倍数 - 通常是 8 毫秒。简而言之,它们与“总和”度量相匹配。

因此,很明显“libusb 中断传输调用”的两次返回之间经过的时间是 8ms 的倍数,我假设这与 bInterval 值 8(FullSpeed -> *1ms -> 8ms)有关。

但现在我已经,我希望,清楚地说明我在说什么——在哪里强制执行?尽管进行了研究,但我找不到关于 bInterval 值如何影响事物的明确解释。

显然,这是由驱动程序强制执行的。

因此,是不是:

  • 驱动程序禁止请求触发,直到 8 毫秒过去。听起来对我来说是最合理的选择,但从我的 URB Trace 来看,Dispatch message事件在请求返回前几毫秒就被引发了。这意味着离开主机的实时数据对我/消息分析器是隐藏的。

  • 驱动程序对我和分析器隐藏响应,直到自上次响应以来经过 8 毫秒。

如果它确实由驱动程序处理,那么在交换消息的日志中向我显示的内容有一个谎言。响应应该在请求之后立即出现,但事实并非如此。因此,请求在显示的时间之后发送,或者响应早于显示的时间。

尊重 bInterval 的执行如何工作?

我的最终目标是忽略 bInterval 值并以超过 8ms 的频率轮询设备(我有充分的理由相信它可以每 2ms 轮询一次,并且 8ms 的使用周期是不可接受的),但首先我想知道它当前的限制是如何工作的,如果我正在寻找的是可能的,所以我可以理解接下来要学习什么(例如编写自定义 WinUSB 驱动程序)

0 投票
0 回答
21 浏览

windows - 是否在扫描连接的设备之前启动了所有 Windows 服务?

我正在编写由 Windows 服务托管的 WCF 服务,该服务负责检测正在连接/断开的 USB 设备。
现在,为了让它工作,我需要了解 Windows 启动顺序。Windows 是否总是在开始扫描连接的设备之前启动其所有服务(包括我的服务)?
我需要确保我的服务首先启动,否则在重新启动 Windows 后我检测到的设备列表将是错误的。

0 投票
0 回答
56 浏览

installation - 声音固件安装因内部原因失败

我正在使用 OpenSTM Workbench 尝试对 STM32F0 MCU 进行编程。我在 Windows 10 上使用 Eclipse(带有 OpenSTM 扩展)。在创建项目时尝试为我的变体安装外围库时,我不断收到以下错误:

声音固件安装因内部原因失败错误代码 = ERROR_DOWNLOAD_TASK_START_ISSUE

错误的完整屏幕截图:

错误信息

我尝试下载外围库的 zip 并将其放在固件目录中,但这不起作用。由于某种原因,其他固件(硬件抽象层)安装得很好。我尝试使用 zip 和提取文件复制它在文件夹中使用的格式,但无济于事。

我能做些什么来解决这个问题?

0 投票
3 回答
1789 浏览

macos - MacOS - 检测相机何时打开/关闭

我想根据我的 MBP 上的相机使用情况来自动化个人工作流程。

基本上我想知道是否有任何相机(内置或 USB)已打开或关闭,因此我可以运行我将创建的程序或脚本。

我认为如果我需要轮询相机状态没关系,但基于事件或回调的解决方案将是理想的

0 投票
1 回答
40 浏览

api - 如何将 stm32f3discovery API 传递给函数?

我正在尝试创建一个单独的文件/模块,该文件/模块具有可以处理 stm32f3discovery 的 LED 或陀螺仪的功能。我正在尝试将保存所有寄存器的 stm32f3 API 传递到一个函数中,然后在其中使用。

当我运行此代码时,我收到一条错误消息,提示“类型 '##' 上没有字段 '###'”。我怎样才能做到这一点?

main.rs

my_api.rs

错误

对于对任何寄存器的所有调用,它都有这个错误

0 投票
1 回答
46 浏览

usb - USB 设备控制器驱动程序规范

对于 USB 主机控制器,有 UHCI/OHCI/EHCI/XHCI 规范定义了如何对驱动程序进行编程。USB 设备控制器是否有等效规范?