System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于WindML的触摸屏驱动设计及触摸校准实现的方法技术_技高网

一种基于WindML的触摸屏驱动设计及触摸校准实现的方法技术

技术编号:41527873 阅读:4 留言:0更新日期:2024-06-03 23:02
本发明专利技术涉及一种基于WindML实现触摸屏驱动设计及触摸校准实现的方法,属于计算机软件领域。本发明专利技术创建驱动头文件和源文件,实现打开函数驱动,实现控制函数驱动,实现驱动关闭函数,创建一个驱动配置数据库,进而实现触摸屏驱动使用方法。本发明专利技术实现的触摸屏驱动扩展了用户对输入设备的使用,封装成的触摸屏驱动组件也丰富了WindML库的种类,为用户直接使用提供了便利。

【技术实现步骤摘要】

本专利技术属于计算机软件领域,具体涉及一种基于windml的触摸屏驱动设计及触摸校准实现的方法。


技术介绍

1、鼠标(ps2鼠标、usb鼠标)、键盘、触摸屏均属于主控计算机的输入设备,其中ps2鼠标、usb鼠标、触摸屏设备等都是指针设备。

2、如图1所示,基于串口的摸屏控制器通过标准rs232串口将触摸屏与主控设备相连。触摸屏控制器将触摸点坐标信息通过rs232串口传递给主控设备,主控设备经触摸屏驱动解析、处理后实现触摸点显示可控等功能。

3、windml是vxworks、天熠等操作系统下的多媒体库(wind media library)。它支持多媒体程序运行在嵌入式系统中,提供基本图形、视频和音频技术,以及提供一个通用设备驱动程序架构。

4、windml包含两个组件,软件开发包(sdk)和驱动程序开发包(ddk)。sdk组件用来开发应用程序,它提供了一个全面的api接口,包括图形、输入处理、多媒体、字体和内存管理。ddk组件用来实现驱动程序,它提供完整的驱动程序参考集,以使开发者能迅速实现驱动开发。

5、基于windml的输入设备驱动由两层驱动构成,一层是底层输入驱动(low-level),用于处理硬件设备控制器,一层是顶层输入驱动(high-level),用于解析来自硬件设备的原始数据。

6、windml底层输入驱动(low-level)是一种i/o驱动,常常配置到系统内核。初始化时,该驱动挂接到操作系统的io系统上,它的功能包括初始化设备控制器和输入设备;处理由设备控制器产生的中断;接收来自输入设备的原始数据,通过io系统传递给high-level输入驱动;接收来自high-level输入驱动的命令并进行响应。

7、本专利技术使用的电阻触摸屏通过串口接入io系统,rs232串口为标准串口,vxworks或天熠等操作系统自带该设备驱动,对应的设备名称为/tyco/1。

8、windml顶层输入驱动(high-level)主要功能是从low-level输入驱动中接收原始数据,处理数据,再将其打包成输入事件消息,最后将消息发送到输入消息队列中。

9、windml提供了与应用层传递信息的可扩展机制。输入设备(如触摸屏)通过输入服务(input service)将输入信息(坐标)传递给应用层。输入设备、应用层、以及窗口均通过消息方式实现信息交互。

10、在应用层中,每一个显示端均有输入服务对应。所有的输入服务通过输入任务控制high-level输入驱动。该任务通过select()函数被挂起,用来等待来自low-level输入驱动的数据,当输入设备产生数据后,该任务被底层驱动(low-level)唤醒后,输入服务(input service)借助high-level驱动处理来自输入设备的原始数据。high-level输入驱动从low-level输入驱动上获取触摸屏原始数据,将原始数据封装成windml指针类数据(ugl_pointer_data)后,再将指针类数据打包成windml消息(ugl_msg_data),最后通过windml标准接口uglinputmsgpost()函数将其放入消息队列中。应用层通过uglinputmsgget()函数从缺省的输入队列中获取输入消息。获取消息后,通过uglinputcbadd()函数注册输入回调函数,实现消息响应,如鼠标指针移动、鼠标左击。

11、目前,windml库中没有基于串口触摸屏的驱动以及驱动校准算法,本专利技术就是在windml的high-level输入驱动中补充这方面的空白。


技术实现思路

1、(一)要解决的技术问题

2、本专利技术要解决的技术问题是如何提供一种基于windml的触摸屏驱动设计及触摸校准实现的方法,以解决windml库中没有基于串口触摸屏的驱动以及驱动校准算法的问题。

3、(二)技术方案

4、为了解决上述技术问题,本专利技术提出一种基于windml的触摸屏驱动设计及触摸校准实现的方法,该方法包括如下步骤:

5、s1、创建驱动头文件和源文件

6、设计触摸屏驱动源文件uglpmts.c,将其放置在第一指定路径下;在该源文件中定义触摸屏驱动以及相应函数实现,其中定义的uglpmtsptrdriver是windml顶层输入驱动high-level输入驱动入口函数,驱动函数包括:设备打开函数uglpmtsptropen、关闭函数uglpmtsptrclose、控制函数uglpmtsptrcontrol;

7、源程序对应的头文件uglpmts.h放置在第二指定路径下,该头文件定义了pm触摸屏指针设备数据结构ugl_pm_ts_ptr_device以及函数实现声明;

8、s2、实现打开函数驱动

9、使用的电阻触摸屏通过串口接入io系统,rs232串口为标准串口,操作系统自带该设备驱动,对应的设备名称为/tyco/1,因此底层输入驱动low-level对应的驱动就是系统自带的串口驱动;

10、实现打开触摸屏设备的原理是:通过底层输入驱动low-level中io接口open()函数打开触摸屏控制器rs232串口;使用ioctl()函数设置串口波特率;使用read()从触摸屏控制器的nvram中读取触摸校准参数;

11、在应用层,通过调用windml标准函数ugl_input_dev_iduglinputdevopen(ugl_char*pname,ugl_input_drv*pdriver),实现对uglpmtsptropen驱动函数调用;uglinputdevopen函数返回触摸屏输入设备id号,应用层通过将输入设备id作为参数,通过调用ugl_statusuglinputdevadd(ugl_input_service_idinputserviceid,ugl_input_dev_idinputdeviceid)函数实现了输入设备与输入服务绑定;

12、s3、实现控制函数驱动

13、实现原理:根据上层用户发送的请求类型分别执行控制功能,包括:读取及处理原始数据、校准触摸屏、获取指针设备类型;

14、在应用层,使用显示端对应的输入服务input server找到关联的输入设备id,然后将输入设备id作为参数,通过调用uglinputdevcontrol(inputdevid,requesttype,argument)函数,实现对uglpmtsptrcontrol驱动函数调用;

15、s4、实现驱动关闭函数

16、实现原理:通过low-level输入驱动接口close()函数关闭触摸屏控制器rs232串口;释放内存、析构相关参数;

17、在应用层,使用显示端对应的输入服务input server找到关联的输入设备id,然后将输入设备id作为参数,通过调用ugl_status u本文档来自技高网...

【技术保护点】

1.一种基于WindML的触摸屏驱动设计及触摸校准实现的方法,其特征在于,该方法包括如下步骤:

2.如权利要求1所述的基于WindML的触摸屏驱动设计及触摸校准实现的方法,其特征在于,头文件中,触摸屏指针设备数据结构定义了输入设备描述符、触摸屏分辨率大小、设置校准点个数、标准校准点坐标和校准系数,校准系数包括:A、B、C、H、E、F;函数实现声明包括打开触摸屏设备功能函数uglPMTsPtrOpen,控制触摸屏功能函数uglPMTsPtrControl,关闭触摸屏设备功能函数uglPMTsPtrClose。

3.如权利要求2所述的基于WindML的触摸屏驱动设计及触摸校准实现的方法,其特征在于,所述S3中,请求类型为ICR_READ功能用于获取及解析原始数据,

4.如权利要求3所述的基于WindML的触摸屏驱动设计及触摸校准实现的方法,其特征在于,所述S3中,校准触摸屏时,用户请求类型为:

5.如权利要求4所述的基于WindML的触摸屏驱动设计及触摸校准实现的方法,其特征在于,校准触摸屏的具体过程为:

6.如权利要求5所述的基于WindML的触摸屏驱动设计及触摸校准实现的方法,其特征在于,n=5,即采用5个点进行校准。

7.如权利要求6所述的基于WindML的触摸屏驱动设计及触摸校准实现的方法,其特征在于,所述S5包括:WindML配置是由一系列数据库控制的,这些数据库文件定义驱动特征,它们位于第三指定目录下;在Wind River Workbench工程中的config.windml配置工具会读取这些数据库文件加载相应的信息,用户通过下拉列表信息选择配置对象。

8.如权利要求7所述的基于WindML的触摸屏驱动设计及触摸校准实现的方法,其特征在于,所述S5具体包括:在第三指定目录下创建windML_PTR_DEVICE_PM_TS.wrmdb文件,用于配置PM触摸屏驱动。

9.如权利要求8所述的基于WindML的触摸屏驱动设计及触摸校准实现的方法,其特征在于,配置内容包括:设备名称、设备驱动支持的处理器类型、编译该驱动时处理器字节的顺序:大端或小端、是否支持RTPs、指针设备必须定义的宏定义、条件宏定义、对应的high-level输入驱动入口、定义缺省的IO设备名称、对应的low-level输入驱动入口及参数。

10.如权利要求9所述的基于WindML的触摸屏驱动设计及触摸校准实现的方法,其特征在于,所述S6中,在Wind River Workbench开发环境下,建立基于Media Libray组件的配置工程“VxWorks Downloadable Kernel Module Project”;在生成的工程中,在配置信息文件config.windml中对输入设备进行配置,配置为触摸屏驱动,配置内容如下:Device=PMTouchscreen Pointer;Device Name=/tyCo/1;这些参数的选择均来自于windML_PTR_DEVICE_PM_TS.wrmdb文件。

...

【技术特征摘要】

1.一种基于windml的触摸屏驱动设计及触摸校准实现的方法,其特征在于,该方法包括如下步骤:

2.如权利要求1所述的基于windml的触摸屏驱动设计及触摸校准实现的方法,其特征在于,头文件中,触摸屏指针设备数据结构定义了输入设备描述符、触摸屏分辨率大小、设置校准点个数、标准校准点坐标和校准系数,校准系数包括:a、b、c、h、e、f;函数实现声明包括打开触摸屏设备功能函数uglpmtsptropen,控制触摸屏功能函数uglpmtsptrcontrol,关闭触摸屏设备功能函数uglpmtsptrclose。

3.如权利要求2所述的基于windml的触摸屏驱动设计及触摸校准实现的方法,其特征在于,所述s3中,请求类型为icr_read功能用于获取及解析原始数据,

4.如权利要求3所述的基于windml的触摸屏驱动设计及触摸校准实现的方法,其特征在于,所述s3中,校准触摸屏时,用户请求类型为:

5.如权利要求4所述的基于windml的触摸屏驱动设计及触摸校准实现的方法,其特征在于,校准触摸屏的具体过程为:

6.如权利要求5所述的基于windml的触摸屏驱动设计及触摸校准实现的方法,其特征在于,n=5,即采用5个点进行校准。

7.如权利要求6所述的基于windml的触摸屏驱动设计及触摸校准实现的方法,其特征在于,所述s5包括:windml配置是由一系列数据库控制的,这些数据库文件定义驱动特征,它们位于第三指定目录下;在wind rive...

【专利技术属性】
技术研发人员:刘丽霞陈婧张宝亮孙昆
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1