我的眼睛看世界

2013年11月19日

无意中发现了件神器

Filed under: 广告 — gcd0318 @ 01:52

随便乱翻pipy,结果一不留神就看到了这个东西:
https://pypi.python.org/pypi/evdev/0.4.1
可以读取/dev/input/event*的数据哇,这不就是我一直想要的功能嘛,虽然我自己也实现了一些,但是远没这么丰富
其实就如很多网友所说的,类似功能有很多实现方式,作者自己也列举了一些,但是比较发现,只有这个项目还是活的,至少作者一周以前还更新过(https://github.com/gvalkov/python-evdev),而不像有些其他的,都起码一两年甚至更久没有动过了
我当场就用它写了这么一段,放在cb2上跑起来,热水器的遥控器果然可以用。至于功能……呵呵大家都懂的
PRESS = 1
RELEASE = 0
import os, time
from evdev import InputDevice, ecodes
dev = InputDevice(‘/dev/input/event0’)
dev.capabilities()
t = [0, 0]
for event in dev.read_loop():
#    print(event)
if(255 == event.code):
if(PRESS == event.value):
t[PRESS] = event.timestamp()
elif(RELEASE == event.value):
t[RELEASE] = event.timestamp()
if(0 < t[RELEASE]*t[PRESS]):
if(2 < t[RELEASE]-t[PRESS]):
os.system(‘sudo shutdown -P 0’)
else:
t = [0, 0]
这里我用到了时间、按键值、动作等信息,而evdev所提供的还远不止这些,具体可以参考http://pythonhosted.org/evdev/index.html更详细的文档
改天吧,有空了好好翻翻它的代码,看看能不能搞定空调的遥控器……估计会很让人吃惊,且看它能否处理带格式的数据包信号,哈

Advertisements

发表评论 »

还没有评论。

RSS feed for comments on this post. TrackBack URI

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: