是否可以拥有多个STDIN流?

时间:2011-01-18 21:30:51

标签: ruby stream usb stdin barcode

我希望将两个USB条形码扫描仪连接到一台计算机,允许两个人同时扫描票据条形码。但是,如果两个人同时扫描,STDIN的输入将变得混乱。

有没有办法设置不同的STDIN流,每个流都绑定到一个特定的USB端口?控制台脚本是在Ruby中,尽管任何语言的指针都非常受欢迎。

3 个答案:

答案 0 :(得分:3)

要直接回答您的问题,就无法拥有多个STDIN。你最好的选择是从文件中读取数据(我认为你应该有一个字符设备或者这个扫描仪的东西)

答案 1 :(得分:3)

首先尝试连接2个USB条形码扫描仪,然后测试您是否害怕。我怀疑所有条形码数字都是在一次爆发中发送的,而其他类似键盘的设备的中断处于保持状态 - 因此您不会将两个条形码“隔行扫描”在一起。

不可能有一个以上的标准输入,而不是字面意思。其他选项将取决于您所使用的操作系统 - 在Linux上可能驱动程序为不同的扫描仪提供不同的字符设备。在Windows上我相信你必须学习说USB HID协议......如果你不必做任何这样的话,那就最好了。

答案 2 :(得分:0)

如果您使用Mutex进行同步,以便一次只能处理一次扫描,该怎么办?

这是一个关于在Ruby中使用线程的教程

http://ruby-doc.org/docs/ProgrammingRuby/html/tut_threads.html