Wince6.0触摸屏校准算法详解

版权申诉
0 下载量 60 浏览量 更新于2024-10-18 收藏 11KB RAR 举报
资源摘要信息:"在Windows CE(wince)6.0平台上,针对触摸屏进行校准的算法源码被包含在压缩包TCH_CAL.rar中,具体实现文件为tchpdd.c。" 在深入探讨该资源的知识点之前,首先需要对Windows CE和触摸屏校准技术有一个基础的了解。Windows CE是微软开发的一款实时操作系统,面向具有有限资源的设备,如嵌入式系统和移动设备。它属于Windows家族的一个分支,但是针对小型设备进行了优化。Windows CE 6.0是该平台的一个版本,发布于2006年,提供了对多种硬件和软件功能的支持。 触摸屏校准是指对触摸屏的坐标系统进行调整,以确保用户的触摸输入能够正确地映射到屏幕上显示的图形用户界面上。校准过程通常包括测量和修正触摸屏感应点与显示输出之间的偏差,确保高精度和良好的用户体验。在嵌入式设备或者手持设备中,触摸屏是用户交互的主要接口,因此,校准的重要性不言而喻。 标题中提到的“tchpdd.c”文件是源代码文件,它实现了触摸屏校准的算法。C语言是一种广泛使用的通用编程语言,非常适合嵌入式系统开发,因为C语言编译器小巧高效,而且它允许开发者进行底层硬件操作。在wince6.0的开发环境中,使用Visual C++(注意“visual_c”标签中的“C”字母应为大写,因为Visual C++是微软的C++开发工具集)能够进行系统级和应用级的编程,提供丰富的库和工具来支持Windows CE平台的开发。 压缩文件“TCH_CAL.rar”包含一个或多个文件,但根据提供的文件名称列表,只有一个“tchpdd.c”文件。在进行触摸屏校准的开发时,源代码文件是必需的。它将包含用于初始化校准过程、读取触摸输入、计算校正参数和应用校正设置的函数和逻辑。 校准算法通常会要求用户触摸屏幕上的几个预定义位置点。校准软件通过测量用户实际触摸的位置和预期位置之间的差异来计算校准参数。然后,这些参数被用来调整后续触摸输入的坐标值,从而提升准确性。 对这些知识点进行总结,以下是关于“TCH_CAL.rar_tchpdd.c wince_visual c_wince6.0_触摸屏校准”的详细知识点: 1. Windows CE 6.0:是一个为有限资源的设备而设计的操作系统,支持广泛的手持和嵌入式设备。 2. 触摸屏校准:这是确保用户触摸输入准确映射到屏幕显示的坐标系统调整过程,对于交互设备的操作体验至关重要。 3. tchpdd.c源码文件:该文件包含了用于wince6.0平台的触摸屏校准算法实现。开发者可以使用Visual C++在Windows CE环境下编译和运行该源代码。 4. Visual C++开发工具集:在Windows CE平台开发中常用的集成开发环境(IDE),为开发者提供了编写、调试和编译程序的工具。 5. 算法细节:校准算法可能涉及用户交互指导、坐标读取、偏差计算和校正值应用。校准点可能由屏幕上的固定点组成,用户需要按照提示触摸这些点。 6. 压缩文件TCH_CAL.rar:包含用于触摸屏校准的相关文件。在这个案例中,文件名为tchpdd.c。 掌握这些知识点,开发者可以针对特定的硬件和应用需求,对wince6.0平台上的触摸屏进行精确的校准工作,以保证最终用户获得满意的交互体验。
2018-11-11 上传
2022-03-13 上传

帮我把一下lisp代码转成C#,实现相同的功能:(vl-load-com) ; 加载VL函数 (setq source_text nil) ; 设源文字为全局变量 (defun c:22 (/ en en_data en1 en1_data ent entype i ob pt ss ss_data) (setvar "cmdecho" 0) (setvar "ErrNo" 0) (command "_.undo" "begin") (if (= source_text nil) (if (setq en (nentsel "\n请选择源文字(右键退出):")) (setq en_data (entget (car en)) entype (cdr (assoc 0 en_data)) source_text (if (= entype "ATTDEF")(cdr (assoc 2 en_data))(cdr (assoc 1 en_data)));如果是属性字,则取“标记”为源文字 ) ) (if (and (= (setq en (nentsel (strcat "\n请选择源文字: 默认:" source_text))) nil) (= (getvar "ErrNo") 52)) (setvar "ErrNo" 0) (if en (setq en_data (entget (car en)) entype (cdr (assoc 0 en_data)) source_text (if (= entype "ATTDEF")(cdr (assoc 2 en_data))(cdr (assoc 1 en_data))) ) (setvar "ErrNo" 52) ) ) ) (prompt "\n请选择要修改内容的文字:") (while (/= (getvar "ErrNo") 52) (prompt (strcat "\n文字内容将被刷成:" source_text)) (if (and (setq ss (ssget ":S" '((0 . "*TEXT,TCH_DRAWINGNAME,TCH_ELEVATION,INSERT,ATTDEF,ATTRIB")))) source_text) (progn (if (= (caar (setq ss_data (ssnamex ss 0))) 1) (progn ; 点选时 (setq ent (ssname ss 0) pt (cadr (last (car ss_data))) en1 (car (nentselp pt)) en1_data (entget en1) entype (cdr (assoc 0 en1_data)) ob (vlax-ename->vla-object en1) ) (wenzishua entype ob source_text en1 ent) (princ) ) (progn ; 框选时 (setq i 0) (repeat (sslength ss) (setq en1 (ssname ss i) ent en1 en1_data (entget en1) entype (cdr (assoc 0 en1_data)) ob (vlax-ename->vla-object en1) ) (wenzishua entype ob source_text en1 ent) (setq i (1+ i)) ) ; end repeat ) ) ) ) ) ; end while (command ".undo" "_end") (setvar "ErrNo" 0) (setvar "cmdecho" 1) (princ) ) (defun wenzishua (entype ob source_text en1 ent) ; cad文字的内容格式刷 (if (or (= entype "TEXT") (= entype "MTEXT") ) (progn (vla-put-TextString ob source_text) (entupd en1) (entupd ent) ) ) ; 天正文字的内容格式刷 (if (or (= entype "TCH_TEXT") (= entype "TCH_ELEVATION") ) (progn (vlax-put-property ob 'Text source_text) (entupd en1) (entupd ent) ) ) ; 天正图名、标高的内容格式刷 (if (= entype "TCH_DRAWINGNAME") (progn (vlax-put-property ob 'NameText source_text) (entupd en1) (entupd ent) ) ) ; 属性文字 只改"标记" (if (= entype "ATTDEF") (progn (vla-put-TagString ob source_text);改标记 (entupd en1) (entupd ent) ) ) ; 块中属性文字 只改"默认" (if (= entype "ATTRIB") (progn (vla-put-TextString ob source_text);改默认 (entupd en1) (entupd ent) ) ) )

2023-06-01 上传