2016-11-16 75 views
-1

我试图让LIRC在我的代码中正常工作。我创建了一些测试代码,但我收到此错误:Raspberry pi上的LIRC尚未初始化错误

Traceback (most recent call last): 
    File "ir_remote.py", line 5, in <module> 
    config = lirc.nextcode() 
    File "lirc.pyx", line 183, in lirc.nextcode (lirc/lirc.c:2983) 
    File "lirc.pyx", line 217, in lirc._is_init_or_error (lirc/lirc.c:3472) 
lirc.InitError: lirc has not been initialised. 

我创建的代码:

#!/usr/bin/python 
import lirc, time 
import RPi.GPIO as GPIO 

config = lirc.nextcode() 

sockid = lirc.init(blocking = False) 

if config == 'KEY_DOWN': 
    print 'Red OFF' 
if config == 'KEY_UP': 
    print 'Light Red' 
if config == 'KEY_LEFT': 
    print 'Red' 
if config == 'KEY_RIGHT': 
    print 'Green OFF' 
if config == 'KEY_OK': 
    print 'Light Green' 
if config == 'KEY_1': 
    print 'Green' 
if config == 'KEY_2': 
    print 'Blue OFF' 
if config == 'KEY_3': 
    print 'Light Blue' 
if config == 'KEY_4': 
    print 'BLUE' 
+3

我对“lirc”一无所知,但看着你的代码和错误消息,它像你需要调用'lirc.init',然后才能调用'lirc.nextcode'。 – larsks

+0

也许下一次你会在跳到SO之前阅读错误信息? – barny

回答

1

您需要调换左右这两条线:

config = lirc.nextcode() 
sockid = lirc.init(blocking = False) 

因为在开始使用之前需要初始化lirc
应该是这样的:

sockid = lirc.init(blocking = False) 
config = lirc.nextcode() 

至少根据自己的所有文件,只注意到@larsks说过同样的话,我得说了。我从来没有使用过这个库,但是检查了documentation和错误消息,这是一个合理的假设。

相关问题