手指触摸/鼠标左键单击在适用于 BeagleBoneBlack(操作系统 Debian)的 LCD 触摸屏 4DCape-70T 上停止工作

手指触摸/鼠标左键单击在适用于 BeagleBoneBlack(操作系统 Debian)的 LCD 触摸屏 4DCape-70T 上停止工作

我们用很多小猎犬骨黑色板(操作系统 Debian、内核3.8.13-bone50(2014 年 5 月 13 日))液晶触摸屏4DCape-70T

我的java应用程序在启动后运行操作系统 Debian 7.5。我在这个java应用程序中使用GPIO库libbulldog来控制UART端口(UART1_RXD == P9_26和UART4_RXD == P9_11)和I2C总线(I2C2_SCL == P9_19和I2C2_SDA == P9_20)+我使用GND、3,3V和5V引脚。我们的硬件控制单元通过 gpio 引脚连接到 i2c 总线。我必须将该 I2C 总线上的频率从 100kHz 降低到 25kHz(链接:http://randymxj.com/?p=538)。但我认为这个频率的降低不会影响用于 LCD 触摸屏触摸控制的另一个 I2C 总线的频率。

最后,这是我们的问题:

在带有 LCD 触摸屏的 BeagleBoneBoard 上,我们的客户可以模拟触摸屏的问题,当触摸停止工作。这种情况每天对他们来说会发生4-5次。通过tightVNC远程连接(teamviewer)到BeagleBoneBlack screen后我发现,鼠标左键单击也不起作用,但我可以移动光标,尽管我使用应用程序整理,它在 10 秒不活动后自动隐藏光标,但光标仍然可见。在我的 java 应用程序上,按钮之一仍处于按下状态。当我通过 putty (sudo pkill java) 停止我的 java 应用程序时,鼠标左键单击仍然不起作用但鼠标右键单击是可以的并且光标移动也可以。

我仍然没有找到任何可能的命令来通过一些linux命令重新启动此行为,我最终可以在我的java应用程序中运行这些命令,因为我知道最后一个操作是MOUSE_PRESSED(手指触摸)而没有MOUSE_RELEASED(手指伸出)。所以我想使用计时器来执行 MOUSE_PRESSED 操作,然后运行命令来重新启动触摸/鼠标控制器(如果可能的话)。现在我们的客户每次都必须重新启动该板并拔插电源线。

第二个更好的解决方案可以是一些不更新内核的linux编辑(我尝试了Debian 8.3,但我遇到了“跳跃光标”的问题(讨论:https://groups.google.com/forum/#!msg/beagleboard/SGCdVCqdh00/5GbeINiiHMAJ)并且问题还在于我的应用程序没有足够的可用磁盘空间,我们必须测试这个解决方案一个月)。

或者这可能是硬件问题,我无法用软件修复。我仍然不知道真正的问题在哪里。

预先感谢您的回答。

答案1

我们最终通过用两只手不断触摸触摸屏显示屏来重现这个问题。

debian@beaglebone:~$ xinput --list \u23a1 Virtual core pointer id=2 [master pointer (3)] \u239c \u21b3 Virtual core XTEST pointer id=4 [slave pointer (2)] \u239c \u21b3 HID 1241:1177 id=8 [slave pointer (2)] \u239c \u21b3 ti-tsc id=7 [slave pointer (2)] \u23a3 Virtual core keyboard id=3 [master keyboard (2)] \u21b3 Virtual core XTEST keyboard id=5 [slave keyboard (3)] \u21b3 tps65217_pwr_but id=6 [slave keyboard (3)] \u21b3 gpio_keys.13 id=10 [slave keyboard (3)]

注意:HID 1241:1177 - 连接的鼠标

ti-tsc - touschcreen(我认为)

当我从ightVNC 在lxterminal 中运行命令“xinput reattach 7 2”时,鼠标左键单击再次开始工作!但我仍然不知道触摸屏点击恢复的命令。 :(

相关内容