中国触摸屏网
首页
触摸屏
一体机
触摸显示器
供求商机
产品展示
厂商资料
资讯中心
触摸软件
触摸论坛
触摸屏资讯 | 触控一体机 | 触摸屏屏幕 | 触摸屏机柜 | 触摸显示器 | 触摸控制器 | 自助终端 | 呼叫系统 | 触摸屏软件| 全国经销商
触摸屏外设 | 考勤排队机 | 触摸屏新品 | 解决之方案 | 选购与维护 | 驱动与软件 | 数字城市 | POS 系统 |LED电子大屏| 触摸屏论坛
导航: 首页 >> 选购与维护 >> 触摸屏技术 >> 正文 全国触摸屏销售热线:(点击查看)
全国触摸屏经销商 全国触摸屏经销商
·广东广州 ·广东深圳
·福建福州 ·福建厦门
·福建泉州 ·湖南长沙
·江西南昌 ·上 海 市
·江苏南京 ·江苏苏州
·北 京 市 ·山西太原
·山东济南 ·四川成都
·重 庆 市 ·云南昆明
·>>> 经销商加入指南
·>>> 经销商加入指南
汉王手写芯片的触摸屏控制器应用设计  
汉王手写芯片的触摸屏控制器应用设计
副标题:汉王手写芯片的触摸屏控制器应用设计
日期:2007-11-8 21:29:30     来源:中电网   编辑:51Touch 

(2)  设置HW006的混合工作模式
void ts_config(int* fd) {

write(*fd,&SET_96,2); //设置HW006波特率为9600bps
write(*fd,&SET_X1,2);
write(*fd,&SET_Y1,2);
write(*fd,&SET_X2,2);
write(*fd,&SET_Y2,2);//设置手写区域4个角的坐标
write(*fd,&WAIT_T,2);//设置汉字识别等待时间
write(*fd,®_SCOPE,2);//设置识别范围
write(*fd,®_CAN,2);//设置识别字候选个数

}

(3)  读串口
int ts_read(int *fd,unsigned char *buf) {
int res;
res=read(*fd,buf,3);
return res;
}

(4) 发送到有名管道
void sendFifo(unsigned char* buf,int i) {

fd=open(/dev/myfifo,O_WRONLY | O_NONBLOCK);
write(fd,buf,i);
close(fd);
}

3.2  改写Qt/Embedded层的触摸屏API

对读到的原始数据进行处理,包括变换、校正、分发等。Qt/Embedded中提供触摸屏API的文件是qwsmouse_qws.cpp,其中的类QCalibratedMouseHandler实现了对触摸屏数据的读取及其处理。本文所用的HW006是8位的,而显示分辨率是640×480,因此在读到触摸屏数据时还要进行转换。又因为HW006工作在混合模式状态下,因此需要把所读到的坐标数据和汉字码分开,将坐标数据进行转换后送给图形界面,并将汉字码送给输入法,这涉及到了不同进程之间通信的问题。不同进程之间的通信主要有管道、共享内存、消息队列等几种方式。其中: 共享内存速度最快,在传送大量数据时比较有优势;管道最容易实现,这里需要传送的数据量不大,因此选用管道的通信方式。

在qwsmouse_qws.cpp中,定义了一个对触摸屏数据进行处理的类——QSitsangTPanelHandlerPrivate。该类继承了QCalibratedMouseHandler。在它的构造函数中,利用Linux层提供的函数打开串口,设置HW006工作模式;再利用QT特有的信号和槽机制,定义一个QSocketNotifier类把串口描述符和QSitsangTPanelHandlerPrivate类的成员函数——读触摸屏数据函数readTSData()连接起来,实现对串口数据的自动监视与读取。

部分代码如下:
QSitsangTPanelHandlerPrivate::QSitsangTPanelHandlerPrivate(MouseProtocol, QString) {
fd=ts_open(/dev/ttyS1);

ts_config(fd);
QSocketNotifier *mouseNotifier;
TS_Notifier=new QSocketNotifier(*fd, QSocketNotifier::Read, this);
connect(TS_Notifier, SIGNAL(activated(int)),this, SLOT(readTSData()));
}
读触摸屏数据函数readTSData()的程序流程如图3所示。

 

图3  读触摸屏数据函数的流程

3.3  完成手写显示和识别字显示界面

手写输入法的具体实现是在Qtopia层,利用Qtopia提供的API来完成中文手写输入法的手写显示及识别字显示。在这里利用输入法插件接口——InputMethodInterface类,通过对该类的继承以及对该类成员函数的重载,完成手写输入法,最终编译成链接库形式,被Qtopia服务器自动调用。

class QTOPIA_PLUGIN_EXPORT UniKeyboardImpl : public InputMethodInterface {
public:

Q_REFCOUNT
virtual QWidget*inputMethod(QWidget*parent, Qt::WFlags f);
//需要重载的虚函数,在该函数中可以添加用户自定义的输入法类

private:
HandWrKeyboard *input; 
//HandWrKeyboard是手写输入法的类

};
函数virtual QWidget *inputMethod( QWidget *parent, Qt::WFlags f )重载为:
QWidget *UniKeyboardImpl::inputMethod( QWidget *parent, Qt::WFlags f ) {
if ( !input )
input=new HandWrKeyboard( parent, HandWriting, f );
return input;
}

从功能上手写输入法软件部分可分为两种:显示笔划轨迹与显示识别候选字。
触摸屏和HW006连接部分是完全的模拟量,由于液晶逆变器高频高压的干扰,笔划轨迹变得明显,与实际所写轨迹不符。除了需要在硬件上加滤波电容外,软件中也需要进行一定的修正。这里,采用3点均值滤波的方式来减小噪声干扰的影响。

 

在读到第一个点时,不做处理;读到2个点时,取这2个值的平均。这样,得到的坐标数据量不会不足,而且均值滤波可以很好地消除噪声的影响。

读汉字码是通过读有名管道来实现的。经过实验,发现HW006在发送汉字码时,偶尔会出现发送的个数与所设置的不符。我们设置的识别字个数是5个,共10字节的数据。但如果所写的汉字比较简单,HW006可能识别不了5个汉字,这样发送给管道的数据不足10字节,结果会造成最终显示错误。为此,在读取汉字码的开始和结束处分别加一个起始位和结束位,这样根据读取管道得到的汉字码个数和起始位、结束位来判断识别结束,将最终得到的识别汉字正确地显示出来。

4  结论

在“PXA255+Linux+Qtopia”平台上的运行及测试结果表明手写识别率能达到95%以上。由于HW006也实现了触摸屏控制器的功能,在硬件结构上完全可以代替原来的触摸屏控制器,因此并没有增加硬件的成本和复杂度。从上面的分析可以清楚地看出,此设计方案具有实用性和普遍意义,完全可以应用于其他嵌入式平台上。


 

本新闻共2页,当前在第2页  1  2  

对这篇文章您有更多的想法? 请去论坛发表意见吧   
“汉王手写芯片的触摸屏控制器应用设计” 的相关新闻
意法半导体ST推出四线阻性触摸屏控制器芯片飞思卡尔新款ColdFire LCD微处理器MCF5227x集成触
GTouch GH-MT-518 触摸屏控制器GTouch GH-TM-2501 触摸屏控制器
GTouch ET-1255F 触摸屏控制器GTouch ET-1232F 触摸屏控制器
GTouch GH-MT-018 触摸屏控制器GTouch GH-TM-2002 触摸屏控制器
GTouch GTC-0429-U 触摸屏控制器GTouch GTC-0429-R 触摸屏控制器
GTouch GTC-0429-RU 触摸屏控制器GTouch ET-1255C 触摸屏控制器
触摸屏及相关厂家
广东洪毅触摸设备
台湾嵩达光电科技
广东深越光电技术
台湾理义科技股份
北京联控兴业科技
台湾宇宙光电股份
3M中国触控系统部
南京华睿川电子科技
>> 触摸屏相关厂商加入
站内搜索 站内搜索
软件开发 软件开发
Toucher2.2在线演示
时代广场软件首页
荣威触摸屏查询软件首页
眉山经济贸易委员会软件首页
推荐新闻 推荐新闻
友达、华映将推新品,电
触摸屏浏览器Toucher V4
触控屏技术能否开启手机
专门为零售商开发的触摸
触摸屏浏览器Toucher触摸
在便携设备中应用电容式
KTV市场触摸屏 又掀娱乐
加入收藏网站地图友情链接联系我们  |  广告联系全国销售网络
    网站广告、经销商加盟、触摸屏软件销售:028-87439508 13183843395 028-66219290 联系人:张小姐 传真:028-87439508 全国各地经销商如下:
   广 州   020-87599875 深 圳   0755-21949677 福 州   0591-87818596 厦 门   0592-5615268 泉 州   0595-88150378
   湖 南   15863470449 江 西   0791-6283683 上 海   13916222245 南 京   025-83610010 苏 州   0512-65581867
   北 京   010-62631382 山 西   0351-8390152 济 南   13396407999 四 川   028-81934978 重 庆   023-68609756
   云 南   0871-5109466 其 他… 028-87439508   >>> 经销商加入指南    
电子邮件: 51touch(A)126.com 请将地址中的"(A)"改成"@",避免垃圾邮件出此下策,望谅
版权所有 Copyright© 2003-2008 中国触摸屏网 地址:成都市晋吉南路146号 电话:028-87439508  13183843395  028-66219290

在线咨询QQ: 

触摸屏、触摸屏软件、触控一体机咨询 43361182 触摸屏、触摸屏软件、触控一体机咨询 893008608 MSN 帐号:touch8(A)gmail.com 将"(A)"改成"@"即可