Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python脚本停止处理新启动的应用程序(Python evdev)_Python_Linux_Raspberry Pi_Evdev_Uinput - Fatal编程技术网

Python脚本停止处理新启动的应用程序(Python evdev)

Python脚本停止处理新启动的应用程序(Python evdev),python,linux,raspberry-pi,evdev,uinput,Python,Linux,Raspberry Pi,Evdev,Uinput,我已经挠头好几个星期了,我对Linux没有太多的了解,所以我很容易忽略了它 在我的系统中,我有一个arduino,它通过I2C向我的RaspberryPi发送数据。 PI查看数据,然后模拟系统中的按钮按下。 我正在使用python脚本和evdev来完成这项工作。 系统首先以吸引模式(游戏模拟器前端)引导,然后从那里引导所需的emulator+游戏 我首先在rc.local中用 sudo python myscript.py& 这使它运行起来。 它可以读取I2C没有任何问题,但evdev的东西没有

我已经挠头好几个星期了,我对Linux没有太多的了解,所以我很容易忽略了它

在我的系统中,我有一个arduino,它通过I2C向我的RaspberryPi发送数据。 PI查看数据,然后模拟系统中的按钮按下。 我正在使用python脚本和evdev来完成这项工作。 系统首先以吸引模式(游戏模拟器前端)引导,然后从那里引导所需的emulator+游戏

我首先在rc.local中用
sudo python myscript.py&
这使它运行起来。 它可以读取I2C没有任何问题,但evdev的东西没有按预期工作

覆盆子pi没有键盘插头。 在我的第一次测试中,我为测试目的插入了一个键盘,并且一切正常,python evdev发送的按钮在吸引模式和启动的仿真器中都被识别。 伟大的我想

这是工作代码: `

如果我忽略了什么或者遗漏了什么,我真的不知道如何解决这个问题

我试过: 并尝试在init.d中将我的脚本作为服务启动。 我监视键盘按下,以便在模拟器启动时看到我的脚本正在运行

编辑:

如果在使用第二个版本的脚本时运行
cat/proc/bus/input/devices
(在吸引模式下工作,但除非再次运行脚本,否则不会在启动的emulator中运行),我得到的结果如下:

I: Bus=0003 Vendor=0001 Product=0001 Version=0001
N: Name="ArcadeController"
P: Phys=
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=kbd event1
B: PROP=0
B: EV=3
B: KEY=1680 0 0 100008fe
I: Bus=0003 Vendor=0001 Product=0001 Version=0001
N: Name="py-evdev-uinput"
P: Phys=
S: Sysfs=/devices/virtual/input/input3
U: Uniq=
H: Handlers=sysrq kbd event3 rfkill
B: PROP=0
B: EV=3
B: KEY=ff ffffffff 0 0 3f 3007f 1000f 7fff0fff 7fe001f ffff000f 7ffffff ffffffff ffffffff 3fdff 7fff8fff ff03ff 1ffffff ffffff07 ffffffff ffffffff ffffffff ffefffff ffffffff fffffffe
我可以通过
cat/dev/input/event1
看到它正在接收我的输入

如果我运行的第一个版本只有当我有一个外置键盘时才能工作,我得到的是:

I: Bus=0003 Vendor=0001 Product=0001 Version=0001
N: Name="ArcadeController"
P: Phys=
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=kbd event1
B: PROP=0
B: EV=3
B: KEY=1680 0 0 100008fe
I: Bus=0003 Vendor=0001 Product=0001 Version=0001
N: Name="py-evdev-uinput"
P: Phys=
S: Sysfs=/devices/virtual/input/input3
U: Uniq=
H: Handlers=sysrq kbd event3 rfkill
B: PROP=0
B: EV=3
B: KEY=ff ffffffff 0 0 3f 3007f 1000f 7fff0fff 7fe001f ffff000f 7ffffff ffffffff ffffffff 3fdff 7fff8fff ff03ff 1ffffff ffffff07 ffffffff ffffffff ffffffff ffefffff ffffffff fffffffe
如果我在没有外部键盘的情况下运行相同的版本:

I: Bus=0003 Vendor=0001 Product=0001 Version=0001
N: Name="py-evdev-uinput"
P: Phys=
S: Sysfs=/devices/virtual/input/input1
U: Uniq=
H: Handlers=sysrq kbd event1 rfkill
B: PROP=0
B: EV=3
B: KEY=ff ffffffff 0 0 3f 3007f 1000f 7fff0fff 7fe001f ffff000f 7ffffff ffffffff ffffffff 3fdff 7fff8fff ff03ff 1ffffff ffffff07 ffffffff ffffffff ffffffff ffefffff ffffffff fffffffe