一.硬件连接
板卡配触摸框架构如下图:
二.数据流向
板卡配触摸框的数据流向,尽量做到高灵活性,并且简单清晰:
1)后台进程从触摸框获取原始数据并计算,计算的点报给 android 内核 input 系统, 实现 android 下多点触摸功能同时通过 USB1 将点的触摸数据回传给触摸框,触摸框 收到回传数据后判断当前状态是否需要通过 USB2 发送给 PC 主机。
2)USB2 开启及关闭:当信号源进行切换时,板卡将该消息通过 USB1 送给触摸框 告知触摸框是否需要开启或关断 USB2 触摸功能,触摸框接收到 USB1 指令后立即执 行对 USB2 的操作。
三.具体实现
驱动包加载 为了提升触摸框的计算能力,触摸框的核心算法打包给安卓板卡执行,此部分需 板卡厂商协助加载到安卓系统,每次开机自动启动该驱动文件并保持到关机后结 束,如触摸框 USB1 出现热插拔等操作可以再次连接。
1)驱动包主要包含驱动文件及触摸框不同尺寸的初始化配置文件。
驱动文件: hid_touchdrv
可执行文件 libhwx.so 可执行文件依赖的库文件
配置文件:
board_scan_new_**.bin 各尺寸初始化配置文件
params.txt 参数配置文件
driver_version.txt 驱动版本文件
补充说明:hid_touchdrv 需通过配置脚本开机启动。
2)将配置文件push到对应的文件夹里面。
adb connect 192.168.43.1 (此处 ip 是 android 共享热点的 IP 地址)
adb root
adb remount
adb shell
mkdir /vendor/iboardtouch/calibcfg/config/
adb push libhwx.so /vendor/lib/
adb push hid_touchdrv /vendor/bin/
adb push config/board_new_*.bin /vendor/iboardtouch/calibcfg/config/
adb push config/ params.txt /vendor/iboardtouch/calibcfg/config/
adb push config/ driver_version.txt /vendor/iboardtouch/calibcfg/config/
cd / vendor/bin
export LD_LIBRARY_PATH=/vendor/lib/
chmod 777 hid_touchdrv
./hid_touchdrv
执行完hid_touchdrv后,触摸屏就有了触摸。
在以往的集成经验中,可以看出触摸屏厂家提供的文件libhwx.so是触摸屏的触控算法库,hid_touchdrv是报点的触摸驱动或者报点的可执行程序,board_new_*.bin是各个尺寸的配置文件。