wince下屏幕校准和修改介绍

news/2024/10/22 2:45:47/

以6410开发板为例。


一、确定X,Y是否镜像:在屏幕上任意拖动出一个矩形虚线框,然后随意上下左右拖动,这时看虚框是否根随触摸笔移动,如果虚线框能跟随触摸笔动,说明X+,X-,Y+,Y-四线极性是接对了。
X,Y坐标的算方法如下:
        posX = (MAX_X-*x)*iScreenWidth/(MAX_X-MIN_X);
        posY = (*y-MIN_Y)*iScreenHeight/(MAX_Y-MIN_Y);
如果触摸笔向上而虚框向下移动,说明Y+,跟Y-接反了,同样如果触摸笔向左而虚框向右移动,说明X+,跟X-接反了。对于这个情况软件可作如下处理,在上面的算法之前,加入如下的算式:
   *x = (MIN_X-MAX_X)*(*x-MIN_X)/(MAX_X - MIN_X)+MAX_X;X接反的时候加
    *y = (MIN_Y-MAX_Y)*(*y-MIN_Y)/(MAX_Y - MIN_Y)+MAX_Y;Y接反的时候加
这四个算式可以组合出四种情况,这要看你具体是哪一种情况了。


二、确定触摸屏的边界值:

在程序里面应该有个这样的定义,这个就是设触摸屏的边界。
#define MAX_X   3940//3940
#define MIN_X          93
#define MAX_Y         3860//3870ww
#define MIN_Y          200 //


还是在屏幕上用触摸笔拖出一个虚线框,分两类情况:
(1)确定最大值:从左上到右下拖动,然后按住不要松,这时看虚线框跟触摸笔的位置,(假设虚线框的右下顶点坐标为(X1,Y1)触摸笔的坐标为(X,Y)),如果X > X1,Y > Y1 说明MAX_X,MAX_Y过大了。要减小MAX_X,MAX_Y。这里要多试几次。(如图一)


(2)确定最小值:从右下到左上拖动,然后按住不要松,这时看虚线框跟触摸笔的位置,(假设虚线框的右下顶点坐标为(X1,Y1)触摸笔的坐标为(X,Y)),如果X < X1,Y ><Y1 说明MIN_X,MIN_Y小了。要增大MIN_X,MIN_Y。这里要多试几次。(如图一)

如下图所示:

三、去掉或改变TP校屏上的字:

找到PUBLIC/COMMON/OAK/DRIVERS/CALIBRUI/calibrui.cpp
TouchCalibrateDrawScreenText()函数里面的的ExtTextOut()注释掉。     
//        Draw this line.
                ExtTextOut(
                                  hdc,
                                  xText, yText,
                                  NULL, NULL,         //  rectangle options
                                  buf, cChars,
                                  NULL);
                }
注释掉。
或者将
IdStringBase = 0;这里的取值是一个资源文件的ID。可以自己定义的。

注意如果将TouchCalibrateDrawScreenText()整个函数都注掉的话,屏幕就没有白色了,十字架直接显示在背景图片上,这里我没有试过自已加背景图片,不过有了这个思路,应该实现起来不难。


四、让触摸屏校屏程序校完后自动退出。

有些人觉得每次校完屏后还要点一下屏然后再退出太麻烦,想校完后直接退出。可以在TouchCalibrateUI_WaitForConfirmation()函数里面做修改,可以在函数开头加上: TouchCalibrateUI_Done(TCS_ACCEPTED);意思就是不需要做等待,直接接受校屏参数。

五、保存校屏注册表值:

校屏完成之后,其计算出来的值可以通过注册表查看到,

通过Microsoft ActiveSync工具连接目标硬件平台,然后在PB的tools菜单中点击“Remote Registry Editor”以运行远程注册表编辑工具查看WinCE的注册表内容。
在注册表编辑器中打开[HKEY_LOCAL_MACHINE/Hardware/DeviceMap/Touch]键,就可以看到触摸屏的校验数值,

“CalibrationData”键值就是触摸屏的校验值,将这个值复制一下,然后打开PB的平台的project.reg 文件,加入如下的触摸屏注册信息,其中"CalibrationData"=之后的值就是上面我们复制的触摸屏校验值。 [HKEY_LOCAL_MACHINE/Hardware/DeviceMap/Touch]
     "CalibrationData"="1484,1168 584,536 568,1820 2356,1812 2356,488"

添加完毕后,保存, 重新编译平台,生成新的映像文件,运行映像,就可以看到触摸屏校验信息已经在注册表里了。

另外要加一点,如果你的系统不是HIVE注册表,以后校屏的数据将不能被保存。



http://www.ppmy.cn/news/430951.html

相关文章

Android屏幕校准的apk应用实现

紧跟着上一篇博文&#xff0c;在android内核中实现屏幕校准&#xff0c;这一篇博文主要做的便是将可执行文件ts_calibrate移植成android的apk应用。现在我们已经知道&#xff0c;ts_calibrate就是取了触摸屏 5个点的坐标&#xff0c;然后与对应的显示屏的点坐标联立方程&#x…

Debian/ubuntu 显示屏幕校准

//转载&#xff1a; https://www.cnblogs.com/yongpan/p/7846531.html ubuntu多显示器单触摸屏校准 多显示器单触摸屏屏幕校准 https://www.freedesktop.org/wiki/Software/xinput_calibrator/ 0、触摸屏重定向 sudo xinput map-to-output 13 DP1 #将触摸屏映射到指定的显…

Android系统 屏幕最低背光亮度值/最高背光亮度值 调试

通过 adb 确认合适的 最低背光亮度值/最高背光亮度值 参数 , 并使用万用表量测 背光IC的反馈电阻输出电压确认&#xff0c;具体计算方式根据 背光IC 贴的反馈电阻来计算。&#xff08;可以找硬件协助 一般是 1.35 / 1.1&#xff09; adb shell Dslide_1020Pro:/ $ su Dslide_10…

iqoo手机计算机背景变白,更精准的色彩显示,出厂屏幕校准的手机大合集

如今&#xff0c;手机的屏幕越来越得到重视&#xff0c;不仅仅提现在屏幕刷新率方面&#xff0c;人们对于屏幕的色准的需求也不断提高。手机厂商也看到了这方面的需求&#xff0c;在一些产品出厂时&#xff0c;就做了色准调校。不过这样的产品也有不少呢&#xff0c;不妨看看下…

linux系统屏幕触摸校准

1、安装工具 xinput-calibrator工具&#xff1a;sudo apt-get install xinput-calibrator xinput工具&#xff1a;sudo apt-get insatll xinput 2、校准实例 &#xff08;1&#xff09;查看触摸设备id&#xff1a;xinput_calibrator --list 上面可知&#xff1a;device nam…

给android增加屏幕校准

android原始版本里是没有屏幕校准功能的&#xff0c;tp坐标到lcd坐标是完全按照线性关系来转换的。例如&#xff0c;tp坐标是(Xt ,Yt )分辨率是&#xff08;Wt x Ht &#xff09;&#xff0c;lcd坐标是(X,Y)&#xff0c;分辨率是(W x H)&#xff0c;则 X(Xt *W)/Wt&#xff0c;…

Android屏幕校准

android原始版本里是没有屏幕校准功能的&#xff0c;tp坐标到lcd坐标是完全按照线性关系来转换的。例如&#xff0c;tp坐标是(Xt ,Yt )分辨率是&#xff08;Wt x Ht &#xff09;&#xff0c;lcd坐标是(X,Y)&#xff0c;分辨率是(W x H)&#xff0c;则 X(Xt *W)/Wt&#xff0c;…

6.Sentincl控制台 规则 实战

一、流控规则 流量控制(flow control),其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。一条限流规则主要由下面几个因素组成,我们可以组合这些元素来实现不同的限流效果: Fiel…