在Linux初始化脚本中使用STDIN

2024-09-29 17:17:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在开发一个需要读取键盘输入的嵌入式系统(实际上,它需要读取键盘模拟的条形码扫描仪)。在

我在硬件部分使用了SheevaPlug和Debian-Squeeze,我使用了一个非常基本的init脚本,它启动了一个负责执行业务逻辑的python程序。在

这个脚本需要读取键盘输入。在

我们开发的版本基本上都是功能齐全的电脑,有一个屏幕和其他东西,它运行得很好-但它不是真的可以接受-,但在这里我并不真正理解什么是错的(尽管我承认我有点期待它)。



所以我想知道当init启动时,如何将键盘连接到脚本的STDIN。在

或者,如果有人知道一个python库,可以让我完全绕过这个问题,直接从input/eventX读取,我会感兴趣。在



提前谢谢


Tags: 程序版本脚本硬件init系统debian逻辑
1条回答
网友
1楼 · 发布于 2024-09-29 17:17:24

请尝试以下操作(但请小心/dev/input/event0可以更改,以代替重新插入多个USB HID设备):

import struct

inputDevice = "/dev/input/event0" #keyboard on my system
inputEventFormat = 'iihhi'
inputEventSize = 16

file = open(inputDevice, "rb") # standard binary file input
event = file.read(inputEventSize)
while event:
  (time1, time2, type, code, value) = struct.unpack(inputEventFormat, event)
  print type,code,value
  event = file.read(inputEventSize)
file.close()


        def getUSBHIDs(self):
    s=getExecOutput('cat /proc/bus/input/devices')
    events=[]
    for i in range(len(s)):
        m=re.search('^.*Handlers=kbd.*event(?P<name>[0-9]+).*$',s[i])
        if m:
            events+=['/dev/event'+m.group('name')]
    return events

相关问题 更多 >

    热门问题