您的位置:首页 > 其它

wince下屏幕校准和修改介绍

2014-10-25 14:17 162 查看
以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注册表,以后校屏的数据将不能被保存。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: