CN105807966B - 一种触摸屏事件的获取方法及装置 - Google Patents

一种触摸屏事件的获取方法及装置 Download PDF

Info

Publication number
CN105807966B
CN105807966B CN201410842741.4A CN201410842741A CN105807966B CN 105807966 B CN105807966 B CN 105807966B CN 201410842741 A CN201410842741 A CN 201410842741A CN 105807966 B CN105807966 B CN 105807966B
Authority
CN
China
Prior art keywords
touch screen
coordinate
file
data
event
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410842741.4A
Other languages
English (en)
Other versions
CN105807966A (zh
Inventor
魏治平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitevision Co Ltd
Original Assignee
Hitevision Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitevision Co Ltd filed Critical Hitevision Co Ltd
Priority to CN201410842741.4A priority Critical patent/CN105807966B/zh
Publication of CN105807966A publication Critical patent/CN105807966A/zh
Application granted granted Critical
Publication of CN105807966B publication Critical patent/CN105807966B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本发明公开了一种触摸屏事件的获取方法及装置,包括:获取与电子白板的触摸屏相对应的触摸屏设备文件;读取触摸屏设备文件,从触摸屏设备文件中获取触摸事件数据;根据触摸事件数据计算在触摸屏上显示的轨迹数据。本发明的触摸屏事件的获取方法及装置,能够直接从触摸屏设备文件中得到点击的事件,直接调用底层的帧缓存接口进行写屏操作,提升了运行效率并提升书写速度,解决了书写轨迹偏差的问题,提高了电子产品的用户感受度,提升了产品质量和竞争力。

Description

一种触摸屏事件的获取方法及装置
技术领域
本发明涉及电子白板技术领域,特别是指一种触摸屏事件的获取方法及装置。
背景技术
电子白板,例如交互式电子白板,具备书写、批注、绘画、多媒体娱乐、网络会议等功能,融入了人机交互、平板显示、多媒体信息处理和网络传输等多项技术,是信息化时代中办公、教学、图文互动演示的优选产品。目前,电子白板一般都具有一个大屏幕的交互式平板(例如为70英寸),电子白板的操作系统用于进行捕捉触点事件、绘制线条等操作。电子白板可以基于多种操作系统,例如linux、android等。以android框架实现为例,从一个触摸事件产生到应用程序收到此点的事件,中间需要经过很多步骤,从触摸屏驱动发出某个点的采样值到上层应用程序取得点坐标,大约需要15ms到18ms,事件比较长,使得目前的电子白板在使用中,主要表现在书写速度慢,书写轨迹有较大偏差等,极大影响了用户的使用感受度。
发明内容
有鉴于此,本发明的目的在于提出一种触摸屏事件的获取方法及装置,能够直接从触摸屏设备文件中得到点击的事件。
基于上述目的本发明提供一种触摸屏事件的获取方法,包括:获取与电子白板的触摸屏相对应的触摸屏设备文件;读取所述触摸屏设备文件,从所述触摸屏设备文件中获取触摸事件数据;根据所述触摸事件数据计算在所述触摸屏上显示的轨迹数据。
根据本发明的一个实施例,进一步的,启动触摸数据获取线程,所述触摸数据读取所述触摸屏设备文件,从所述触摸屏设备文件中获取触摸事件数据,并根据所述触摸事件数据计算在所述触摸屏上显示的轨迹数据;启动轨迹绘制线程,所述轨迹绘制线程调用帧缓冲区接口,基于所述轨迹数据在所述触摸屏上绘制移动轨迹。
根据本发明的一个实施例,进一步的,所述获取与电子白板的触摸屏相对应的触摸屏设备文件包括:打开系统中存储设备文件的目录,遍历此目录下所有的设备文件;依次打开设备文件,得到此设备文件的句柄并获取此设备文件的设备名称;判断此设备文件的设备名称是否与所述触摸屏设备的设备名称一致,如果是,则此设备文件为所述触摸屏设备文件,保存所述触摸屏设备文件的句柄。
根据本发明的一个实施例,进一步的,所述读取所述触摸屏设备文件、从所述触摸屏设备文件中获取触摸事件数据包括:周期性地读取所述触摸屏设备文件,获取所述触摸屏设备文件中的事件数据;其中,在所述触摸屏上操作的事件数据被存储在所述触摸屏设备文件中;解析所述事件数据,并将所述事件数据封装为所述触摸屏上的移动轨迹的坐标数据。
根据本发明的一个实施例,进一步的,所述解析所述事件数据、并将所述事件数据封装为在所述触摸屏上移动的轨迹的坐标数据包括:解析所述事件数据获取事件参数,所述事件参数包括:事件ID、操作类型、X坐标采样值、Y坐标采样值;将所述事件参数转换为移动轨迹的坐标数据,所述坐标数据包括:轨迹ID、触摸屏x坐标、触摸屏y坐标和当前操作状态;所述当前操作状态包括:上、下、移动;其中,当触摸屏的分辨率为在X轴方向上为W像素、在Y轴方向上为H像素时:
Figure GDA0002379546670000021
XL为触摸屏X坐标,XT为X坐标采样值,Xtmin、Xtmax分别是触摸屏的X轴方向上的坐标最小值和坐标最大值;
Figure GDA0002379546670000022
YL为触摸屏Y坐标,YT是Y坐标采样值,Ytmin、Ytmax分别是触摸屏的Y轴方向上的坐标最小值和坐标最大值。
基于上述目的本发明提供一种触摸屏事件的获取装置,包括:设备文件获取单元,用于获取与电子白板的触摸屏相对应的触摸屏设备文件;轨迹数据计算单元,用于读取所述触摸屏设备文件,从所述触摸屏设备文件中获取触摸事件数据;根据所述触摸事件数据计算在所述触摸屏上显示的轨迹数据。
根据本发明的一个实施例,进一步的,所述轨迹数据计算单元,用于启动触摸数据获取线程;其中,所述触摸数据读取所述触摸屏设备文件,从所述触摸屏设备文件中获取触摸事件数据,并根据所述触摸事件数据计算在所述触摸屏上显示的轨迹数据;所述轨迹绘制单元,用于启动轨迹绘制线程;其中,所述轨迹绘制线程调用帧缓冲区接口,基于所述轨迹数据在所述触摸屏上绘制移动轨迹。
根据本发明的一个实施例,进一步的,所述设备文件获取单元,还用于打开系统中存储设备文件的目录,遍历此目录下所有的设备文件;依次打开设备文件,得到此设备文件的句柄并获取此设备文件的设备名称;判断此设备文件的设备名称是否与所述触摸屏设备的设备名称一致,如果是,则此设备文件为所述触摸屏设备文件,保存所述触摸屏设备文件的句柄。
根据本发明的一个实施例,进一步的,所述轨迹数据计算单元,包括:事件获取子模块,用于周期性地读取所述触摸屏设备文件,获取所述触摸屏设备文件中的事件数据;其中,在所述触摸屏上操作的事件数据被存储在所述触摸屏设备文件中;坐标计算子模块,用于解析所述事件数据,并将所述事件数据封装为所述触摸屏上的移动轨迹的坐标数据。
根据本发明的一个实施例,进一步的,所述坐标计算子模块,还用于解析所述事件数据获取事件参数,所述事件参数包括:事件ID、操作类型、X坐标采样值、Y坐标采样值;将所述事件参数转换为移动轨迹的坐标数据,所述坐标数据包括:轨迹ID、触摸屏x坐标、触摸屏y坐标和当前操作状态;所述当前操作状态包括:上、下、移动;其中,当触摸屏的分辨率为在X轴方向上为W像素、在Y轴方向上为H像素时:
Figure GDA0002379546670000031
XL为触摸屏X坐标,XT为X坐标采样值,Xtmin、Xtmax分别是触摸屏的X轴方向上的坐标最小值和坐标最大值;
Figure GDA0002379546670000041
YL为触摸屏Y坐标,YT是Y坐标采样值,Ytmin、Ytmax分别是触摸屏的Y轴方向上的坐标最小值和坐标最大值。
从上面所述可以看出,本发明的触摸屏事件的获取方法及装置,能够直接从触摸屏设备文件中得到点击的事件,直接调用底层的帧缓存接口进行写屏操作,提升了运行效率并提升书写速度,解决了书写轨迹偏差的问题。
附图说明
图1为本发明的触摸屏事件的获取方法的一个实施例的流程图;
图2为Android系统架构图;
图3本发明的触摸屏事件的获取方法的并行处理示意图;
图4为本发明的触摸屏事件的获取装置的一个实施例的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
图1为本发明的触摸屏事件的获取方法的一个实施例的流程图,如图1所示:
步骤101,获取与电子白板的触摸屏相对应的触摸屏设备文件。
步骤102,读取触摸屏设备文件,从触摸屏设备文件中获取触摸事件数据。
步骤103,根据触摸事件数据计算在触摸屏上显示的轨迹数据。
上述实施利中的触摸屏事件的获取方法,能够比较好地解决了书写速度的问题,而且能够解决了书写轨迹偏差的问题。
目前,电子白板可以基于多种操作系统,例如linux、android等。以android框架实现为例,android系统架构如图2所示。采用这种Android系统架构架构,经过测试发现,从触摸屏touch panel驱动发出某个点的采样值到上层应用程序取得点坐标,大约需要15ms到18ms。在目前的电子白板的android系统架构,取触摸事件和屏幕绘图刷新都是在一个主线程完成的,这种架构必须串行完成所有工作,处理效率低下,造成书写速度缓慢。
在一个实施例中,将串行处理改为并行处理,提升效率,如下图3所示,启动触摸数据获取线程,触摸数据读取触摸屏设备文件,从触摸屏设备文件中获取触摸事件数据,并根据触摸事件数据计算在触摸屏上显示的轨迹数据;启动轨迹绘制线程,轨迹绘制线程调用帧缓冲区接口,基于轨迹数据在触摸屏上绘制移动轨迹。将获取触摸事件的功能和显示的功能分别由2个线程分别完成,能够提高触摸屏事件的获取速度。
在现有的android系统架构中,触摸事件处理层次如下表1所示,从一个触摸事件产生到应用程序收到此点的事件,中间需要经过很多步骤,这个过程就是导致延时15ms到18ms的原因。
Figure GDA0002379546670000051
表1-触摸事件处理层次表
在一个实施例中,直接从触摸屏驱动touch panel driver得到点击的事件。在android系统中,所有的设备都是被抽象为文件,可以通过jni的方式用C语言写一个直接读取触摸屏Touch Panel输入设备事件的程序,来从底层直接取触摸事件并按照相应的协议转换后将事件直接分发给上层应用使用。
在android系统中,普通应用程序是无法直接读取触摸屏Touch Panel抽象设备文件,需要首先将应用程序加system权限并在Android源码中编译,然后在程序中获得root权限,然后再遍历/dev/input目录,得到所有的设备文件,并使用chmod命令修改权限为666(只读),再读取此设备的名称,找到对应的Touch Panel设备再读取事件。具体为:
1.获得root权限。
2.遍历/dev/input目录,得到每个设备号。
3.使用chmod将此设备权限修改为666。
4.使用open方式以只读方式打开此设备。
5.使用ioctl得到此设备的名称,判断是否是Touch Panel设备。
6.找到对应的Touch Panel设备,返回设备文件号。
7.循环读取设备事件,得到事件结构体。
8.按照多点触控协议解析得到的事件。
9.在应用程序的AndroidManifest.xml中加入android:sharedUserId="android.uid.system"属性,以提升应用程序权限。
10.将应用程序在Android源码中编译得到相应的APK文件。
从触摸屏Touch Panel设备文件中读取的数据是触摸屏采用数据,不是LCD坐标值,需要采用类似于屏幕校正算法的方式先转换为LCD坐标才能提供给应用上层使用。
在一个实施例中,打开系统中存储设备文件的目录,此目录可以根据电子白板支持不同的操作系统而不同,例如,android系统为/dev/input目录。遍历此目录下所有的设备文件,依次打开设备文件,得到此设备文件的句柄并获取此设备文件的设备名称。
判断此设备文件的设备名称是否与触摸屏设备的设备名称一致,如果是,则此设备文件为触摸屏设备文件,保存触摸屏设备文件的句柄。根据电子白板支持不同的操作系统,可以使用不同的系统提供的函数执行上述功能,也可以开发专门的函数。
例如,在android系统中,循环读取设备文件,得到事件结构体具体为:得到触摸屏TouchPanel设备文件句柄。具体步骤如下:
a.使用opendir函数打开/dev/input目录,得到目录句柄。
b.使用readdir函数遍历读取此目录下所有设备文件。
c.使用open函数打开设备文件,得到文件句柄。
d.使用ioctl函数得到此设备文件的设备名称。
e.使用strcmp函数比较此设备文件的设备名称和电子白板使用的触摸屏TouchPanel设备名称是否一致,如果一致,保存此设备文件句柄,并跳出遍历循环,否则继续遍历。
循环读取设备文件、得到事件结构体实现的部分代码如下:
Figure GDA0002379546670000071
使用read函数循环读取刚才保存的设备文件,第二个参数event返回的就是时间结构体。
Figure GDA0002379546670000072
在一个设备中,周期性地、循环读取触摸屏设备文件,获取触摸屏设备文件中的事件数据。在触摸屏上操作的事件数据被存储在触摸屏设备文件中。解析事件数据,并将事件数据封装为触摸屏上的移动轨迹的坐标数据。
例如,在android系统中,按照多点触控协议解析得到的事件,并封装数据的例子如下:
用户在触摸屏幕上点击一下后硬件产生一个中断,OnClickListener收到这个事件,往/dev/input/event*写入一个相应的事件数据,android循环读取/dev/input/event*的事件,再分发给WindowManagerServer,最后再发到相应的ViewGroup和View。可以通过直接读取/dev/input/event*事件数据的方式,来达到快速处理的目的。
读取/dev/input/event*中的事件数据,如下所示:
/dev/input/event4:0003 0039 0000000d
/dev/input/event4:0003 0035 00006e25
/dev/input/event4:0003 0036 00002ecb
/dev/input/event4:0000 0002 00000000
/dev/input/event4:0003 0039 00000002
/dev/input/event4:0003 0035 00006ea4
/dev/input/event4:0003 0036 000028c2
/dev/input/event4:0000 0002 00000000
/dev/input/event4:0000 0000 00000000
/dev/input/event4:0003 0039 0000000d
第一列数据/dev/input/event4:表示TouchPanel设备文件是event4。第二列数据:0003表示这是一个TouchPanel点击事件,0000表示这是一个同步信号,意思就是事件结束了,可以解析并且分发出去了。第三列数据:0039表示第四列数据是哪个点触摸事件发生了,0035表示第四列数据是X坐标采样值,0036表示第四列数据是Y坐标采样值。0000 000200000000、0000 0000 00000000表示此点抬起了,如果再跟着有0000 0002 00000000、00000000 00000000表示所有点都抬起了。
根据对event读取数据的分析,封装数据格式,例如定义如下类:
public class MyEvent
{
private int[]id=null;//保存点的需要,对应上述第四列数据
private float[]x=null;//保存转换过的LCD x坐标
private float[]y=null;//保存转换过的LCD y坐标
private int[]status=null;//保存当前的状态:down、move、up
}
从event*中读取相应的数据按照上述的分析方法将MyEvent需要的几个变量值填入,然后上层程序取得相应的数据绘图即可。
在一个实施例中,解析事件数据获取事件参数,事件参数包括:事件ID、操作类型、X坐标采样值、Y坐标采样值;将事件参数转换为移动轨迹的坐标数据,坐标数据包括:轨迹ID、触摸屏x坐标、触摸屏y坐标和当前操作状态;当前操作状态包括:上、下、移动;其中,当触摸屏的分辨率为在X轴方向上为W像素、在Y轴方向上为H像素时:
Figure GDA0002379546670000091
XL为触摸屏X坐标,XT为X坐标采样值,Xtmin、Xtmax分别是触摸屏的X轴方向上的坐标最小值和坐标最大值;
Figure GDA0002379546670000092
YL为触摸屏Y坐标,YT是Y坐标采样值,Ytmin、Ytmax分别是触摸屏的Y轴方向上的坐标最小值和坐标最大值。
从触摸屏TouchPanel设备文件中读取出的值为触摸屏的采样值,不是触摸屏的LCD的坐标值,所以必须作一个类似校正的算法转换为需要的LCD坐标值才能使用。
tp坐标到lcd坐标是完全按照线性关系来转换的。例如,tp坐标是(Xt,Yt)分辨率是(Wt X Ht),lcd坐标是(X,Y),分辨率是(W X H),则X=(Xt*W)/Wt,Y=(Yt*H)/Ht。但是一般触摸屏不是完全线性的,自然转换关系也就不一样了,通过tslib可以解决这个问题。需要其中根据采样点生成转换矩阵的部分编写转换算法即可。具体算法如下:
Figure GDA0002379546670000093
Figure GDA0002379546670000094
其中,XL、YL是LCD坐标,XT、YT是触摸屏的坐标。Xtmin、Xtmax、Ytmin、Ytmax分别是触摸屏的X、Y轴方向上的最小值和最大值。
此架构的设计主要是要考虑多任务、多窗口、多图层的显示切换与合并,而这些因素在电子白板中可以不用考虑,因此,在图形绘制完毕后去调用显示方法的时候,可以不使用Android提供的上层java方法,而采用JNI的方式直接调用底层的FrameBuffer接口进行写屏,这样能有效提高显示的速度。
在android架构中,所有的设备都是被抽象为文件的,可以通过jni的方式用C语言写一个直接操作framebuffer设备的程序,来将上层将要显示的内容直接发送给FrameBuffer显示。
在android系统中,普通应用程序无法直接读取FrameBuffer抽象设备文件,需要将应用程序加android.permission.READ_FRAME_BUFFER和system权限并在Android源码中编译,获得root权限,将/dev/graphics/fb0使用chmod命令修改权限为777,就可以开始使用framebuffer绘图了。具体步骤如下:
1.获得root权限。
2.使用chmod将设备/dev/graphics/fb0权限修改为777。
3.使用O_RDWR方式以读写方式打开此设备。
4.使用ioctl读取fb_var_screeninfo和fb_fix_screeninfo两个结构体信息。此步骤主要是取得当前显示屏幕的参数,如屏幕分辨率,每个像素点的比特数。根据屏幕参数可计算屏幕缓冲区的大小。
5.使用mmap方式映射设备内存到进程空间。
6.将java层传递下来的bitmap数据按照屏幕像素格式写入映射的内存。
7.取消内存映射,关闭framebuffer文件句柄。
8.在应用程序的AndroidManifest.xml中加入android:sharedUserId="android.uid.system"属性和android.permission.READ_FRAME_BUFFER权限,以提升应用程序权限。
9.将应用程序在Android源码中编译得到相应的APK文件。
由于从java上层传递到底层的bitmap数据格式应该和framebuffer设备文件中读取到的屏幕数据格式一致,可以使用memecpy直接复制,速度较快,不用再进行数据格式转换。
在一个实施例中,基于触摸屏的像素设置绘图区域,在内存中创建与绘图区域相映射图文件对象。基于坐标数据在图文件对象中加入在触摸屏上绘制的移动轨迹数据。打开一个可用的帧缓冲设备,获取取得当前的触摸屏的参数,触摸屏的参数包括:屏幕分辨率、每个像素点的比特数。将帧缓冲设备的内存映射到内核进程空间。将图文件对象的数据写入帧缓冲设备的内存,通过帧缓冲设备在触摸屏上相应的位置绘制并显示移动轨迹。
例如,在电子白板中,Android自带的状态栏有38像素,其余部分就是可以绘图的区域。假如,在可绘图区域绘制了一条线,触摸屏幕像素是1920x1080,可绘图区域是1920x1042。在可绘图区域布局的是一个surfaceview,在启动的时候就创建了一个相应大小的位图对象bitmap:
Bitmap bitmap=Bitmap.createBitmap(1920,1042,Bitmap.Config.RGB_565)。
之后的所有绘图都是在此bitmap中完成,可以在bitmap中加入多个字或绘图。
当绘图完毕需要写入framebuffer显示时,需要如下步骤:
1、打开一个可用的FrameBuffer设备。
2、通过ioctl函数取得fixed screen information。
3、通过ioctl函数取得variable screen information。
4、通过mmap函数映射设备内存到进程空间,需要区分内核空间和用户空间,用户空间是无法对物理内存直接读写。
5、将bitmap数据写入对应的framebuffer位置。
a.先将bitmap数据转为byte[]数组。
b.通过jni将byte[]从java层传给c层,转换为char[]数组。
c.因为Android的状态栏占据了38像素的位置,需要找到相应的起始点位置。采用rgb565格式,一个像素占用2个字节,那么状态栏总共占用的字节数为:long offset=1920*38*2。
采用memcpy的方式将数据写入framebuffer。
6、结束,取消映射,并close掉句柄。绘图数据就能在相应的位置正确显示了。
通过上述实施例中的绘图方法,能够明显提升显示数据的速度。
如图4所示,本发明提供一种触摸屏事件的获取装置3。设备文件获取单元31获取与电子白板的触摸屏相对应的触摸屏设备文件。轨迹数据计算单元32读取触摸屏设备文件,从触摸屏设备文件中获取触摸事件数据;根据触摸事件数据计算在触摸屏上显示的轨迹数据。
轨迹数据计算单元32启动触摸数据获取线程,触摸数据读取触摸屏设备文件,从触摸屏设备文件中获取触摸事件数据,并根据触摸事件数据计算在触摸屏上显示的轨迹数据。轨迹绘制单元33启动轨迹绘制线程;轨迹绘制线程调用帧缓冲区接口,基于轨迹数据在触摸屏上绘制移动轨迹。
在一个实施例中,设备文件获取单元31打开系统中存储设备文件的目录,遍历此目录下所有的设备文件;依次打开设备文件,得到此设备文件的句柄并获取此设备文件的设备名称;判断此设备文件的设备名称是否与触摸屏设备的设备名称一致,如果是,则此设备文件为触摸屏设备文件,保存触摸屏设备文件的句柄。
在一个实施例中,事件获取子模块321周期性地读取触摸屏设备文件,获取触摸屏设备文件中的事件数据。在触摸屏上操作的事件数据被存储在触摸屏设备文件中。坐标计算子模块322解析事件数据,并将事件数据封装为触摸屏上的移动轨迹的坐标数据。
坐标计算子模块322解析事件数据获取事件参数,事件参数包括:事件ID、操作类型、X坐标采样值、Y坐标采样值。将事件参数转换为移动轨迹的坐标数据,坐标数据包括:轨迹ID、触摸屏x坐标、触摸屏y坐标和当前操作状态,当前操作状态包括:上、下、移动。
当触摸屏的分辨率为在X轴方向上为W像素、在Y轴方向上为H像素时:
Figure GDA0002379546670000121
XL为触摸屏X坐标,XT为X坐标采样值,Xtmin、Xtmax分别是触摸屏的X轴方向上的坐标最小值和坐标最大值;
Figure GDA0002379546670000122
YL为触摸屏Y坐标,YT是Y坐标采样值,Ytmin、Ytmax分别是触摸屏的Y轴方向上的坐标最小值和坐标最大值。
上述实施例提供的触摸屏事件的获取方法及装置,能够直接从触摸屏设备文件中得到点击的事件,直接调用底层的帧缓存接口进行写屏操作,并将获取触摸事件和写屏操作分别放在2个线程完成的,提升了运行效率并提升书写速度,解决书写轨迹偏差的问题,并明显提升了显示数据的速度,提高了电子产品的用户感受度,提升了产品质量和竞争力。
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (4)

1.一种触摸屏事件的获取方法,其特征在于,包括:
获取与电子白板的触摸屏相对应的触摸屏设备文件;
其中,打开系统中存储设备文件的目录,遍历此目录下所有的设备文件;依次打开设备文件,得到此设备文件的句柄并获取此设备文件的设备名称;判断此设备文件的设备名称是否与所述触摸屏设备的设备名称一致,如果是,则此设备文件为所述触摸屏设备文件,保存所述触摸屏设备文件的句柄;
读取所述触摸屏设备文件,从所述触摸屏设备文件中获取触摸事件数据;其中,启动触摸数据获取线程,读取所述触摸屏设备文件,从所述触摸屏设备文件中获取触摸事件数据;
根据所述触摸事件数据计算在所述触摸屏上显示的轨迹数据;
其中,根据所述触摸事件数据计算在所述触摸屏上显示的轨迹数据,包括:解析所述事件数据获取事件参数,所述事件参数包括:事件ID、操作类型、X坐标采样值、Y坐标采样值;将所述事件参数转换为移动轨迹的坐标数据,所述坐标数据包括:轨迹ID、触摸屏x坐标、触摸屏y坐标和当前操作状态;所述当前操作状态包括:上、下、移动;
其中,当触摸屏的分辨率为在X轴方向上为W像素、在Y轴方向上为H像素时:
Figure FDA0002379546660000011
XL为触摸屏X坐标,XT为X坐标采样值,Xtmin、Xtmax分别是触摸屏的X轴方向上的坐标最小值和坐标最大值;
Figure FDA0002379546660000012
YL为触摸屏Y坐标,YT是Y坐标采样值,Ytmin、Ytmax分别是触摸屏的Y轴方向上的坐标最小值和坐标最大值;
启动轨迹绘制线程调用帧缓冲区接口,基于所述轨迹数据在所述触摸屏上绘制移动轨迹;其中,基于触摸屏的像素设置绘图区域,在内存中创建与绘图区域相映射图文件对象;基于坐标数据在图文件对象中加入在触摸屏上绘制的轨迹数据;打开帧缓冲设备,获取当前的触摸屏的参数;将帧缓冲设备的内存映射到内核进程空间;将图文件对象的数据写入帧缓冲设备的内存,通过帧缓冲设备在触摸屏上相应的位置绘制并显示移动轨迹。
2.如权利要求1所述的方法,其特征在于,所述读取所述触摸屏设备文件、从所述触摸屏设备文件中获取触摸事件数据包括:
周期性地读取所述触摸屏设备文件,获取所述触摸屏设备文件中的事件数据;其中,在所述触摸屏上操作的事件数据被存储在所述触摸屏设备文件中。
3.一种触摸屏事件的获取装置,其特征在于,包括:
设备文件获取单元,用于获取与电子白板的触摸屏相对应的触摸屏设备文件;
其中,所述设备文件获取单元,还用于打开系统中存储设备文件的目录,遍历此目录下所有的设备文件;依次打开设备文件,得到此设备文件的句柄并获取此设备文件的设备名称;判断此设备文件的设备名称是否与所述触摸屏设备的设备名称一致,如果是,则此设备文件为所述触摸屏设备文件,保存所述触摸屏设备文件的句柄;
轨迹数据计算单元,用于启动触摸数据获取线程,读取所述触摸屏设备文件,从所述触摸屏设备文件中获取触摸事件数据;根据所述触摸事件数据计算在所述触摸屏上显示的轨迹数据;
其中,所述轨迹数据计算单元,包括:
坐标计算子模块,用于解析所述事件数据获取事件参数,所述事件参数包括:事件ID、操作类型、X坐标采样值、Y坐标采样值;将所述事件参数转换为移动轨迹的坐标数据,所述坐标数据包括:轨迹ID、触摸屏x坐标、触摸屏y坐标和当前操作状态;所述当前操作状态包括:上、下、移动;当触摸屏的分辨率为在X轴方向上为W像素、在Y轴方向上为H像素时:
Figure FDA0002379546660000031
XL为触摸屏X坐标,XT为X坐标采样值,Xtmin、Xtmax分别是触摸屏的X轴方向上的坐标最小值和坐标最大值;
Figure FDA0002379546660000032
YL为触摸屏Y坐标,YT是Y坐标采样值,Ytmin、Ytmax分别是触摸屏的Y轴方向上的坐标最小值和坐标最大值;
轨迹绘制单元,用于启动轨迹绘制线程,所述轨迹绘制线程调用帧缓冲区接口,基于所述轨迹数据在所述触摸屏上绘制移动轨迹;其中,基于触摸屏的像素设置绘图区域,在内存中创建与绘图区域相映射图文件对象;基于坐标数据在图文件对象中加入在触摸屏上绘制的轨迹数据;打开帧缓冲设备,获取当前的触摸屏的参数;将帧缓冲设备的内存映射到内核进程空间;将图文件对象的数据写入帧缓冲设备的内存,通过帧缓冲设备在触摸屏上相应的位置绘制并显示移动轨迹。
4.如权利要求3所述的装置,其特征在于:
所述轨迹数据计算单元,包括:
事件获取子模块,用于周期性地读取所述触摸屏设备文件,获取所述触摸屏设备文件中的事件数据;其中,在所述触摸屏上操作的事件数据被存储在所述触摸屏设备文件中。
CN201410842741.4A 2014-12-30 2014-12-30 一种触摸屏事件的获取方法及装置 Active CN105807966B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410842741.4A CN105807966B (zh) 2014-12-30 2014-12-30 一种触摸屏事件的获取方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410842741.4A CN105807966B (zh) 2014-12-30 2014-12-30 一种触摸屏事件的获取方法及装置

Publications (2)

Publication Number Publication Date
CN105807966A CN105807966A (zh) 2016-07-27
CN105807966B true CN105807966B (zh) 2020-06-23

Family

ID=56419895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410842741.4A Active CN105807966B (zh) 2014-12-30 2014-12-30 一种触摸屏事件的获取方法及装置

Country Status (1)

Country Link
CN (1) CN105807966B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815105B (zh) * 2016-12-29 2019-11-05 广东小天才科技有限公司 一种整机触摸屏检测方法及装置、系统
CN106933486B (zh) * 2017-03-13 2020-04-21 广州视源电子科技股份有限公司 用于安卓系统的触控实现方法及装置
WO2019104688A1 (zh) * 2017-11-30 2019-06-06 深圳市柔宇科技有限公司 手写板的输入数据处理方法、电子设备以及存储介质
CN108009073A (zh) * 2017-12-21 2018-05-08 深圳市金立通信设备有限公司 由日志复现触控轨迹的方法、终端及计算机可读存储介质
CN110427756B (zh) * 2019-06-20 2021-05-04 中国人民解放军战略支援部队信息工程大学 基于胶囊网络的安卓恶意软件检测方法及装置
CN112346581A (zh) * 2019-08-07 2021-02-09 南京中兴新软件有限责任公司 一种移动轨迹的绘制方法、装置及计算机可读存储介质
CN114425014A (zh) * 2020-10-29 2022-05-03 蜜曰科技(北京)有限公司 一种电子按摩设备的控制方法
CN112882766A (zh) * 2021-02-03 2021-06-01 广州华欣电子科技有限公司 一种数据处理方法、装置和系统
CN112799583B (zh) * 2021-04-13 2021-08-24 北京三维天地科技股份有限公司 一种基于android平台的点位示意图绘制系统
CN114090089A (zh) * 2021-11-24 2022-02-25 航天欧华信息技术有限公司 基于绘制framebuffer实现书写加速的方法
CN113835788A (zh) * 2021-11-25 2021-12-24 广州朗国电子科技股份有限公司 一种快速获取输入事件的方法及快速响应输入事件的方法
CN114237425B (zh) * 2021-12-21 2024-01-16 深圳市普锐高科实业有限公司 一种基于手写笔的屏幕可控方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010081337A1 (zh) * 2008-12-30 2010-07-22 华为终端有限公司 电子白板系统、输入装置、处理装置及处理方法
CN103164265A (zh) * 2011-12-16 2013-06-19 盛乐信息技术(上海)有限公司 基于Linux系统的输入事件处理方法和系统
CN103620536A (zh) * 2012-07-30 2014-03-05 华为终端有限公司 触摸事件上报方法、装置及移动终端

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010081337A1 (zh) * 2008-12-30 2010-07-22 华为终端有限公司 电子白板系统、输入装置、处理装置及处理方法
CN103164265A (zh) * 2011-12-16 2013-06-19 盛乐信息技术(上海)有限公司 基于Linux系统的输入事件处理方法和系统
CN103620536A (zh) * 2012-07-30 2014-03-05 华为终端有限公司 触摸事件上报方法、装置及移动终端

Also Published As

Publication number Publication date
CN105807966A (zh) 2016-07-27

Similar Documents

Publication Publication Date Title
CN105807966B (zh) 一种触摸屏事件的获取方法及装置
CN105807967B (zh) 一种电子白板的书写方法及装置
US20210303108A1 (en) System and method for on-screen graphical user interface encapsulation and reproduction
US8269725B2 (en) Input simulation system for touch based devices
CN109032390B (zh) 笔迹数据缓存方法、装置、设备和存储介质
TWI604375B (zh) 螢幕分享方法以及使用該方法的裝置
US20100082733A1 (en) Extensible remote programmatic access to user interface
US20110145692A1 (en) Method for Tracking Annotations with Associated Actions
TWI515646B (zh) 擴展螢幕模式下之應用程式運作方法以及使用該方法的平板電腦
US11403121B2 (en) Streaming per-pixel transparency information using transparency-agnostic video codecs
CN110968305A (zh) 小程序可视化生成方法、装置、设备及存储介质
US20150007130A1 (en) Software development using gestures
WO2023098241A1 (zh) 一种请求处理方法及装置
WO2020015704A1 (zh) 触摸控制方法及装置、存储介质、终端设备
WO2018205392A1 (zh) 控制响应区域显示控制方法、电子装置及存储介质
CN108399058A (zh) 一种信号显示控制方法及装置
CN102193905A (zh) 基于gdi/gdi+的虚拟文本编辑方法及装置
WO2018205390A1 (zh) 一种控件布局显示控制方法、系统、装置及计算机可读存储介质
CN115878935A (zh) 一种图表的局部刷新方法、系统、装置、设备及介质
US20160364249A1 (en) Integrated visualization
US9141443B2 (en) Method and system for integrating visual controls with legacy applications
EP3506130B1 (en) Data extracting system and method
US20110138321A1 (en) Zone-based functions in a user interface
US20230350532A1 (en) System and method for on-screen graphical user interface encapsulation and application history reproduction
CN203422725U (zh) 触摸屏多点展示系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: C1104 room 100085 Beijing city Haidian District Third Street No. 9 C

Applicant after: Hitevision Polytron Technologies Inc

Address before: C1104 room 100085 Beijing city Haidian District Third Street No. 9 C

Applicant before: HONGHE TECHNOLOGY CO., LTD.

GR01 Patent grant
GR01 Patent grant