CN111880683B - vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法 - Google Patents
vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法 Download PDFInfo
- Publication number
- CN111880683B CN111880683B CN202010657373.1A CN202010657373A CN111880683B CN 111880683 B CN111880683 B CN 111880683B CN 202010657373 A CN202010657373 A CN 202010657373A CN 111880683 B CN111880683 B CN 111880683B
- Authority
- CN
- China
- Prior art keywords
- serial port
- touch screen
- windml
- mouse
- point
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000013461 design Methods 0.000 title claims abstract description 8
- 238000012795 verification Methods 0.000 claims abstract description 9
- 230000003068 static effect Effects 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 8
- 238000011161 development Methods 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 4
- 230000001960 triggered effect Effects 0.000 claims description 4
- 241000699666 Mus <mouse, genus> Species 0.000 abstract description 45
- 230000004044 response Effects 0.000 abstract description 4
- 241000699670 Mus sp. Species 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
- G06F3/0418—Control or interface arrangements specially adapted for digitisers for error correction or compensation, e.g. based on parallax, calibration or alignment
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明属于vxworks系统技术领域,具体涉及一种vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法。该方法首先配置windml虚拟鼠标设备;其次基于windml虚拟设备实现触摸屏驱动事件:通过串口接收任务解析触摸屏协议报文,获取有效的触摸事件坐标点。同时,比较两次点坐标状态判断当前鼠标事件类型,作为虚拟鼠标事件输入,达到实现触摸屏驱动的目的。利用上述技术方案,本发明可以实现vxwork系统下触摸屏串口驱动,该方法已经经过了算法验证,并进行了实验检验。结果标明,该方案可以缩短触摸屏响应事件时间,保证触摸屏设备在vxwork系统下正常使用并且可兼容他类型鼠标。
Description
技术领域
本发明属于vxworks系统技术领域,具体涉及一种vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法。
背景技术
随着电子技术的不断进步,人机交互方式的不断演变和变化,电阻式触摸屏的单点触控计数被广泛应用。电阻式触摸屏可靠性和使用寿命的不断提高也使得在船舶自动化领域中采用触摸屏技术的终端设备逐渐增多。
Vxworks作为在通讯、军事、航天等高尖技术及实时性要求极高的领域被广泛应用的操作系统,虽然对人机接口设备提供了面向事件的消息处理机制,但是并没有对触摸屏驱动程序开发提供开发内容,为了解决串口类触摸屏设备在系统下的正常使用,需要解决触摸屏的串口驱动问题。目前成熟的触摸屏驱动技术有基于usb类型的触摸屏驱动,即将usb接口类型的触摸屏作为人机接口输入设备,通过类比与usb鼠标驱动消息机制,自模拟一个usb设备向下调用字符设备驱动获取触摸屏数据报文,向上将被windML消息引擎调用抛出触摸屏消息,但是此方式不能兼容主机其他类型的usb设备,同时也不能解决串口类型的触摸屏驱动问题。
为了解决vxwork下的触摸屏串口驱动问题,缩短触摸屏响应时间,简化驱动事件过程,需要提出一种基于windml虚拟鼠标的触摸屏串口驱动设计方法。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何提供一种vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法。
(二)技术方案
为解决上述技术问题,本发明提供一种vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法,所述方法包括如下步骤:
步骤1:配置windml虚拟鼠标设备;
建立windml工程,在windml图形配置文件中添加虚拟鼠标设备;
步骤2:基于windml虚拟鼠标设备实现触摸屏驱动事件;该步骤包括:
步骤21:初始化串口设备使用环境;
步骤22:解析串口数据,获取触摸屏发送的屏幕点坐标值;
步骤23:将屏幕点坐标值转为系统鼠标事件;
通过以上步骤,可以实现触摸屏在vxwork系统下的串口驱动功能。
其中,所述步骤1中,在不影响vxworks系统正常使用的情况下,为解决系统需兼容其他类型鼠标设备的使用问题,需为系统单独配置一个虚拟鼠标设备;在workbench集成开发环境中,修改windml配置文件手动添加虚拟鼠标设备。
其中,所述步骤1包括:
步骤11:创建windml工程;
步骤12:在windml工程中打开config.windml文件添加display设备,根据需求添加PS2或者UBS鼠标;
步骤13:用文本编辑器打开config.windml中手动添加虚拟鼠标设备配置语句。
其中,所述步骤21包括:
首先,在vxworks系统所接的设备中,指定与触摸屏通信的串口设备描述符;
其次,通过vxworks系统函数open打开与触摸屏通信的串口设备;
然后,配置串口的波特率、校验位参数;
最后,创建串口接收任务进行触摸屏点坐标数据接收。
其中,所述步骤21中,初始化串口设备环境的过程如下:
步骤211:读取配置文件中串口设备端口号和波特率配置信息;
步骤212:获取串口设备描述符;
步骤213:使用vxworks系统函数open打开描述符所代表的串口设备并保存串口所指向的操作句柄;
步骤214:使用ioctl函数配置串口设备波特率和校验属性;
步骤215:创建串口接收任务;
步骤216:接收任务循环使用ioctl函数判断串口端口是否有新数据接收;当接收长度大于零时,则使用read函数读取串口数据。
其中,所述步骤22包括:
首先,通过串口接收任务,获取触摸屏设备发送的点击事件数据报文内容;
同时,串口接收处理对报文的进行合法性验证,对于不合法的报文进行滑窗处理,减少串口数据的丢包率;
如果报文合法,则获取点击事件数据报文内容中的屏幕点坐标(x,y)。
其中,所述步骤22中,通过串口接收任务获取的串口数据经过报文合法性判断后才能获取正确的屏幕点坐标值,具体为:
步骤221:将本次接收到的所有串口数据存入到静态数组,并将静态数组当前的接收总长度计数;
步骤222:判断接收总长度是否小于帧长度,如果是则返回接收任务继续接收,否则进行下一步操作;
步骤223:对静态数组中的数据进行帧头查找,如果找到帧头则将帧头前的错误数据过滤:将帧头所在位置后的数组数据平移到数组最前面,将接收总长度减去帧头所在位置,继续进行下一步;否则将数组最后一个字节内容赋值给数组第一个字节,数组接收总长度赋值为1并返回;
步骤224:再次判断接收总长度是否小于帧长度,如果是则返回接收任务继续接收,否则进行下一步操作;
步骤225:判断帧尾和校验和是否合法,如果合法则进行下一步,否则重复步骤223并返回;
步骤226:根据协议规定获取数组中相应位置的数据进行屏幕点坐标解析。
其中,所述步骤23中,为了将触摸屏点击事件模拟成鼠标点击事件,首先将点击触摸屏产生的屏幕坐标值作为虚拟鼠标设备的鼠标事件函数的输入参数;
然后,通过调用虚拟鼠标设备的鼠标事件函数mouse模拟成系统鼠标事件。
其中,所述步骤23中,如步骤22中获取了有效的屏幕点坐标数据,执行虚拟鼠标mouse函数,从而将屏幕点击事件模拟成了系统鼠标事件;具体步骤如下:
步骤231:记当前点坐标为临时变量tsInfo,前点坐标为静态变量bkInfo,初始化tsInfo和bkInfo的x坐标、y坐标、点状态status为0;
步骤232:如果bkInfo的点状态为0,则将tsInfo点状态赋值给bkInfo点状态后返回;如果bkInfo点状态不为0,继续下一步;
步骤233:判断tsInfo点状态和bkInfo点状态,根据两个点状态不同模拟相应的鼠标事件:
1)如果tsInfo点状态为连续状态并且bkInfo点坐标状态为点击状态,则模拟鼠标左键按下事件,连续点计数清零,记录起始坐标点位置为(x0,y0);
2)如果tsInfo点状态为连续状态且bkInfo点坐标状态为连续状态,连续点个数变量count自增加1,模拟鼠标移动事件;
3)如果tsInfo点状态为离开状态且bkInfo点状态为连续状态,分两种情况判断触发右键和左键:
①如果tsInfo的x坐标和y坐标跟x0,y0各自的差距小于q,并且count<10,则模拟左键弹起的鼠标事件;
②如果tsInfo的x坐标和y坐标跟x0,y0各自的差距小于q,并且count>=10,则模拟右键按下和弹起的鼠标事件。
其中,所述方法用于在vxworks平台下,解决触摸屏串口驱动问题。
(三)有益效果
与现有技术相比较,本发明在系统为vxworks的应用场景下,针对系统平台特点,根据触摸屏设备传输特点,并结合windml库,设计实现了一种vxoworks系统下基于windml虚拟设备的触摸屏串口驱动。本发明简化了触摸屏串口驱动事件过程,缩短了触摸响应时间,同时可兼容其他类型鼠标配置使用,并保证了系统的接口性能和安全性
附图说明
图1为触摸屏串口驱动实现流程图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
为解决现有技术问题,本发明提供一种vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法,如图1所示,所述方法包括如下步骤:
步骤1:配置windml虚拟鼠标设备;
建立windml工程,在windml图形配置文件中添加虚拟鼠标设备;
步骤2:基于windml虚拟鼠标设备实现触摸屏驱动事件;该步骤包括:
步骤21:初始化串口设备使用环境;
步骤22:解析串口数据,获取触摸屏发送的屏幕点坐标值;
步骤23:将屏幕点坐标值转为系统鼠标事件;
通过以上步骤,可以实现触摸屏在vxwork系统下的串口驱动功能。
其中,所述步骤1中,在不影响vxworks系统正常使用的情况下,为解决系统需兼容其他类型鼠标设备的使用问题,需为系统单独配置一个虚拟鼠标设备;在workbench集成开发环境中,windml图形界面配置界面不支持鼠标类型多选,为解决此问题,需修改windml配置文件手动添加虚拟鼠标设备。
其中,所述步骤1包括:
步骤11:创建windml工程;
步骤12:在windml工程中打开config.windml文件添加display设备,根据需求添加PS2或者UBS鼠标;
步骤13:用文本编辑器打开config.windml中手动添加虚拟鼠标设备配置语句。
其中,所述步骤21包括:
首先,在vxworks系统所接的设备中,指定与触摸屏通信的串口设备描述符;
其次,通过vxworks系统函数open打开与触摸屏通信的串口设备;
然后,配置串口的波特率、校验位参数;
最后,创建串口接收任务进行触摸屏点坐标数据接收。
其中,所述步骤21中,初始化串口设备环境的过程如下:
步骤211:读取配置文件中串口设备端口号和波特率配置信息;
步骤212:获取串口设备描述符;
步骤213:使用vxworks系统函数open打开描述符所代表的串口设备并保存串口所指向的操作句柄;
步骤214:使用ioctl函数配置串口设备波特率和校验属性;
步骤215:创建串口接收任务;
步骤216:接收任务循环使用ioctl函数判断串口端口是否有新数据接收;当接收长度大于零时,则使用read函数读取串口数据。
其中,所述步骤22包括:
首先,通过串口接收任务,获取触摸屏设备发送的点击事件数据报文内容;
同时,串口接收处理对报文的进行合法性验证,对于不合法的报文进行滑窗处理,减少串口数据的丢包率;
如果报文合法,则获取点击事件数据报文内容中的屏幕点坐标(x,y)。
其中,所述步骤22中,通过串口接收任务获取的串口数据经过报文合法性判断后才能获取正确的屏幕点坐标值,具体为:
步骤221:将本次接收到的所有串口数据存入到静态数组,并将静态数组当前的接收总长度计数;
步骤222:判断接收总长度是否小于帧长度,如果是则返回接收任务继续接收,否则进行下一步操作;
步骤223:对静态数组中的数据进行帧头查找,如果找到帧头则将帧头前的错误数据过滤:将帧头所在位置后的数组数据平移到数组最前面,将接收总长度减去帧头所在位置,继续进行下一步;否则将数组最后一个字节内容赋值给数组第一个字节,数组接收总长度赋值为1并返回;
步骤224:再次判断接收总长度是否小于帧长度,如果是则返回接收任务继续接收,否则进行下一步操作;
步骤225:判断帧尾和校验和是否合法,如果合法则进行下一步,否则重复步骤223并返回;
步骤226:根据协议规定获取数组中相应位置的数据进行屏幕点坐标解析。
其中,所述步骤23中,为了将触摸屏点击事件模拟成鼠标点击事件,首先将点击触摸屏产生的屏幕坐标值作为虚拟鼠标设备的鼠标事件函数的输入参数;
然后,通过调用虚拟鼠标设备的鼠标事件函数mouse模拟成系统鼠标事件。
其中,所述步骤23中,如步骤22中获取了有效的屏幕点坐标数据,执行虚拟鼠标mouse函数,从而将屏幕点击事件模拟成了系统鼠标事件;具体步骤如下:
步骤231:记当前点坐标为临时变量tsInfo,前点坐标为静态变量bkInfo,初始化tsInfo和bkInfo的x坐标、y坐标、点状态status为0;
步骤232:如果bkInfo的点状态为0,则将tsInfo点状态赋值给bkInfo点状态后返回;如果bkInfo点状态不为0,继续下一步;
步骤233:判断tsInfo点状态和bkInfo点状态,根据两个点状态不同模拟相应的鼠标事件:
1)如果tsInfo点状态为连续状态并且bkInfo点坐标状态为点击状态,则模拟鼠标左键按下事件,连续点计数清零,记录起始坐标点位置为(x0,y0);
2)如果tsInfo点状态为连续状态且bkInfo点坐标状态为连续状态,连续点个数变量count自增加1,模拟鼠标移动事件;
3)如果tsInfo点状态为离开状态且bkInfo点状态为连续状态,分两种情况判断触发右键和左键:
①如果tsInfo的x坐标和y坐标跟x0,y0各自的差距小于q,并且count<10,则模拟左键弹起的鼠标事件;
②如果tsInfo的x坐标和y坐标跟x0,y0各自的差距小于q,并且count>=10,则模拟右键按下和弹起的鼠标事件。
其中,所述方法用于在vxworks平台下,解决触摸屏串口驱动问题。
实施例1
本实施例提供一种vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法,包括:
(1)配置windml虚拟鼠标设备,修改windml的配置文件,对系统添加虚拟鼠标指针对象,将触摸屏事件转化为虚拟鼠标事件并兼容其他类型鼠标的使用;
(2)基于windml虚拟鼠标实现触摸屏驱动事件,通过创建串口接收任务解析触摸屏事件的坐标点,通过滑窗处理报文减少丢包率和错误率。同时,对比两次触摸事件的点坐标状态模拟不同的鼠标事件,从而实现了触摸屏串口驱动的目的。
其中,通过滑窗处理解析了报文是数据获取了触摸事件的有效坐标点,同时通过判断前后两次点坐标状态模拟了不同的鼠标事件。
实施例2
如图1所示,为了解决vworks系统下触摸屏的串口驱动问题,本实施例采用基于windml虚拟鼠标的实现方法。
1、配置windml虚拟鼠标设备
在不影响系统正常使用的情况下,为解决系统需兼容其他类型鼠标设备的使用问题,为系统单独配置一个虚拟鼠标设备。在workbench集成开发环境中,windml图形界面配置界面不支持鼠标类型多选,为解决此问题,需修改windml配置文件手动添加虚拟鼠标设备。配置windml虚拟鼠标设备具体步骤如下:
①创建windml工程;
②在工程中打开config.windml文件添加display设备,根据需求可添加PS2或者UBS鼠标;
③用文本编辑器打开config.windml中手动添加虚拟鼠标设备配置语句。
2、基于windml虚拟鼠标实现触摸屏驱动事件
(1)初始化串口设备使用环境
初始化串口设备环境步骤如下:
Step1:读取配置文件中串口设备端口号和波特率等配置信息;
Step2:获取串口设备描述符;
Step3:使用vxworks系统函数open打开描述符所代表的串口设备并保存串口所指向的操作句柄;
Step4:使用ioctl函数配置串口设备波特率和校验属性;
Step5:创建串口接收任务;
Step6:接收任务循环使用ioctl函数判断串口端口是否有新数据接收。当接收长度大于零时,则使用read函数读取串口数据;
(2)解析串口数据获取触摸屏发送的屏幕点坐标值
通过串口接收任务获取的串口数据经过报文合法性判断后才能获取正确的屏幕点坐标值,具体步骤如下:
Step1:将本次接收到的所有串口数据存入到静态数组,并将静态数组当前的接收总长度计数;
Step2:判断接收总长度是否小于帧长度,如果是则返回接收任务继续接收,否则进行下一步操作;
Step3:对静态数组中的数据进行帧头查找,如果找到帧头则将帧头前的错误数据过滤:将帧头所在位置后的数组数据平移到数组最前面,将接收总长度减去帧头所在位置,继续进行下一步;否则将数组最后一个字节内容赋值给数组第一个字节,数组接收总长度赋值为1并返回;
Step4:再次判断接收总长度是否小于帧长度,如果是则返回接收任务继续接收,否则进行下一步操作;
Step5:判断帧尾和校验和是否合法,如果合法则进行下一步,否则进行Step3同样步骤并返回;
Step6:根据协议规定获取数组中相应位置的数据进行屏幕点坐标解析;
(3)将屏幕点坐标值转为系统鼠标事件
如步骤(2)中获取了有效坐标点数据,执行虚拟鼠标mouse函数,从而将屏幕点击事件模拟成了系统鼠标事件。具体步骤如下:
Step1:记当前点坐标为临时变量tsInfo,前点坐标为静态变量bkInfo,初始化tsInfo和bkInfo的x坐标、y坐标、点状态status为0;
Step2:如果bkInfo的点状态为0,则将tsInfo点状态赋值给bkInfo点状态后返回;如果bkInfo点状态不为0,继续下一步;
Step3:判断tsInfo点状态和bkInfo点状态,根据两个点状态不同模拟相应的鼠标事件:
1)如果tsInfo点状态为连续状态并且bkInfo点坐标状态为点击状态,则模拟鼠标左键按下事件,连续点计数清零,记录起始坐标点位置为(x0,y0);
2)如果tsInfo点状态为连续状态且bkInfo点坐标状态为连续状态,连续点个数变量count自增加1,模拟鼠标移动事件;
3)如果tsInfo点状态为离开状态且bkInfo点状态为连续状态,分两种情况判断触发右键和左键:
①如果tsInfo的x坐标和y坐标跟x0,y0各自的差距小于q,并且count<10,则模拟左键弹起的鼠标事件;
②如果tsInfo的x坐标和y坐标跟x0,y0各自的差距小于q,并且count>=10,则模拟右键按下和弹起的鼠标事件;
利用上述技术方案,本发明可以实现vxwork系统下触摸屏串口驱动,该方法已经经过了算法验证,并进行了实验检验。结果标明,该方案可以缩短触摸屏响应事件时间,保证触摸屏设备在vxwork系统下正常使用并且可兼容他类型鼠标。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (9)
1.一种vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法,其特征在于,所述方法包括如下步骤:
步骤1:配置windml虚拟鼠标设备;
建立windml工程,在windml图形配置文件中添加虚拟鼠标设备;
步骤2:基于windml虚拟鼠标设备实现触摸屏驱动事件;该步骤包括:
步骤21:初始化串口设备使用环境;
步骤22:解析串口数据,获取触摸屏发送的屏幕点坐标值;
步骤23:将屏幕点坐标值转为系统鼠标事件;
通过以上步骤,可以实现触摸屏在vxwork系统下的串口驱动功能;
其中,所述步骤22中,通过串口接收任务获取的串口数据经过报文合法性判断后才能获取正确的屏幕点坐标值,具体为:
步骤221:将本次接收到的所有串口数据存入到静态数组,并将静态数组当前的接收总长度计数;
步骤222:判断接收总长度是否小于帧长度,如果是则返回接收任务继续接收,否则进行下一步操作;
步骤223:对静态数组中的数据进行帧头查找,如果找到帧头则将帧头前的错误数据过滤:将帧头所在位置后的数组数据平移到数组最前面,将接收总长度减去帧头所在位置,继续进行下一步;否则将数组最后一个字节内容赋值给数组第一个字节,数组接收总长度赋值为1并返回;
步骤224:再次判断接收总长度是否小于帧长度,如果是则返回接收任务继续接收,否则进行下一步操作;
步骤225:判断帧尾和校验和是否合法,如果合法则进行下一步,否则重复步骤223并返回;
步骤226:根据协议规定获取数组中相应位置的数据进行屏幕点坐标解析。
2.如权利要求1所述的vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法,其特征在于,所述步骤1中,在不影响vxworks系统正常使用的情况下,为解决系统需兼容其他类型鼠标设备的使用问题,需为系统单独配置一个虚拟鼠标设备;在workbench集成开发环境中,修改windml配置文件手动添加虚拟鼠标设备。
3.如权利要求2所述的vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法,其特征在于,所述步骤1包括:
步骤11:创建windml工程;
步骤12:在windml工程中打开config.windml文件添加display设备,根据需求添加PS2或者UBS鼠标;
步骤13:用文本编辑器打开config.windml中手动添加虚拟鼠标设备配置语句。
4.如权利要求1所述的vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法,其特征在于,所述步骤21包括:
首先,在vxworks系统所接的设备中,指定与触摸屏通信的串口设备描述符;
其次,通过vxworks系统函数open打开与触摸屏通信的串口设备;
然后,配置串口的波特率、校验位参数;
最后,创建串口接收任务进行触摸屏点坐标数据接收。
5.如权利要求1所述的vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法,其特征在于,所述步骤21中,初始化串口设备环境的过程如下:
步骤211:读取配置文件中串口设备端口号和波特率配置信息;
步骤212:获取串口设备描述符;
步骤213:使用vxworks系统函数open打开描述符所代表的串口设备并保存串口所指向的操作句柄;
步骤214:使用ioctl函数配置串口设备波特率和校验属性;
步骤215:创建串口接收任务;
步骤216:接收任务循环使用ioctl函数判断串口端口是否有新数据接收;当接收长度大于零时,则使用read函数读取串口数据。
6.如权利要求1所述的vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法,其特征在于,所述步骤22包括:
首先,通过串口接收任务,获取触摸屏设备发送的点击事件数据报文内容;
同时,串口接收处理对报文的进行合法性验证,对于不合法的报文进行滑窗处理,减少串口数据的丢包率;
如果报文合法,则获取点击事件数据报文内容中的屏幕点坐标(x,y)。
7.如权利要求1所述的vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法,其特征在于,所述步骤23中,为了将触摸屏点击事件模拟成鼠标点击事件,首先将点击触摸屏产生的屏幕坐标值作为虚拟鼠标设备的鼠标事件函数的输入参数;
然后,通过调用虚拟鼠标设备的鼠标事件函数mouse模拟成系统鼠标事件。
8.如权利要求1所述的vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法,其特征在于,所述步骤23中,如步骤22中获取了有效的屏幕点坐标数据,执行虚拟鼠标mouse函数,从而将屏幕点击事件模拟成了系统鼠标事件;具体步骤如下:
步骤231:记当前点坐标为临时变量tsInfo,前点坐标为静态变量bkInfo,初始化tsInfo和bkInfo的x坐标、y坐标、点状态status为0;
步骤232:如果bkInfo的点状态为0,则将tsInfo点状态赋值给bkInfo点状态后返回;如果bkInfo点状态不为0,继续下一步;
步骤233:判断tsInfo点状态和bkInfo点状态,根据两个点状态不同模拟相应的鼠标事件:
1)如果tsInfo点状态为连续状态并且bkInfo点坐标状态为点击状态,则模拟鼠标左键按下事件,连续点计数清零,记录起始坐标点位置为(x0,y0);
2)如果tsInfo点状态为连续状态且bkInfo点坐标状态为连续状态,连续点个数变量count自增加1,模拟鼠标移动事件;
3)如果tsInfo点状态为离开状态且bkInfo点状态为连续状态,分两种情况判断触发右键和左键:
①如果tsInfo的x坐标和y坐标跟x0,y0各自的差距小于q,并且count<10,则模拟左键弹起的鼠标事件;
②如果tsInfo的x坐标和y坐标跟x0,y0各自的差距小于q,并且count>=10,则模拟右键按下和弹起的鼠标事件。
9.如权利要求1所述的vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法,其特征在于,所述方法用于在vxworks平台下,解决触摸屏串口驱动问题。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010657373.1A CN111880683B (zh) | 2020-07-09 | 2020-07-09 | vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010657373.1A CN111880683B (zh) | 2020-07-09 | 2020-07-09 | vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111880683A CN111880683A (zh) | 2020-11-03 |
CN111880683B true CN111880683B (zh) | 2024-05-14 |
Family
ID=73151679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010657373.1A Active CN111880683B (zh) | 2020-07-09 | 2020-07-09 | vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111880683B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112748958A (zh) * | 2020-12-11 | 2021-05-04 | 中国船舶重工集团公司第七0九研究所 | 一种基于WindML图形系统的多种输入设备支持方法及装置 |
CN113050830B (zh) * | 2021-03-16 | 2023-03-14 | 上海商米科技集团股份有限公司 | 一种Android台式收银设备触摸屏抗干扰的处理方法 |
CN113656029B (zh) * | 2021-08-18 | 2023-08-01 | 天津津航计算技术研究所 | 一种Qt应用在VxWorks操作系统下响应触摸屏事件的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002082267A1 (en) * | 2001-04-06 | 2002-10-17 | Wind River Systems, Inc. | Fpga coprocessing system |
CN1852541A (zh) * | 2005-11-30 | 2006-10-25 | 华为技术有限公司 | 基站故障检测方法及故障检测系统 |
CN106201493A (zh) * | 2016-06-30 | 2016-12-07 | 成都金本华电子有限公司 | 基于vxWorks的ucGui系统 |
CN107391125A (zh) * | 2017-07-03 | 2017-11-24 | 中国船舶重工集团公司第七〇九研究所 | VxWorks系统下用于人机交互的用户界面设计方案 |
CN107943548A (zh) * | 2017-11-09 | 2018-04-20 | 西安电子工程研究所 | vxWorks下利用tilcon&openGL ES实现雷达终端显控方法 |
CN207689871U (zh) * | 2018-01-16 | 2018-08-03 | 国蓉科技有限公司 | 一种基于Vxworks和Linux的混合显示控制器 |
CN109375962A (zh) * | 2018-10-23 | 2019-02-22 | 北京计算机技术及应用研究所 | 基于嵌入式操作系统的汉字字符混合输出显示的实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102637127B (zh) * | 2012-02-24 | 2015-04-08 | 青岛海信电器股份有限公司 | 一种控制鼠标模块的方法及电子设备 |
-
2020
- 2020-07-09 CN CN202010657373.1A patent/CN111880683B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002082267A1 (en) * | 2001-04-06 | 2002-10-17 | Wind River Systems, Inc. | Fpga coprocessing system |
CN1852541A (zh) * | 2005-11-30 | 2006-10-25 | 华为技术有限公司 | 基站故障检测方法及故障检测系统 |
CN106201493A (zh) * | 2016-06-30 | 2016-12-07 | 成都金本华电子有限公司 | 基于vxWorks的ucGui系统 |
CN107391125A (zh) * | 2017-07-03 | 2017-11-24 | 中国船舶重工集团公司第七〇九研究所 | VxWorks系统下用于人机交互的用户界面设计方案 |
CN107943548A (zh) * | 2017-11-09 | 2018-04-20 | 西安电子工程研究所 | vxWorks下利用tilcon&openGL ES实现雷达终端显控方法 |
CN207689871U (zh) * | 2018-01-16 | 2018-08-03 | 国蓉科技有限公司 | 一种基于Vxworks和Linux的混合显示控制器 |
CN109375962A (zh) * | 2018-10-23 | 2019-02-22 | 北京计算机技术及应用研究所 | 基于嵌入式操作系统的汉字字符混合输出显示的实现方法 |
Non-Patent Citations (3)
Title |
---|
Design and implementation of control system software based on VxWorks multi-tasks;Zhen Zhang等;《 2010 3rd International Conference on Advanced Computer Theory and Engineering(ICACTE)》;第285-288页 * |
基于VxWorks 操作系统的触摸屏驱动实现;冯宁等;《上海船舶运输科学研究所学报》;第36卷(第2期);第49-61页 * |
基于WindML的操纵杆驱动设计及多指针实现;唐建等;《机电产品开发与创新》;第29卷(第2期);第64-67页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111880683A (zh) | 2020-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111880683B (zh) | vxworks系统下基于windml虚拟设备的触摸屏串口驱动设计方法 | |
CN106371847B (zh) | Windows xp系统下CPCI总线RS422通信驱动方法及系统 | |
CN110211364B (zh) | 一种测试系统、测试方法、电子设备及存储介质 | |
CN105760289A (zh) | 一种嵌入式系统的调试方法及装置 | |
CN112181393B (zh) | 前后端代码生成方法、装置、计算机设备及存储介质 | |
US10135684B2 (en) | Differential staging of devices in bulk enrollment | |
CN103378994A (zh) | 一种通信设备的测试方法及终端 | |
EP2801012B1 (en) | Supporting different event models using a single input source | |
CN111061743A (zh) | 数据加工方法、装置和电子设备 | |
CN114047970A (zh) | 一种autosar架构软件的配置方法及系统 | |
CN107239418B (zh) | 数据存储模块读写装置及i2c通讯方法 | |
CN107943625A (zh) | 一种可模拟多种通讯接口的mcu测试方法 | |
CN108287619A (zh) | 一种控制服务器kvm系统的方法、系统及可读存储介质 | |
US7296187B1 (en) | Hardware debug device having script-based host interface | |
CN111880682B (zh) | vxworks系统下基于校准过程的触摸屏串口驱动设计方法 | |
CN103391537A (zh) | 一种通过移动终端写入imei号的方法及装置 | |
CN103744757A (zh) | 一种基于arinc661的df文件验证方法 | |
CN114253644B (zh) | 下位机设备属性参数的输出方法及装置 | |
CN109783417B (zh) | 一种串口通讯装置及方法 | |
CN115688112A (zh) | 工控风险评估方法、装置、设备及存储介质 | |
CN111639116B (zh) | 数据访问连接会话保护方法以及装置 | |
CN113609052A (zh) | 基于fpga和微处理器的芯片模拟系统及实现方法 | |
CN113422756A (zh) | 验证数据传输方法、速率转换装置以及验证数据传输系统 | |
CN113985849A (zh) | 一种基于CANoe软件编写自动清读整车DTC读ECU版本的方法 | |
CN109542760B (zh) | 一种基于设备规约的虚拟原型变异测试用例生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |