网站网络营销推广商城,网站浮动广告怎么做,温州建设,著名的wordpress主题一、问题描述 拿到一款新TP#xff0c;适配好驱动后#xff0c;触摸屏幕发现触摸点位置和Android报点位置不一致#xff0c;如上滑变成下滑或者左滑右滑等
二、问题分析
1.加载TP驱动#xff0c;且驱动能正确上报数据
2.使用命令打开触摸报点
settings put system show…一、问题描述 拿到一款新TP适配好驱动后触摸屏幕发现触摸点位置和Android报点位置不一致如上滑变成下滑或者左滑右滑等
二、问题分析
1.加载TP驱动且驱动能正确上报数据
2.使用命令打开触摸报点
settings put system show_touches 1
settings put system pointer_location 13.触摸屏幕 出现这种问题可能是由于TP IC里的配置或者TP贴片方向和屏幕方向不一致等情况导致的这种情况下我们需要对TP做一个方向的适配 三、解决办法
1.dts配置
dts中的方向配置如下
ctp {compatible allwinner,goodix;reg 0x5d;device_type ctp;ctp_screen_max_x 0x4B0;ctp_screen_max_y 0x780;ctp_revert_x_flag 0x1;ctp_revert_y_flag 0x1;ctp_exchange_x_y_flag 0x0;
};其中
ctp_screen_max_xTP上报最大X值ctp_screen_max_yTP上报最大Y值ctp_revert_x_flag是否需要翻转x使x-xctp_revert_y_flag是否需要翻转y使y-yctp_exchange_x_y_flag是否需要交换xy主要这个会同步的交换max_x和max_y
2.在代码中获取配置并做逻辑操作
1.获取dts配置的参考方法
ret of_property_read_u32(np, ctp_screen_max_x, data-screen_max_x);
ret of_property_read_u32(np, ctp_screen_max_y, data-screen_max_y);
ret of_property_read_u32(np, ctp_revert_x_flag, data-revert_x_flag);
ret of_property_read_u32(np, ctp_revert_y_flag, data-revert_y_flag);
ret of_property_read_u32(np, ctp_exchange_x_y_flag, data-exchange_x_y_flag);其中of_property_read_u32是内核标准函数np是设备节点data是存放dts数据的结构体
2.使用配置 1使用变量保存配置,congfig_info为刚才获取的dts配置信息
static int screen_max_x;
static int screen_max_y;
static int revert_x_flag;
static int revert_y_flag;
static int exchange_x_y_flag;screen_max_x config_info.screen_max_x;
screen_max_y config_info.screen_max_y;
revert_x_flag config_info.revert_x_flag;
revert_y_flag config_info.revert_y_flag;
exchange_x_y_flag config_info.exchange_x_y_flag;if(exchange_x_y_flag 1)swap(screen_max_x, screen_max_y);2使用配置 在上报xy报点的位置前参考使用如下命令
if (exchange_x_y_flag 1)swap(x, y);if (revert_x_flag 1)x screen_max_x - x;if (revert_y_flag 1)y screen_max_y - y;
3.进行方向适配
1、进行方向适配前首先要明确xy分别对应哪条边通常而言x为屏幕0度角方向的边通过该命令获取0度角方向。 旋转屏幕同时输入如下命令当获取到mCurrentOrientation0时则说明该方向对应的底边为x另一边为y
dumpsys display | grep mCurrentOrientation2、以800x1280的屏幕为例先设置max_x和max_y都为1280;并将revert_xrevert_y和exchange_xy设置为0
3、观察屏幕触摸方向对TP进行左右滑动和上下滑动看是否跟手滑动的方向一致
适配步骤 1如左滑变成了上下滑那说明需要交换xy设置exchange_xy为1继续观察 2如左滑变成了右滑则说明可能需要revert_x设置revert_x为1继续观察 3如上滑变成了下滑则说明可能需要revert_y设置revert_y为1继续观察 4部分情况下23可能需要互换即左滑变右滑需要设置revert_y这种灵活变通即可 5通过1-4步骤后可得到对应的xy配置此时触摸滑动时应该跟手滑动的方向一致再来调试max_x和max_y 6尝试设置max_x1280和max_y800观察如果不行则交换一下xy的值此时一般来说触摸基本就可以调试完成了 总结先调试exchange_xy再调试revert值最后再来调试max值。