问题标签 [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.
model-view-controller - 使用 MVC,与自主外围设备的交互属于模型还是控制器?
使用带有观察者模式的 MVC,如果用户操作需要轮询设备(例如相机)以获取数据,应该在 Controller 中完成轮询并将结果从 Model 传递出去,还是应该向 Model 和模型本身执行轮询。
这个问题是我试图调和我正在阅读的所有内容,这些内容吹捧“瘦控制器”格言与我的直觉,即模型应该只对不获取数据的数据起作用。
(注意:这个问题可能是主观的。我不完全确定这个问题有一个唯一的答案。如果没有,请随时重新标记,因为我很想听听关于这个主题的意见。)
keyboard - 紧凑型键盘推荐?
对高质量紧凑型(无数字键盘)键盘有什么建议,最好是 50 美元或更少?
标准:
- 50美元或更少
- 最好使用笔记本电脑式的按键(剪刀式开关而不是橡胶膜 ala 便宜的桌面键盘)
- 安静(我是 Model-M 类型的人,但这对于嘈杂的键盘来说不是一个好环境)
- 不要太在意媒体密钥、USB 端口等
我喜欢 Apple 无线键盘,也听过其他人推荐的 Happy Hacking 键盘,但它们都超出了我们的预算。
有几个关于键盘的问题(检查“外围设备”标签),但据我所知,没有关于紧凑型键盘的问题。没有人比程序员对键盘的要求更高,所以虽然这是一个有点主观的问题,但我认为这是最好的提问场所。
c# - 如何从 C# 循环 USB 设备?
我想在某个事件触发后循环(模拟拔出并重新插入)USB 设备(调制解调器)。我在 codeproject 上找到了一个示例:
这使我可以通过其非易失性串行识别+弹出设备,但我需要它来回收,而不仅仅是弹出。
我读过这个:
我不明白。
这已在其他 USB 相关帖子中提到:
这与我的问题无关。
serial-port - 如何使用 telnet 或其他 windows 工具从 COM 端口预览数据
我想看看什么数据来自 COM 串行端口。是否可以使用 telnet 或其他 Windows 工具来完成?如果是这样,该怎么做?
network-protocols - 自定义网络协议中的无限超时或“快速失败”?
考虑自定义网络协议。此自定义协议可用于从基于 .NET 的中央工作站通过 LAN 控制机器人外围设备。(如果很重要,机器人正忙于在芯片生产环境中移动晶圆厂)。
- 对话中只有 2 方:.NET 站和机器人外围板
- 机器人端只能接收请求和发送响应
- .NET 端只能发起请求和接收响应
- 每个请求总是应该有一个响应
- 随后的请求可以一个接一个地紧跟,无需等待响应,但永远不会超过同时服务请求的固定限制(例如 5 个)
我与我的朋友(他拥有设计,我作为旁观者讨论过这件事)就所有好的细节和想法进行了详尽的讨论。在讨论结束时,我们对错过超时有强烈的分歧。我朋友的论点是双方的软件应该无限期地等待。我的论点是任何网络协议总是需要超时。我们根本无法达成一致。
我的一个理由是,如果发生任何故障,无论付出什么代价,你都应该“快速失败”,因为如果无论如何已经发生故障,恢复成本将继续与接收有关故障信息所花费的时间成正比增长。说在 LAN 上 1 分钟后,您绝对应该停止等待并发出一些警报。
但他的论点是,恢复应该包括修复失败的部分(在这种情况下是恢复网络连接),即使需要花费数小时才能确定网络丢失并修复,软件应该立即透明地继续运行重新连接 LAN 电缆后。
在这次讨论之前,我永远不会认真考虑永恒的协议。
哪一方的论点是正确的?“快速失败”还是“永不失败”?
编辑:失败的例子是通信丢失,通常由 TCP 层检测到。这部分也进行了讨论。如果 TCP 层返回错误,更高的自定义协议层将重试发送,并且没有关于它的参数。问题是:让下层继续尝试多久?
编辑接受的答案:答案比 2 个选择更复杂:“最常见的方法是永远不要放弃连接,直到实际尝试发送失败并确认连接已长期丢失。要计算连接已长期丢失,请使用心跳,但请保持损失年龄仅用于此确认,不用于立即警报“。
示例:当进行 telnet 会话时,您可以永远保持终端运行,并且您永远不知道在按 Enter 之间是否存在可被较低级别例程检测到的故障。
javascript - 如何从浏览器访问客户端 PC 上的设备
从浏览器访问客户端 PC 上的设备(条形码阅读器、扫描仪等)的各种方法有哪些?我意识到我的用户可能需要一个插件。这些设备可能具有特定于其设备的 API;如果可用,我想利用他们的 API(可能是 Java,可能是 C,可能是命令行)。
macos - 网页访问mac外围设备的最佳方法?
我正在构建一个基于 Web 的应用程序,它可以使用 ActiveX 控件在 Windows 环境中打印到热敏标签打印机(特定于运输标签),但我正在绞尽脑汁想找出最适合 OSX 的方法。显然 ActiveX 在 Mac 上不起作用...
关于从哪里开始寻找的任何想法?快闪电影?火狐插件?我的手指厌倦了谷歌搜索。
usb - 通过 USB 控制简单的继电器开关
我正在寻找通过 USB 连接到计算机的简单继电器开关来控制电源供电的灯。
继电器开关甚至不是 USB 设备,它只是一个简单的开关,需要 USB 电压才能将其打开。当电压降至阈值以下时,开关将关闭灯。
我的问题是我无法控制 USB 端口的电源输出。我很乐意在 Windows 或 Linux 上使用任何语言(但最好是 Java,因为我已经习惯了)。
java - 作为 USB 外围设备运行的 Windows 系统上的 Java 应用程序
有没有办法让 USB 设备充当主机,而基于 Windows 的系统上的应用程序充当外围设备?我们有一个作为主机的 USB 设备,我们需要它来连接到我们在基于 Windows 的系统上运行的应用程序。该设备使用 USB 2.0 On-the-go 规范,但它需要以主机角色运行。我们找到了一些库,但它们似乎只有在应用程序是主机并且设备是外围设备时才有效。任何信息或线索将不胜感激。
谢谢。
language-agnostic - 与外部(硬件)按钮通信
我想创建一个外部按钮以与我的一个应用程序一起使用。我的问题不集中在硬件本身(这就是我在这里问它的原因),而是在软件/通信方面。最好和最直接的方法是什么?良好的速度很重要,因此它不应与普通键盘的延迟相差太大。
我想到了以下解决方案:
- 让硬件成为一个修改过的键盘,或者至少它应该被系统识别为键盘。优点:不需要软件方面的额外工作。缺点:如果我也需要使用普通键盘怎么办?好吧,还不错,使用今天的 USB 键盘...
- 通过串口通讯。这将是最直接的方法,或者更好的是,就像 10 年前一样。现在大多数计算机甚至都没有,当然,周围有很多串行USB转换器。
- 让它成为一个标准的 USB 设备。我不喜欢这个想法,安装驱动程序,不得不关心不同的操作系统等。
你有什么更好的想法吗?