Ctp驱动的移植修改 v1.0
CTP各流程软件优缺点
网屏汇智 优点:操作简单,容易上手!最新版本也支持中文标记,非常的方便。热文件夹工作对单张海报类的作业非常适用! 缺点:拼散版功能太弱,散版模版非常繁琐!拆双P文件功能太差,容易出问题!陷印功能不是怎么强大,对K100叠印处理不是很理想!
方正畅流 单位一直用这个报业版· 优点:写好脚本 自动化程式不错 和其他方正软件配合使用效率更高 适合大的局域网式集团出版使用 缺点:封闭 相对的功能偏少 太多的文件都给加密了 不能多任务同时进行 很多功能就是鸡肋,有些大广告加完网后就莫名其妙的缺色了
崭新印通: 它只是一个排版和下1 BIT TIF的软件,算不上是流程,它只能与其他流程一个RIP才能组合成一个生产流程,操作比较繁琐,
APOGEEX爱克发 优点:界面比较直观点,拼版相对比较灵活 缺点:要多个服务器组成,不能是单个服务器,管理比较难,多任务不能同时进行,TRAP功能不好。
印能捷——最完美的印前流程 印能捷是基于PDF的印前工作流程管理系统,在运用PDF的过程中,它将印前系列工作优化组织起来.减少复杂的手工工艺,再现印前工艺的精捍。印能捷可以完全自动处理、管理和完成文 件转换、优化、陷印、色彩管理、打样、拼大版、软片及PS印版输出和存档的任务。使印前工艺更加紧凑从而提高生产效益,缩短工艺时间。 印能捷的工作站程序,能够在不影响服务器的情况下,在多种系统环境中运用自如,而利用网络组成的工作站分散式操作。使处理输出到数字成像设备的关键流程。印能捷可扩充到多级服 务器和多用户环境中。印能捷JTP模块可按需搭配。并能自动控制资源平衡,确保系统始终保持最大的处理能力。 印能捷基于AdobeExtreme技术,它通过工作流程处理计划和工作传票处理器完成对作业的控制和管理。 印能捷包含一个ORACLE数据库,智能地存储着作业状态目前的处理进度和异常。 使用印能捷,可保证整个印刷厂的工艺能轻松定位在指定的服务器上,印能捷目前是克里奥的主流软件流程。能保证在客户正常工作的情况下,进行无缝智能升级和远程故障诊断等系列工 作。 真正的PDF工作流程 在各商家针对PDF大战的时候,为了体现自己的技术成果,多少在PDF的结构中加入了一些自己的东西,无法用通用的ADOBE ACROBAT进行处理,而克里奥的PRINERGY,运用PDF和PJTF与 AdobeExtreme技术结合在一起。用Acrobat 方便处理,使印能捷为印前作业带来了前所未有的控制手段、整体协调和稳定性。 就算是复杂的拼大版过程,印能捷一样能处理得应用自如,在流程中能处理拼大版的格式文件,在当今的CTP流程中并不多见,由此可见印能捷的强大功能,同时印能捷开放的结构可接受 多种工业标准文件格式并可连接克里奥的所有输出设备。 输出前的修改 号称能够最后一刻修改文件的流程不少,而印能捷的自动化处理过程,能绑定所有的输入和输出文件,这样在修改的时候,不会因找不到相应的文件而出错,印能捷的处理过程不但是紧密 的而且是人性化的,你可以设定你喜欢的快捷方式以及不同的工具栏,保证你在操作过程中得心应手,在拼完大版后的VPS的屏幕打样中,如果发现了文件的错误,你可以方便地将你需要 的文件再进行多次处理而不会影响整个页面。 印能捷流程处理编辑器能编辑你想处理的方式以及流程方法,并且能按你的要求一次完成所有的工作,在处理完成单个文件的同时你可以随时加入相关的大版模版,加入处理好的文件你就 可以观察到最终的结果,印能捷在工作流程的前端解释作业,但直到最后输出时才分色加网,这就给印刷厂带来了极大的灵活性。独立的页面只有在最后输出到软片或印版上时才会被排在一 快速掌握 印能捷基于客户/服务器体系结构,是由数据库支持的工作流程管理系统。为了能优化利用现有的硬件系统。大量计算工作会自动分配给多个服务器完成。再Oracle数据库中,作业可通过客 印能捷可记录生产车间的所有工作,提供连续的工作状态记录,它实际上是一个杰出的记忆系统。能记录计算机的每一步操作。 操作员可在苹果电脑或PC上自由操作用Java语言编写的印能捷客户端软件。几个操作员可同时对一个作业进行并行处理,并能实时看到工作的进度。由于印前阶段交流和可见性越来越好,交 招招领先 作为工作流程的新动力,印能捷打开了通向完全数字化工艺流程的大门。所有生产工艺从半色调打样、软片或印版输出以及数字印刷机的控制都实现了自动化、生产率再上新台阶。 印能捷工作流程的第一步是精炼处理。精炼处理器将印前数据转化为可输出的PDF文件,并进行一系列的页面预检查以监控源文件。PDF和PostSCcipt文件可直接接受,CT/LW或TIFF/IT文件 精炼处理器的第二步工作是进行色彩管理,这个方案基于世界顶级的海德堡色彩匹配方法。印能捷不仅能做模拟印刷效果的页面或版式软打样,还能直接将传过来的文件立即转换到输出设备 精炼处理器第三步要做的是自动陷印。它基于久负盛名的DaVinci算法。它包含一个工作传票,文件一经转成单个的PDF页面,就立刻进行陷印处理。而且操作员还可对每页单独进行交互式陷 第四步也是最后一步是在印能捷友好用户界面上生成预视图。印能捷能将PDF页面和工作传票高速分色加网,转换成输出机用的位图信意。加网方式有Hos如网,钻石加网,Staccato加网和M 文件一旦完成精炼处理,印能捷就可对准备好的PDF文件进行页面打样和平大版PDF文件的拼大版可以通过海德堡Signastation或PREPS拼版软件生成的工作传票来实现。当然也可采用任何其 输出是通过印能捷主服务器印能捷专门的分色加网或德尔塔技术来完成的。 一览众山小 印能捷可以全速驱动软片照排机和计算机直接制版机等输出设备,最大限度地减少了数据传输的瓶颈阻碍。这使得印能捷工作流程的自动化成为可能,事实上印能捷的分色加网是如此地快, 前途一片光明 最大的自动化,最小的工作负担。印能捷以CIP3/PPF文件形式自动生成色彩特性文件。由于采用了印刷机的油墨预设定数据,再也没有必要扫描印版。印刷机的准备时间和过版纸的浪费大大 您可借助Signastation生成的数据,通过波拉刀计算机裁切软件自动调整裁切机。在不久的将来您也能自动设定带有CIP3/PPF选项的折页机。 梦想成真 图像设计公司、分色制版中心、商业印刷厂、出版社和产品样本印刷商都能享受印能捷给印刷业带来的高效和灵活性。如果您想在激烈竞争的市场中独占鳌头。极大地提高生产效率,获得最 作为客户/服务器的系统解决方案、印能捷可以灵活适应生产能力的变化。不管是苹果电脑还是PC,终端的数量都可不断增加、作为一个多服务器的解决方案。系统负荷可以分配在几个计算机 印能揍让您梦寐以求的自动化工作流程变成了现实。它高速的分色加网既简单又快捷,作业管理结构清晰。印能捷为您的工作流程注入了全新的活力。
全志A20 CTP与Sensor自动检测使用文档_20130617
适用于 A20 相对应平台。
1.3 相关人员
使用自动加载功能以及相关的开发与维护人员应该仔细阅读本文档。
1.4 文档介绍
本文档第二章主要说明自动检测模块的功能以及实现原理,需要注意的事项;第三章主 要说明自动检测功能的使用步骤;第四章说明如果添加一个没有支持的设备到自动检测中 来。
1.5 说明
3.自动检测功能使用步骤........................................................................................................ - 12 3.1 Gsensor 使用步骤..................................................................................................... - 12 3.2 CTP 使用步骤............................................................................................................. - 15 -
少时间之后才能进行操作,确认 I2C 操作的可行性。 � 特殊特性。如必须通过 i2c 总线进行第二次读取后,才能读取到正确的数值,目前该模
块中 retry 次数为四次,即当需要重试的次数超过四次时,请做相应的修改。
(2)同类设备,I2C 地址相同时
同类设备中,出现 I2C 地址冲突时,如果不能凭借设备的特有特性(chip id 值等)进 行区分,特别是没有 chip id 值的设备,在使用自动检测时,一定要将不使用的相同地址 的设备剔除掉,可以在 sys_config.fex 文件的扫描列表中,在想要剔除的设备的名称后写 0 即可。
CANopen使用手册_V1.01_.
ProNet 伺服驱动器ESTUNCANopen 使用手册修订记录日期修订版本描述作者初稿完成移振华增加第8章移振华1、第3,3,1章“PDO 参数”,修正PDO 默认表格中的COB-ID 和default 值;易健2、增加第9章“通讯例程”——目录——1、概述............................................................................................................................................ . (5)1.1 CAN 主要相关文档 (5)1.2 本手册使用的术语和缩语 (5)1.3 CAN OPEN 概述 (6)2、接线和连接 (7)3、CANOPEN 通讯 (8)3.1 CAN 标识符分配表 (9)3.2 服务数据对象SDO (10)3.3 过程数据对象PDO (12)3.3.1 PDO参数 (14)3.4 SYNC 报文 (20)3.5 E MERGENCY 报文 (21)3.6 HEARTBEAT 报文 (23)3.7网络管理(NMT ) (24)4、单位换算单元(FACTOR GROUP) (26)4.1 单位换算相关参数 (27)4.1.1 position factor (27)4.1.2 velocity factor (29)4.1.3 acceleration factor (30)5、位置控制功能 (31)5.1 位置控制相关参数 (33)6、设备控制 (35)6.1 控制状态机 (35)6.2 设备控制相关参数 (36)6.2.1 controlword (37)6.2.2 statusword (38)6.2.3shutdown_option_code (3)96.2.4disable_operation_option_code (40)6.2.5quick_stop_option_code (4)6.2.6halt_option_code (41)6.2.7fault_reaction_option_code (41)7、控制模式 (42)7.1 控制模式相关参数 (42)7.1.1modes_of_operation (42)7.1.2modes_of_operation_display (43)7.2 回零模式(HOMINGMODE ) (44)7.2.1 回零模式的控制字 (44)7.2.2 回零模式的状态字 (44)7.2.3 回零模式相关参数 (45)7.2.4 回零方法 (47)7.3 速度控制模式(PROFILE VELOCITYMODE ) (49)7.3.1速度模式的控制字 (49)7.3.2 速度模式的状态字 (49)7.3.3 速度控制模式相关参数 (49)7.4 位置控制模式(PROFILE POSITIONMODE ) (53)7.4.1 位置模式的控制字 (53)7.4.2 位置模式的状态字 (53)7.4.3 位置控制相关参数 (54)7.4.4 功能描述 (56)8、CAN 通讯相关参数 (58)9、CANOPEN 通讯例程 (59)9.1 SDO 操作; (59)9.2 PDO 配置 (59)9.3 位置控制例子(P ROFILE P OSITON MODE ) (60)9.4 位置插补控制(I NTERPLATE P OSITION MODE ) (61)9.5 速度控制(P ROFILE V ELOCITY MODE ) (62)9.6 回零 (6)2对象字典表 (64)1、概述1.1 CAN 主要相关文档 CiA DS 301 V 4.01: CiA CANopen Communication Profilefor Industrial Systems - based on CALCiA DSP 402 V 2.0: CiA CANopen Device Profile1.2 本手册使用的术语和缩语CANCiACOBEDSLMTNMTOD参数PDORORWSDO控制器局域网在自动化国际用户和制造商协会中的 CAN。
3_CTP制版系统的基本工作原理[兼容模式]
灰度级 =(记录精度 / 加网线数)2 +1
光点小
组成网点的光点数多
灰度等级多
ቤተ መጻሕፍቲ ባይዱ
或 在保证相同灰度等级的 条件下使网点尺寸更小, 即网线数高
激光照排机的主要性能参数
重复精度
套准精度:也叫对位精度或重复精度,各色版上图 像位置的准确程度,反应了两张胶片的图像相互之 间不能重叠的误差。通常以第一色和最后一色版重 叠的误差计算。照排机的结构对重复精度影响很 大。
照排速度还受到RIP速度的限制
照排速度与分辨率有直接的关系,分辨率越高,速 度越慢
激光照排走片图
进片辊
精密驱 首打孔 尾打孔 动组件
供片盒 隋环
激光
双缓存 出片系 统
裁刀
连线冲 片机
• 内置首尾打孔是选配件
激光照排机性能评价
网点质量
用专业放大镜观测胶片上的网点。网点形状是否符 合设定,清晰不发虚,边缘平滑无毛刺。输出的分 辨率、胶片质量、震动、冲洗状况等因素对网点的 质量有一定影响。
有差别 直接制版机也同样使用了内鼓式、外鼓式、平台式和曲线
式技术 与照排机不同的是,直接制版机采用的技术往往与记录材
料 ⎯ 印版有关。
主要内容
CTP基本工作原理 CTP制版工艺的通用基本部件 CTP设备的结构 CTP制版与传统制版的比较 影响CTP制版质量的因素
工作原理
光学系统 电路系统 机械系统
光学系统
多束极细激光
声
光
调
制
激光器
器
计算机中图像信息
RIP还具有控制输出设备的作用,及控制输 出版面的其他信息,如输出幅面大小,是 否旋转版面,是否输出反字,是否拆页, 是否输出分色,输出页面份数。
CTP知识讲解
1.2mm
不同厂家工艺略有不同,需要根 据供应商实际工艺制作,主要是 需要考虑供应商的制程加工良率
设计注意事项:
❖ COVER GLASS相关:
❖ COVER GLASS的形状尽量不要太异形,越异形的外观,对抗冲击强度影响越大。 ❖ 在COVER GLASS上尽量减少通孔的数量,因为通孔数量多,整体强度下降,不良
自容和互容区别
G+F结构
G+F+F结构
G+G结构
OGS结构
PGS结构
GG---DITO结构
GG---SITO结构
电容屏成本构成
电容式触控面板驱动IC
❖国外
▪ Atmel , Cypress , Synaptics , 三星
❖台系厂商
▪ Focaltech ,Goodix , Elan , Himax, Novetek Mstar , ITE
❖ 电容TP IC布件区域应远离天线、蓝牙、FM、WIFI等模块,避免干扰。 ❖ CTP 在ESD防护方面需要注意CTP与机壳的密封结构,同时缝隙尽量远离CTP 的
侧边走线区等敏感区域。 ❖ 听筒孔易导致ESD失效,出线FPC位置应远离出音孔,且在FPC上做上相应的露铜
接地。
❖ 4.4.5 ADH相关:
开槽部分 残留窄边
玻璃厚度T=1.00mm 1.2mm成本上比 1.4mm高出很多
槽深3.0mm以上 槽深3.0mm以内
Smbol
A
B C D E G F
TYPE
Min
NOTE
3.5mm以上
2.5mm以上
1.5mm以上 1.4mm以上 R0.7mm以上
R0.5mm以上
R1.5mm以上 R0.7mm以上 1.0mm以上
CTP操作技巧
操作技巧:CTP系统作业标准化管理(一)四川省印刷制版中心有限公司领导创新观念,创新技术,最近引进柯达全胜800Ⅲ热敏型计算机直接制版机及印能捷数字化工作流程,采用国际顶尖的柯达视方佳调频加网技术,结合柯达方形光点热敏成像技术,进行高品质印刷,创建公司产品的特色和亮点,以特色来增加产品的附加值,以亮点来吸引客户,力争在蓝海市场双桨遨游。
该公司领导充分认识到引进先进的CTP系统,只是企业提升自我的外因条件,如何对CTP系统实施标准化管理?如何规范前端的文件?如何应用调频网与印刷工艺结合?是企业提升自我的内因,外因通过内因起作用,才能发挥CTP系统的先进性。
因此,公司领导从一开始引进CTP系统就设计以CTP及其数字化工作流程来整合生产系统,建立具有本企业特色的技术体系和质量管理体系。
该公司对CTP系统作业的标准化管理做得很细,执行得很严,从而保证CTP系统高效率、高质量的动作。
下面作简要介绍。
A印能捷EVO之DTP简易流程,如图:图1ACTP操作标准化、规范化管理CTP全胜800Ⅲ热敏型计算机直接制版机操作的标准化、规范化、数据化管理,是保证系统流程准确,调整运转和高质、高效的重要保证。
因此,必须精心实施标准化、规范化、数据化管理。
一、CTP系统的工艺流程设计如图:二、CTP全胜800Ⅲ制版机操作流程规范目的:规范CIP系统操作流程,保证系统流程准确,高效运转。
工作程序:1、文件的读取①光盘文件的复制。
光盘驱动器为H盘,打开光盘内容后,将所需制版的文件复制到CIP服务器指定子文件夹,为防止混淆,该子文件夹应为相应印件的专用文件夹。
②通过网卡接口进行文件复制将CIP服务器与有印件文件的电脑连接,打开“网上领居”,找到所需复制的文件,将文件复制到CIP服务器(名称为EVO,工作组为workgroup盘的指定子文件夹JobData.)③注意:CTP服务器仅接受以下文件格式:PDF;PostScript Levell,2and3;EPS(Encapsulated PostScript);DCS and DCS2(both single and multi-five versions);TIFF/IT-PI;Brisque CT/LW;256Tiff跟1位Tiff。
CTP常见的问题解决
CTP常见的问题解决CTP, 问题解决1.尺寸问题(1)制作的文件尺寸与实际所需的尺寸不相符。
(2)制作文件时未考虑到所需的出血量。
(3)文字或图像距离成品裁切线太近。
解决方法:(1)将“文档设定”/“页面尺寸”定义为成品尺寸。
(2)制作文件时要考虑页面的出血量,一般为3mm。
(3)文字或图像距离成品裁切线至少为5mm,最好超过8mm。
2.图像问题(1)彩色图像或图形采用了RGB色彩模式。
(2)图像精度未达到印刷基本要求,如分辨力太低。
(3)以JPEG格式压缩的图像,层次,细节的信息丢失。
(4)电分或扫描后未修图,在图像上留下脏点。
(5)链接或重新置入图像时出错。
解决方法:(1)要求设计和制作人员对印刷常规知识有最基本的了解,并具备一定的美学常识。
(2)实现CTP系统的管理标准化。
流程规范化,并明确各工序的要求。
建议做法:(1)要对分色图像质量有最基本的要求。
(2)印刷时一般采用CMYK的色彩模式。
(3)图像要有足够的精度。
对于大图像,彩色图像的分辨力通常为300dpi或350dpi,Bitmap 图像的分辨力通常为1200dpi,至少为800dpi,以免产生锯齿。
(4)电分时设置要准确,文件要能忠实再现原稿,清晰度高,细节丰富,层次好。
(5)电分后做校色处理时要求修图,以免留下脏点。
(6)尽可能不要压缩图像,尤其是压缩为JPEG格式的图像不能用于印刷。
(7)规范文件命名,避免同名文件的出现。
重新链接图像时一定要小心,一旦出错就是致命的,所以不可掉以轻心,以免造成重大损失。
3.字体问题对于PS字库没有的字体,尤其是中文字体,一般采用Truetype字体下载,但容易产生漏字或字的移位。
解决方法:(1)购买相应的PS字库或CID字库。
(2)为CTP系统安装常用的字库,并要求客户使用相应字库的字体。
(3)对于缺少的字体,可以与客户商量用近似的字体代替,但要注意字的移位;也可以要求客户提供字体,尤其是外文。
【转】MTKTP驱动移植
【转】MTKTP驱动移植对于MTK TP驱动移植⼀般分为六部分:1、硬件IO⼝配置;2、TP驱动移植;3、I2C通信;4、中断触发;5、数据上报;6、虚拟按键;硬件电路:1、GPIO配置打开 mediatek\dct\DrvGen.exe选择 mediatek\custom\xiaoxi\kernel\dct\dct\codegen.dws 配置⽂件配置EINT7_CTP引脚、CTP_RST复位引脚2、TP驱动移植(以ft5x16为例)在\mediatek\custom\common\kernel\touchpanel⽬录下创建ft5x16,将供应商提供的驱动驱动资料拷贝到该⽬录下;修改配置⽂件:mediatek\config\prj\ProjectConfig.mk下的CUSTOM_KERNEL_TOUCHPANEL其值由改为ft5x16,表明对应ft5x16⼦⽬录;打开ft5x16.c⽂件,修改⼀下:1static struct i2c_board_info __initdata ft5x16_i2c_tpd={ I2C_BOARD_INFO("ft5x16", (0x70>>1))}; //"ft5x16"为设备名,设备地址为⾼7位23static struct tpd_driver_t tpd_device_driver = {4 .tpd_device_name = "FT5x16",5 .tpd_local_init = tpd_local_init,6 .suspend = tpd_suspend,7 .resume = tpd_resume,8 #ifdef TPD_HAVE_BUTTON9 .tpd_have_button = 1,10#else11 .tpd_have_button = 0,12#endif13 };1415/* called when loaded into kernel */16static int __init tpd_driver_init(void) {17 printk("MediaTek FT5x16 touch panel driver init\n");18/* 注册板级设备信息 */19 i2c_register_board_info(IIC_PORT, &ft5x16_i2c_tpd, 1); //IIC_PORT表⽰i2c控制器号,由电路原理图可知TP设备连接到i2c控制器0,ft5x16_i2c_tpd为i2c设备结构,1表⽰该i2c_board_info个数20if(tpd_driver_add(&tpd_device_driver) < 0)21 printk("add FT5x16 driver failed\n");22return0;23 }重新编译:./mk n k && ./mk bootimage3、I2C通信新驱动编译进内核,启动内核后,我们怎样验证i2c接⼝能够正常通信呢?系统启动后通过串⼝或adb shell进⼊系统命令⾏窗⼝,查询/sys/bus/i2c/devices⽬录下是否有0-0038信息,查询/sys/bus/i2c/drivers⽬录下是否存在‘ft5x16’设备名;先保证i2c能够正常通信;4、中断触发中断注册函数:mt_eint_registration(CUST_EINT_TOUCH_PANEL_NUM, CUST_EINT_TOUCH_PANEL_TYPE, tpd_eint_interrupt_handler, 1);//tpd_eint_interrupt_handler函数为中断回调函数5、数据上报当触摸屏产⽣中断的时候就会调⽤到该接⼝;然后在中断处理函数中唤醒运⾏在⼦线程中的等待队列,再通过⼦线程获取TP数据并上报到系统;1static DECLARE_WAIT_QUEUE_HEAD(waiter); //初始化等待队列23 thread = kthread_run(touch_event_handler, 0, TPD_DEVICE); //新建线程45static int touch_event_handler(void *unused)6 {7 ......8do9 {10 mt_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM);11 set_current_state(TASK_INTERRUPTIBLE);12 wait_event_interruptible(waiter,tpd_flag!=0); //等待队列进⼊休眠,等待唤醒13 tpd_flag = 0;14 set_current_state(TASK_RUNNING);15 ......16if (tpd_touchinfo(&cinfo, &pinfo)) //获取TP数据17 {18//TPD_DEBUG("point_num = %d\n",point_num);19 TPD_DEBUG_SET_TIME;20if(point_num >0)21 {22for(i =0; i<point_num; i++)//only support 3 point23 {24 cinfo.x[i] = cinfo.x[i];25 cinfo.y[i] = cinfo.y[i];2627 tpd_down(cinfo.x[i], cinfo.y[i], cinfo.id[i]); //上报按下数据28 printk(KERN_DEBUG"----calibration----- X:%4d, Y:%4d, P:%4d \n", cinfo.x[i], cinfo.y[i], cinfo.id[i]);29 }30 input_sync(tpd->dev);31 }32else33 {34 tpd_up(cinfo.x[0], cinfo.y[0]); //上报弹起数据35//TPD_DEBUG("release --->\n");36//input_mt_sync(tpd->dev);37 input_sync(tpd->dev);38 }39 }40 ......4142 }while(!kthread_should_stop());4344return0;45 }TP数据可以通过打印的⽅式进⾏查看,也可以激活‘系统设置’中‘开发者选项’的‘指针位置’,现在触摸操作在LCD的轨迹,也可以在packages\apps\Launcher2\src\com\android\launcher2\Launcher.java的onCreate⽅法最后添加Settings.System.putInt(this.getContentResolver(),Settings.System.POINTER_LOCATION, 1); 在Launcher中开启‘指针位置’功能(需要mm Launcher模块并重新打包和烧录system.img⽂件);注:如果TP获取到的数据⽐较乱的时候建议通过打开‘指针位置’功能进⾏查看,排除TP固件分辨与LCD没对应等问题;6、虚拟按键1static struct tpd_driver_t tpd_device_driver = {2 .tpd_device_name = "FT5x16",3 .tpd_local_init = tpd_local_init,4 .suspend = tpd_suspend,5 .resume = tpd_resume,6 #ifdef TPD_HAVE_BUTTON7 .tpd_have_button = 1,8#else9 .tpd_have_button = 0,10#endif11 };从tpd_driver_t结构可知tpd_have_button成员为虚拟按键标志位;由宏TPD_HAVA_BUTTON开关决定的,宏定义在tpd_custom_fts.h中;在tpd_custom_fts.h中定义了⼀系列关于虚拟按键的宏:#define TPD_HAVE_BUTTON //虚拟按键开关#define TPD_BUTTON_WIDTH (200) //按键宽度#define TPD_BUTTON_HEIGH (100) //按键⾼度#define TPD_KEY_COUNT 3 //按键个数#define TPD_KEYS {KEY_MENU, KEY_HOMEPAGE, KEY_BACK} //按键对应的功能#define TPD_KEYS_DIM {{80,900,TPD_BUTTON_WIDTH,TPD_BUTTON_HEIGH}, {240,900,TPD_BUTTON_WIDTH,TPD_BUTTON_HEIGH}, {400,900,TPD_BUTTON_WIDTH,TPD_BUTTON_HEIGH}} //按键对应位置TPD_KEYS_DIM中的坐标是该按键区域的中⼼点:TP驱动简要分析1static struct tpd_driver_t tpd_device_driver = {2 .tpd_device_name = FT5x16,3 .tpd_local_init = tpd_local_init, //初始化函数4 .suspend = tpd_suspend,5 .resume = tpd_resume,6 #ifdef TPD_HAVE_BUTTON7 .tpd_have_button = 1,8#else9 .tpd_have_button = 0,10#endif11 };1213/* called when loaded into kernel */14static int __init tpd_driver_init(void) {15 printk("MediaTek FT5x16 touch panel driver init\n");16 i2c_register_board_info(0, &ft5x16_i2c_tpd, 1); //注册板级设备信息17if(tpd_driver_add(&tpd_device_driver) < 0) //添加驱动18 printk("add FT5x16 driver failed\n");19return0;20 }MTK⾃⼰编写了⼀套TP框架,通过该框架管理TP设备,tpd_driver_add为框架的接⼝之⼀;系统通过tpd_driver_add添加驱动后会回调tpd_local_init函数;1 #ifdef TPD_HAVE_BUTTON2static int tpd_keys_local[TPD_KEY_COUNT] = TPD_KEYS; //存放按键功能信息3static int tpd_keys_dim_local[TPD_KEY_COUNT][4] = TPD_KEYS_DIM; //存放虚拟按键信息4#endif56static int tpd_local_init(void)7 {8 TPD_DMESG("FTS I2C Touchscreen Driver (Built %s @ %s)\n", __DATE__, __TIME__);910if(i2c_add_driver(&tpd_i2c_driver)!=0) //注册i2c驱动11 {12 TPD_DMESG("FTS unable to add i2c driver.\n");13return -1;14 }15if(tpd_load_status == 0)16 {17 TPD_DMESG("FTS add error touch panel driver.\n");18 i2c_del_driver(&tpd_i2c_driver);19return -1;20 }2122 #ifdef TPD_HAVE_BUTTON //如果定义虚拟按键,则初始化按键信息23 tpd_button_setting(TPD_KEY_COUNT, tpd_keys_local, tpd_keys_dim_local);// initialize tpd button data24#endif2526#if (defined(TPD_WARP_START) && defined(TPD_WARP_END))27 TPD_DO_WARP = 1;28 memcpy(tpd_wb_start, tpd_wb_start_local, TPD_WARP_CNT*4);29 memcpy(tpd_wb_end, tpd_wb_start_local, TPD_WARP_CNT*4);30#endif3132#if (defined(TPD_HAVE_CALIBRATION) && !defined(TPD_CUSTOM_CALIBRATION))33 memcpy(tpd_calmat, tpd_def_calmat_local, 8*4);34 memcpy(tpd_def_calmat, tpd_def_calmat_local, 8*4);35#endif36 TPD_DMESG("end %s, %d\n", __FUNCTION__, __LINE__);37 tpd_type_cap = 1;38return0;39 }向系统注册i2c驱动后,如果找到对应的设备就会调⽤tpd_probe函数;1static const struct i2c_device_id ft5x16_tpd_id[] = {{TPD_NAME,0},{}};23static struct i2c_driver tpd_i2c_driver = {4 .driver = {5 .name = TPD_NAME,6 },7 .probe = tpd_prob,8 .remove = __devexit_p(tpd_remove),9 .id_table = ft5x16_tpd_id,10 .detect = tpd_detect,11 };1213static int __devinit tpd_probe(struct i2c_client *client, const struct i2c_device_id *id)14 {15int retval = TPD_OK;16char data;17 u8 report_rate=0;18int err=0;19int reset_count = 0;20 u8 chip_id,i;2122 reset_proc:23 i2c_client = client;24 #ifdef MAIERXUN_TP_COM25if(touchpanel_flag){26return0;27 }28#endif29//复位30//power on, need confirm with SA31 mt_set_gpio_mode(GPIO_CTP_RST_PIN, GPIO_CTP_RST_PIN_M_GPIO);32 mt_set_gpio_dir(GPIO_CTP_RST_PIN, GPIO_DIR_OUT);33 mt_set_gpio_out(GPIO_CTP_RST_PIN, GPIO_OUT_ZERO);34 msleep(5);35 TPD_DMESG(" fts ic reset\n");3637//打开TP电源38 #ifdef TPD_POWER_SOURCE_CUSTOM39 hwPowerOn(TPD_POWER_SOURCE_CUSTOM, VOL_3300, "TP");40#else41 hwPowerOn(MT65XX_POWER_LDO_VGP2, VOL_3300, "TP");42#endif4344 mt_set_gpio_mode(GPIO_CTP_RST_PIN, GPIO_CTP_RST_PIN_M_GPIO);45 mt_set_gpio_dir(GPIO_CTP_RST_PIN, GPIO_DIR_OUT);46 mt_set_gpio_out(GPIO_CTP_RST_PIN, GPIO_OUT_ONE);4748 #ifdef TPD_CLOSE_POWER_IN_SLEEP49 hwPowerDown(TPD_POWER_SOURCE,"TP");50 hwPowerOn(TPD_POWER_SOURCE,VOL_3300,"TP");51 msleep(100);5253#else /* 结束复位 */54 mt_set_gpio_mode(GPIO_CTP_RST_PIN, GPIO_CTP_RST_PIN_M_GPIO);55 mt_set_gpio_dir(GPIO_CTP_RST_PIN, GPIO_DIR_OUT);56 mt_set_gpio_out(GPIO_CTP_RST_PIN, GPIO_OUT_ZERO);57 msleep(5);58 TPD_DMESG(" fts ic reset\n");59 mt_set_gpio_mode(GPIO_CTP_RST_PIN, GPIO_CTP_RST_PIN_M_GPIO);60 mt_set_gpio_dir(GPIO_CTP_RST_PIN, GPIO_DIR_OUT);61 mt_set_gpio_out(GPIO_CTP_RST_PIN, GPIO_OUT_ONE);62#endif6364/* 初始化中断引脚 */65 mt_set_gpio_mode(GPIO_CTP_EINT_PIN, GPIO_CTP_EINT_PIN_M_EINT);66 mt_set_gpio_dir(GPIO_CTP_EINT_PIN, GPIO_DIR_IN);67 mt_set_gpio_pull_enable(GPIO_CTP_EINT_PIN, GPIO_PULL_ENABLE);68 mt_set_gpio_pull_select(GPIO_CTP_EINT_PIN, GPIO_PULL_UP);6970/* 中断配置和注册 */71 mt_eint_set_hw_debounce(CUST_EINT_TOUCH_PANEL_NUM, CUST_EINT_TOUCH_PANEL_DEBOUNCE_CN);72 mt_eint_registration(CUST_EINT_TOUCH_PANEL_NUM, CUST_EINT_TOUCH_PANEL_TYPE, tpd_eint_interrupt_handler, 1); //注册中断处理函数,TP产⽣中断时就会回调tpd_eint_interrupt函数73 mt_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM);7475 msleep(400);7677 err=i2c_smbus_read_i2c_block_data(i2c_client, 0x00, 1, &data);7879 TPD_DMESG("gao_i2c:err %d,data:%d\n", err,data);80if(err< 0 || data!=0)// reg0 data running state is 0; other state is not 081 {82 TPD_DMESG("I2C transfer error, line: %d\n", __LINE__);83 #ifdef TPD_RESET_ISSUE_WORKAROUND84if ( reset_count < TPD_MAX_RESET_COUNT )85 {86 reset_count++;87goto reset_proc;88 }89#endif90//add at 20150330 by zhu91 #ifdef MAIERXUN_TP_COM92 touchpanel_flag=false;93#endif94return -1;95 }9697 ......9899 #ifdef VELOCITY_CUSTOM_FT5206100if((err = misc_register(&tpd_misc_device))) //注册混杂设备驱动101 {102 printk("mtk_tpd: tpd_misc_device register failed\n");103104 }105#endif106107 #ifdef TPD_AUTO_UPGRADE108 printk("********************Enter CTP Auto Upgrade********************\n");109 fts_ctpm_auto_upgrade(i2c_client);110#endif111 thread = kthread_run(touch_event_handler, 0, TPD_DEVICE); //创建⼦线程,通过该⼦线程获取和上报数据112if (IS_ERR(thread))113 {114 retval = PTR_ERR(thread);115 TPD_DMESG(TPD_DEVICE " failed to create kernel thread: %d\n", retval);116 }117118 TPD_DMESG("FTS Touch Panel Device Probe %s\n", (retval < TPD_OK) ? "FAIL" : "PASS");119120/* 初始化TP的P-sensor功能,暂不分析 */121 #ifdef TPD_PROXIMITY122struct hwmsen_object obj_ps;123124 obj_ps.polling = 0;//interrupt mode125 obj_ps.sensor_operate = tpd_ps_operate;126if((err = hwmsen_attach(ID_PROXIMITY, &obj_ps)))127 {128 APS_ERR("proxi_fts attach fail = %d\n", err);132 APS_ERR("proxi_fts attach ok = %d\n", err);133 }134#endif135136 #ifdef MAIERXUN_TP_COM137 touchpanel_flag=true;138#endif139140return0;141142 }/* 中断处理函数 */1static void tpd_eint_interrupt_handler(void)2 {3//TPD_DEBUG("TPD interrupt has been triggered\n");4 TPD_DEBUG_PRINT_INT;5 tpd_flag = 1;6 wake_up_interruptible(&waiter); //唤醒等待队列7 }中断处理遵循中断上下⽂的设计原则,使得中断⼦程序只是简单唤醒等待队列就可以了,没有多余的操作;/* ⼦线程处理函数 */1static int touch_event_handler(void *unused)2 {3struct touch_info cinfo, pinfo;4int i=0;56struct sched_param param = { .sched_priority = RTPM_PRIO_TPD };7 sched_setscheduler(current, SCHED_RR, ¶m);89 #ifdef TPD_PROXIMITY10int err;11 hwm_sensor_data sensor_data;12 u8 proximity_status;1314#endif15 u8 state;1617do//进⼊while循环进⾏睡眠-等待唤醒的操作18 {19 mt_eint_unmask(CUST_EINT_TOUCH_PANEL_NUM); //中断使能(解除屏蔽)20 set_current_state(TASK_INTERRUPTIBLE);21 wait_event_interruptible(waiter,tpd_flag!=0); //进⼊睡眠等待唤醒2223 tpd_flag = 0;2425 set_current_state(TASK_RUNNING);26 ......2728 #ifdef TPD_PROXIMITY //TP的P-sensor功能,暂不分析29if (tpd_proximity_flag == 1)30 {31 i2c_smbus_read_i2c_block_data(i2c_client, 0xB0, 1, &state);32 TPD_PROXIMITY_DEBUG("proxi_5206 0xB0 state value is 1131 0x%02X\n", state);3334if(!(state&0x01))35 {36 tpd_enable_ps(1);37 }3839 i2c_smbus_read_i2c_block_data(i2c_client, 0x01, 1, &proximity_status);40 TPD_PROXIMITY_DEBUG("proxi_5206 0x01 value is 1139 0x%02X\n", proximity_status);4142if (proximity_status == 0xC0)43 {44 tpd_proximity_detect = 0;45 }46else if(proximity_status == 0xE0)47 {48 tpd_proximity_detect = 1;49 }5051 TPD_PROXIMITY_DEBUG("tpd_proximity_detect 1149 = %d\n", tpd_proximity_detect);5253if ((err = tpd_read_ps()))54 {55 TPD_PROXIMITY_DMESG("proxi_5206 read ps data 1156: %d\n", err);56 }57 sensor_data.values[0] = tpd_get_ps_value();58 sensor_data.value_divide = 1;59 sensor_data.status = SENSOR_STATUS_ACCURACY_MEDIUM;60if ((err = hwmsen_get_interrupt_data(ID_PROXIMITY, &sensor_data)))61 {62 TPD_PROXIMITY_DMESG(" proxi_5206 call hwmsen_get_interrupt_data failed= %d\n", err);6667if (tpd_touchinfo(&cinfo, &pinfo)) //获取TP设备数据,并把数据保存在cinfob buf中68 {69//TPD_DEBUG("point_num = %d\n",point_num);70 TPD_DEBUG_SET_TIME;71if(point_num >0)72 {73for(i =0; i<point_num; i++)//only support 3 point74 {75 printk(KERN_DEBUG"X:%4d, Y:%4d, P:%4d \n", cinfo.x[i], cinfo.y[i], cinfo.id[i]);7677 cinfo.x[i] = cinfo.x[i];78 cinfo.y[i] = cinfo.y[i];7980 tpd_down(cinfo.x[i], cinfo.y[i], cinfo.id[i]); //按下数据处理81 printk(KERN_DEBUG"----calibration----- X:%4d, Y:%4d, P:%4d \n", cinfo.x[i], cinfo.y[i], cinfo.id[i]);82 }83 input_sync(tpd->dev);84 }85else86 {87 tpd_up(cinfo.x[0], cinfo.y[0]); //弹起数据处理88//TPD_DEBUG("release --->\n");89//input_mt_sync(tpd->dev);90 input_sync(tpd->dev);91 }92 }93 ......9495 }while(!kthread_should_stop());9697return0;98 }/* 获取TP数据 */1static int tpd_touchinfo(struct touch_info *cinfo, struct touch_info *pinfo)2 {3int i = 0;4char data[128] = {0};5 u16 high_byte,low_byte,reg;6 u8 report_rate =0;78 p_point_num = point_num;9if (tpd_halt)10 {11 TPD_DMESG( "tpd_touchinfo return ..\n");12return false;13 }14 mutex_lock(&i2c_access);151617 reg = 0x00;18 fts_i2c_Read(i2c_client, ®, 1, data, 64); //获取TP数据,⼀些TP是⽀持多点触控的,所以有可能就产⽣多个触点的数据19 mutex_unlock(&i2c_access);2021/*get the number of the touch points*/22 point_num= data[2] & 0x0f;2324 TPD_DEBUG("point_num =%d\n",point_num);2526/* 根据芯⽚协议解析数据并存放在cinfo buf中 */27for(i = 0; i < point_num; i++)28 {29 cinfo->p[i] = data[3+6*i] >> 6; //event flag30 cinfo->id[i] = data[3+6*i+2]>>4; //touch id31/*get the X coordinate, 2 bytes*/32 high_byte = data[3+6*i];33 high_byte <<= 8;34 high_byte &= 0x0f00;35 low_byte = data[3+6*i + 1];36 cinfo->x[i] = high_byte |low_byte;373839/*get the Y coordinate, 2 bytes*/40 high_byte = data[3+6*i+2];41 high_byte <<= 8;42 high_byte &= 0x0f00;43 low_byte = data[3+6*i+3];44 cinfo->y[i] = high_byte |low_byte;45 }4647 }48 TPD_DEBUG(" cinfo->x[0] = %d, cinfo->y[0] = %d, cinfo->p[0] = %d\n", cinfo->x[0], cinfo->y[0], cinfo->p[0]);4950return true;51 }1static void tpd_down(int x, int y, int p) {2static int tpd_x = 0;3static int tpd_y = 0;45 tpd_x = x;6 tpd_y = y;78/* 通过输⼊⼦系统上报数据 */9 input_report_key(tpd->dev, BTN_TOUCH, 1);10 input_report_abs(tpd->dev, ABS_MT_TOUCH_MAJOR, 20);11 input_report_abs(tpd->dev, ABS_MT_POSITION_X, x);12 input_report_abs(tpd->dev, ABS_MT_POSITION_Y, y);1314 printk(KERN_ERR, "D[%4d %4d %4d] ", x, y, p);15/* track id Start 0 */16 input_report_abs(tpd->dev, ABS_MT_TRACKING_ID, p);17 input_mt_sync(tpd->dev);18 #ifndef MT657219if (FACTORY_BOOT == get_boot_mode()|| RECOVERY_BOOT == get_boot_mode())20#endif21 {22 tpd_button(x, y, 1); //虚拟按键的处理23 }24 TPD_EM_PRINT(x, y, x, y, p-1, 1);25 }2627static void tpd_up(int x, int y) {2829 input_report_key(tpd->dev, BTN_TOUCH, 0);30 input_mt_sync(tpd->dev);31 TPD_EM_PRINT(x, y, x, y, 0, 0);3233 #ifndef MT657234if (FACTORY_BOOT == get_boot_mode()|| RECOVERY_BOOT == get_boot_mode())35#endif36 {37 tpd_button(x, y, 0);38 }39 }/* 虚拟按键判断和处理函数 */1void tpd_button(unsigned int x, unsigned int y, unsigned int down) {2int i;3if(down) {4for(i=0;i<tpd_keycnt;i++)5 {6/* 判断数据是否落在虚拟按键的范围内,数据处理算法实现了以坐标点为中⼼的虚拟按键 */7if(x>=tpd_keys_dim[i][0]-(tpd_keys_dim[i][2]/2) &&8 x<=tpd_keys_dim[i][0]+(tpd_keys_dim[i][2]/2) &&9 y>=tpd_keys_dim[i][1]-(tpd_keys_dim[i][3]/2) &&10 y<=tpd_keys_dim[i][1]+(tpd_keys_dim[i][3]/2) &&11 !(tpd->btn_state&(1<<i)))12 {13 input_report_key(tpd->kpd, tpd_keys[i], 1); //上报按键14 input_sync(tpd->kpd);15 tpd->btn_state|=(1<<i);16 TPD_DEBUG("[mtk-tpd] press key %d (%d)\n",i, tpd_keys[i]);17 printk("[mtk-tpd] press key %d (%d)\n",i, tpd_keys[i]);18 }19 }20 } else {21for(i=0;i<tpd_keycnt;i++) {22if(tpd->btn_state&(1<<i)) {23 input_report_key(tpd->kpd, tpd_keys[i], 0);24 input_sync(tpd->kpd);25 TPD_DEBUG("[mtk-tpd] release key %d (%d)\n",i, tpd_keys[i]);26 printk("[mtk-tpd] release key %d (%d)\n",i, tpd_keys[i]);27 }28 }29 tpd->btn_state=0;30 }31 }32 tpd_keys_dim和tpd_keys的数据是通过tpd_button_setting初始化的,可以去看tpd_button_setting()的实现;通过简单分析,由此可知MTK的TP驱动的整体框架跟普通TP驱动框架也是⼤致差不多;。
CTP输出中心流程作业指导书
生效日期: _______ 年月____________ 日文件编号~ ~版本/次号文件名称~ 入稿作业流程作业指导书项目负责人所使用的材料(一)适用范围CTP中心文件入稿流程(二)作业内容A. 稿件来后交CTP接单人员;B. 入稿时登记如下内容;1.工程单号印刷厂所开出的工程流水单(No:XXXXXX)2.客户名称将印刷厂所要求所有内容记录到CTP中心入稿记录表里;3.业务代表工程流水单内业务代表名称记录到CT冲心入稿记录表里;4.相关内容包括:印机型号,板材尺寸,咬口方向,咬口尺寸,送货时间等等;5.入稿日期接稿的日期:XXXX年XX月XX日;6.入稿时间接稿的时间:XX时XX分;C. 将工程单或工程单复印件、工作流程单、附表放入CTP作业流程纸袋里;D. 将工程单要求录入作业公告黑板里(工程单号、作业名称、下单日期、操作员、要求完工时间〔数码打样、蓝纸打样、CTP出版〕);E. 记录完成后交给相应的操作人员。
(一)适用范围适用于所有产品的拼版过程(二)作业内容A. 审单1. 操作人员细致阅读工单要求,检查样稿、文件是否要齐全,严格核对成品尺寸, 改版部位要标识清楚。
输出多套 CTP 版一定要检查每套版的情况是否一致,如 有疑问向主管或经办人查询,严禁把要求模糊的工程单承接下来; 2. 客户要求改版的部位,由拼版人员按样先把文件改好;3. 看清楚开版方式,如正反版 4+4C 、自反版4+4C 、单面4+0C 、咬口自反4+4C , 装订工序、印刷机台、切纸开版尺寸、成品尺寸及印刷说明、备注,方可按要 求制作模板; 4. 咬口标准定位(CTP 版边到咬口线XXcn ); B. 校对确认拼版1. 复核过程中,小的修改由拼版人员按要求直接修改后拼版,较大改动由拼版人文件编号 文件名称 拼版作业指导书项目负责人所使用的材料电脑、BrainNew Product生效日期: 年 月版本/次号日软件员按要求修改后重出蓝纸,交相关人员校对确认后客户签字才能出CTP版;CTP输出中心流程作业指导书C. 工艺要求1. 骑马钉要做成面短底长,锁线胶装要做成面长底短;2. 骑马钉、无线胶装、锁线胶装必须画折标,统一天头留位0.3cm (特殊除外);3. 骑马钉、无线胶装书每一手色块统一画在书头位上,距离书头成品2cm处为第一首色块,色块尺寸:1cmx 0.2cm,第二手顺延 ... ,依此类推;4. 锁线胶装每一手色块统一画在书脊位上距离书头2mm处为第一手色块,居中画色块尺寸5mm长x 0.5cm宽,第二手顺延.... ,依此类推;5. 锁线胶装书每一手第一页书脊位,距离书脚成品线1cm处,居中画色块2mm长x 0.5cm高,方便检查手数对齐情况;6. 五色或多色套印、反白字套印、多色套字拼在版尾,烫金/银字、击凸、过局部UV需要啤的拼在对面针位和咬口处,达到啤和套印准确;7. 在纸张尺寸允许的情况下,需要啤的产品咬口位不少于 1.3cm上自动啤机(特殊产品视成品尺寸大小另定),且注明对面针位;8. 封套、手挽袋、信封、盒子等粘位不过光油、哑油,保留3mm出血位后将多余去79. 印标准信封,要加“邮局印制”字样,手挽袋袋口一般定为咬口,并且留4.5cm的位置(特殊除外),且大边留粘位;10. 72 X 102cm小全开印刷,CP1、CP3 CP5号机要晒低咬口,基本留位以咬口方向PS版边到成品线留3.8cm,版尾到成品线留2.8cm为最低标准;11. 印件加印,出蓝纸经相关人员校对确认后,|再出CTP版印刷;CTP输出中心流程作业指导书f.锁线胶装200g双铜纸可以12P套好锁线,放在第一首,210g双铜纸或200g哑粉纸以上最多只能8P锁线,4P锁线放最后,太厚不能套需要压痕;g. 横式、竖式16开封面和需要过胶的封面书头至少留-1cm,方便过胶,同时胶装封面书脚也要尽大留,方便过胶;h. 无线胶装、锁线胶装书40P以下(含40P)157g双铜纸,157g哑光粉,四开折页有3手纸以上胶装最小书脊位要有3mm3. 保持CTP版面干净,不划花、折痕、烂网、网线不符及拼版错误;B.质量记录1. 参照《CTP版材使用日报表》、《EPSON数码样耗材使用日报表》、《HP蓝纸样耗材使用日报表》。
GT9XX驱动移植说明书_for_Android_2014011401
//*********************PART2:TODO define****************************
……
3
//STEP_3(optional):Custom set some config by custom,if need. #if GTP_CUSTOM_CFG
#define GTP_ESD_PROTECT
1
#define GTP_POWER_CTRL_SLEEP 1
#define GTP_FL_LITTLE_SYSTEM 1
(7) 自动升级说明 使用自动升级您需要开启宏 GTP_AUTO_UDPATE, 自动升级有两种方式: ① 搜寻 BIN 文件升级: GT9XX 预设文件路径为/data/_goodix_update_.bin 和 /sdcard/_goodix_udpate_.bin, GT9XXF 为/data/_fl_update_.bin 和/sdcard/_fl_update_.bin。 ② 固件数组升级: 使用 gt9xx_firmware.h 中的固件数组 gtp_default_FW 进行升级,您需要开启 GTP_AUTO_UDPATE 与 GTP_HEADER_FW_UPDATE。此种方式 GT9XXF 不支持。
开启兼容 GT9XXF 模式(GTP_COMPATIBLE_MODE 置 1),您需要将 GT9XXF Firmware Headers 中相应 GT9XXF 文件夹下的 gt9xx_firmware.h 替换驱动中的同名文件。
5. goodix_tool.c(Recommended):驱动中用于支持 gtp_tools.apk 工具和 ADB 工具的文件,该工
CTP作业规范
第六章CTP作业规范第一节CTP作业流程图一﹑CTP作业流程图二﹑后端服务器示意图1.NTV2003和HKFS里的 impo-GD01/GD02存放的为新书的大版文件。
2.输出用的(.ICF)文件一般发到各驱动器3.0的preps活页夹中﹐而Quantum则发到Quantum1.0中的preps活页夹中。
3.后端Rip04.1.0﹑Rip04.1.1﹑Rip04.1.2﹑Rip04.1.3使用空间不能超于80%﹐空间由指定人员跟进和整理。
4.各印件的存放位置由DTP发排人员视后端各服务器所剩空间大小而定。
第二节CTP作业过程CTP分为拼版员和出版员﹐负责印前中心拼版﹐输出蓝纸﹑EPSON﹑菲林﹑PS 版﹐负责出版机﹑冲片机﹑照排机等设备的保养和维护。
CTP所用的后端服务器有rip04.1.0﹑rip04.1.1﹑rip04.1.2﹑rip04.1.3﹐前端服务器NTV2003﹑HKFS。
具体每个印件的存放位置需查看“印前中心工程单”里的“后端路径”所指的路径。
一﹑生产安排1﹑CTP人员在作业时﹐需根据CTP生产预定表及CTP负责人的安排进行生产作业。
2﹑CTP人员在每天下班前十五分钟整理好手头做的稿件并做好记录﹐交于CTP 负责人﹐由CTP负责人安排稿件交接工作。
二﹑拼版员作业过程1﹑接稿(1)DTP将需要拼版﹑打大版EPSON﹑蓝纸印件的工单﹑客来样书﹑蓝纸等交于拼版员﹐如有问题可与数据员沟通。
(2)需拼大版的印件工单至少包括“印前中心工程单”和“影﹑拼制作指示”﹐如接稿时发现无此两样工单拒绝接稿。
(3)拼版员接到稿件后﹐须认真审核工单内容﹐清点客来资料﹐如发现客来资料有缺损或工单指示不明确时须及时将数据退回数据员并协商解决﹔(4)审核﹑清点资料无误之后﹐将工单夹入拼版夹中待拼版﹐客来样书﹑蓝纸等自行保管好。
2﹑拼版a.建立Template﹕根据影﹑拼制作指示要求对各参数进行设置﹕Template的命名按工程单印号﹐装订方式按工单要求。
最新SigmatelIDT声卡Win7驱动
====================================================== ===========友情提示:有机友回帖说遇到“爆音”问题,这个问题大致上是由于CPU和GPU的频率波动导致系统的DPC延迟过大造成音频延迟,我是这样解决的,开机按F2去BIOS里将CPU的“Dynamic Overclocking Technology”功能关闭,重启后进入桌面后将“电源管理”改为“高性能”,然后去下NV的256系列WHQL版显卡驱动(最新版本258.96),最好其他硬件的驱动也保持最新,这样基本就不会有爆音了,你可以用DPC LatencyChecker检查下你的系统DPC延迟,我现在最多就2000.(超过2000的一定会有爆音)====================================================== =======================I.前言:本帖不定期更新,只要DELL官方更新我一定尽快测试新驱动并提供下载,【希望友友多多反馈是否成功哦~让更多1330&1530和其他戴尔友友用上最新的IDT驱动~】尽管添加了很多机型,但由于没有相应的机型测试,所以请自测~测试如可用请回帖告诉大家~====================================================== =======================II.笔记本支持型号及声明:本帖驱动只支持Vista&win7(32&64位),具体支持以下机型(M1530肯定支持,本人就是M1530,其他机型请自测):DELL XPS - M1330, M1530;DELL Vostro - 1400, 1520;(不一定支持)DELL Studio - 1555, 1557, 1558, 1747, 1749;DELL Inspiron - 1545, 1440, 1750, M5010, N5010;DELL Studio XPS - 1640, 1645;如果你的本本不是以上型号但你的硬件ID符合帖子下方的“硬件ID列表“那也同样可以安装本帖的驱动。
Kodak_CTP_安装指导(初稿)
安装Trendsetter 800一、安装场地要求1、占地要求2、环境条件(1)温度:17℃ - 30℃(2)湿度:20% - 80%RH(非凝结)(3)地板:地板必须平整,且不会有强烈震动;地板必须水平,沿Trendsetter设备占地的误差不超过 职±6.35 毫米;地面必须坚实,最好由水泥制成;地板必须要刷油漆,以防静电。
(4)供电:机器在工作时总功率约为2600W(包含吸尘器),CTP主机待机时的功率约600W,工作时约1100W。
准备一台6KW或以上的在线式UPS电源。
准备一条专用电线,确保零地电压在2V以下。
(5)供气:Trendsetter输出设备需要清洁、干燥、无油、无尘、湿度低(30%以下)气源,工作时气压不能低于0.6Mpa。
准备一台空压机,一台干燥机。
(6)电话:用户必须保留一条工作站专用的(其他设备不得占用此线路)“直拨”模拟电话线或宽带因特网联连接,用来进行远程支持。
(7)网络:三个千兆网卡,一个用于控制CTP,一个用于局域网,一个用于远程控制。
二、工具物品准备序号 工具作用1 卷尺 测量场地、确定安装位置。
2 公制内六角 拆后门、调激光头等。
3 “一”字螺丝刀 联接吸尘器气管,需要固定。
拆木箱等。
4 “十”字螺丝刀 接电源线。
5 斜口钳、尘嘴钳 接电源线。
6 界纸刀 接包装盒。
7 活动扳手 拆木包装箱、调水平。
8 万用表 测量电压。
9CTP 专用锁匙屏蔽所有lock。
10软 件Win2000\2003+补丁安装盘 IE6.0升级包+系统安全补丁Windows install 3.0软件 Framework1.1软件Intell Pro100/1000网卡驱动 Controlled Release3.0软件三、CTP 硬件安装过程1、约好吊车或叉车、货车。
(1)机器规格尺寸如下表: (2)一套Trendsetter 800 CTP 由CTP 主体和碎片清除柜两个组件组成。
GT9XX驱动移植说明书_for_Android_2014011401
3. gt9xx_update.c(Recommended):驱动用于支持固件升级的文件,对于触摸屏驱动来说,该文
件不是必需的,但是强烈推荐在驱动中增加该功能,以便于您使用的触控 IC 在必要时升级为最新版本 的固件。
4. gt9xx_firmware.h(Recommended):默认存放头文件升级默认固件数组,数组默认为空。如需
开启兼容 GT9XXF 模式(GTP_COMPATIBLE_MODE 置 1),您需要将 GT9XXF Firmware Headers 中相应 GT9XXF 文件夹下的 gt9xx_firmware.h 替换驱动中的同名文件。
5. goodix_tool.c(Recommended):驱动中用于支持 gtp_tools.apk 工具和 ADB 工具的文件,该工
obj-y += gt9xx.o gt9xx_update.o goodix_tool.o
3. 添加设备:找到 kernel 中初始化 I2C 总线的板级文件,如本驱动的开发平台 real6410 开发板是位 于 arch/arm/mach-s3c6410/ mach-smdk6410.c 文件中,如需要将触摸屏驱动挂载 I2C0 总线上,则按 以下方法添加 TP 的 i2c 设备驱动即可,0x5d 为该型号触控 IC 的 i2c 从设备地址,具体为多少需参阅 该型号芯片的 datasheet,”Goodx-TS”为 i2c 设备驱动名,必须与驱动参考代码中的 GTP_I2C_NAME 保持相同。
static struct i2c_board_info i2c_devs0[] __initdata = {
{ I2C_BOARD_INFO("Goodix-TS", 0x5d),}, };
E-Bike 简易说明书
E-Bike 简易说明书文件标识E-Bike简易说明书当前版本V1.0 联系方式***********************作者Carpe 撰写日期2022.04.25审核者Orange Cai 审核日期版本历史版本日期描述作者V1.0 2022.04.25 建立文档Carpe Tan目录一、方案简介 (1)二、方案功能介绍 (1)2.1 双核通信功能 (1)2.2 图形加速功能 (1)2.2.1 PXP 模块 (1)2.2.2 LCDIFv2 模块 (1)2.2.3 VGLite 模块 (1)2.3 方案界面功能 (2)2.3.1 主页界面 (2)2.3.2 导航界面 (3)2.3.3 仪表界面 (4)2.3.4 胎压界面 (5)2.3.5 音乐界面 (6)2.3.6 图表界面 (7)三、开发环境介绍 (8)3.1 硬件主要接口说明 (8)3.2 软件开发环境介绍 (11)3.2.1 GUI Guider GUI 开发工具 (11)3.2.2 Visual Studio平台LVGL 模拟器 (12)3.2.3 MCUXpresso IDE (14)3.2.4 MCUXpresso SDK 生成器 (15)四、操作说明 (17)4.1 下载程序 (17)4.1.1 导入工程 (17)4.1.2 工程编译 (19)4.1.3 硬件连接 (19)4.1.4 下载程序 (20)4.2 E-Bike DEMO 使用操作 (21)一、方案简介该方案基于NXP i.MX RT1170 的汽车仪表盘方案,方案采用开源轻量级显示图形库LVGL,液晶屏分辨率为720x1280,方案采用通用图形加速引擎、矢量图形处理、多图层优化等策略,优化显示效果提高帧率。
方案采用双核策略,高性能的Cortex-M7 核作为主核专注于图像显示处理,高能效的Cortex-M4 作为从核通过CAN 总线接收速度、里程、电量等车辆信息,再通过MU(Messaging Unit)数据传递单元传输至主核并显示于仪表界面。
CTP综合交易平台教程
CTP综合交易平台教程基本介绍一、系统简介交易托管系统 API 是一个基于 C++的类库, 通过使用和扩展类库提供的接口来实现相关交易功能,包括报单与报价的录入、报单与报价的撤销、报单与报价的挂起、报单与报价的激活、报单与报价的修改、报单与报价的查询、成交单查询、投资者查询、投资者持仓查询、合约查询、交易日获取等。
支持 MS VC 6.0,MS 2003 编译器。
需要打开多线程编译选项/MT。
二、体系结构交易员 API 使用建立在 TCP 协议之上 FTD 协议与交易托管系统进行通讯,交易托管系统负责投资者的交易业务处理。
2.1.通讯模式FTD 协议中的所有通讯都基于某个通讯模式。
通讯模式实际上就是通讯双方协同工作的方式。
FTD 涉及的通讯模式共有三种:l 对话通讯模式l 私有通讯模式l 广播通讯模式对话通讯模式是指由会员端主动发起的通讯请求。
该请求被交易所端接收和处理,并给予响应。
例如报单、查询等。
这种通讯模式与普通的客户/服务器模式相同。
私有通讯模式是指交易所端主动,向某个特定的会员发出的信息。
例如成交回报等。
广播通讯模式是指交易所端主动,向市场中的所有会员都发出相同的信息。
例如公告、市场公共信息等。
通讯模式和网络的连接不一定存在简单的一对一的关系。
也就是说,一个网络连接中可能传送多种不同通讯模式的报文,一种通讯模式的报文也可以在多个不同的连接中传送。
无论哪种通讯模式,其通讯过程都如图 1 所示本接口暂时没有使用广播通信方式。
2.2.数据流交易托管系统支持对话通讯模式、私有通讯模式、广播通讯模式:对话通讯模式下支持对话数据流和查询数据流:对话数据流是一个双向数据流,交易托管系统发送交易请求,交易系统反馈应答。
交易系统不维护对话流的状态。
系统故障时,对话数据流会重置,通讯途中的数据可能会丢失。
查询数据流是一个双向数据流,交易托管系统发送查询请求,交易系统反馈应答。
交易系统不维护查询流的状态。
腾讯云 IoT MQTT AT 指令说明书
4.4
模组配合腾讯云 IOT 平台实现 MCU 测 OTA 功能流程图 ............................23
5 URC,模组主动上报 MCU 消息.............................................................................................24
3.1
AT+TCMQTTCONN(配置 MQTT 连接参数) .................................................14
3.2
AT+TCMQTTDISCONN(断开 MQTT 连接)...................................................15
8.1
密钥认证方式连接 TENCENT MQTT 服务器...............................................31
8.2
证书认证方式连接 TENCENT MQTT 服务器...............................................31
7.4
网关子设备命令相关错误类型 ...................................................................... 30
8 应用说明.................................................................................................................................31
穿透式监管CTPAPI使用说明
穿透式监管CTPAPI使用说明文档修订历史记录内容申明目录第1章引言 (2)1.1实现目的 (2)1.2背景 (2)1.3定义 (2)第2章流程设计 (3)2.1终端认证方案 (3)2.1.1 背景条件 (3)2.1.2 appid对应的授权码分发流程 (3)2.1.3 登录前认证 (4)2.2使用CTP交易API进行终端信息采集 (6)2.2.1 直接使用CTP交易API直连模式 (6)2.2.2 使用中继服务器操作员登录模式 (8)2.2.3 使用中继服务器多对多登录模式 (11)第3章CTP API使用说明 (12)3.1采集API使用说明 (12)3.1.1 采集API说明 (12)3.2T RADER API (12)3.2.1 穿透式监管涉及到的API (12)3.2.2 客户使用流程 (14)第1章引言1.1 实现目的简要描述CTP对于终端数据采集和终端认证的实现方案。
用于指导终端厂商正确使用CTP的交易API和采集API。
1.2 背景证监会发布《关于进一步加强期货经营机构客户交易终端信息采集有关事项的公告》/pub/zjhpublic/zjh/201807/t20180709_340951.htm监控中心发布的《期货公司客户交易终端信息采集及接入认证技术规范》关于进一步加强期货经营机构客户交易终期货公司客户交易终端信息采集及接入认1.3 定义第2章穿透式监管方案设计2.1 终端认证方案2.1.1背景条件每个期货终端软件需要向期货公司申请自己的appid。
中继服务器软件需要向期货公司申请自己的relayappid。
2.1.2appid对应的授权码分发流程期货公司确认终端软件集成了正确的数据采集模块后,为该appid的终端软件分配授权码。
终端软件需要保护好自己的appid和授权码,防止被其他软件盗用。
2.1.2.1 直连终端认证流程对于直接连接期货公司交易柜台的终端,期货公司确认终端软件集成了正确的数据采集模块后。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
= port:PH21<6><default> = port:PB13<1><default><default><1> = port:PH20<1><default> = port:PH21<0><default>
在 sysconfig 中的 ctp 子健 reset, wakeup 的作用对象,因为不属于主控模块,其在语义 上是对模块的操作,配置应根据对外挂模块的操作决定; sysconfig 中的配置,要求 reset 配置,与触控 ic reset 连接的主控引脚对应; 要求 wakeup 配置,与触控 ic wakeup 连接的主控引脚对应;
2. 环境准备
为加快外挂触控 ic 的移植速度,规范研发流程,请先确保以下调试环境和工具可用: 硬件: � 串口可以正常打印; 软件: � 开发环境要求能生成可在开发平台上运行的固件; � 在 linux kernel 目录下,有对应生成该固件的.config 文件; � Adb 可用; � 文件系统可写 � 串口打印相关的 loglevel>7; � 打开 i2c 通讯相关的打印; 如何做到以上要求,参见调试一节,若不清楚,可咨询系统整合相关人员;
Ctp 驱动的移植
1. 前言
触摸作为重要的输入设备,在人机交互中,有着重要作用。在完成一个方案时,应尽早 完成触摸驱动的移植,有利于后期其他模块的调试和测试。然而,触摸驱动的移植,并不是 越早开始越好,我们建议,应在 linux 核心系统稳定及屏幕点亮后,开始进行,这样在触摸 移植后,就能顺利进入 android 系统,并能在 android 层对触摸驱动进行充分测试,保证良 好的触控效果。 Ctp:configurable touch panel 的简称;本文档,讲述外挂触控驱动的移植,包含环境准备, 硬件连接,软件,调试等部分; � 在移植之前,搭建良好的开发环境是必要的,这将有利于后期调试时 bug 的定位, 及 时地获取相关人员的支持,从而更快速的完成移植; � 硬件连接,请先确定硬件连接是否正确,正确的硬件连接,请参考 Reset,Wakeup 信 号的配置, 并确定其他信号,电源电位正常; � 软件,是驱动移植要实现的代码部分;就触摸驱动而言,就是要实现向内核上报用户 操作信息;包含从硬件获取用户操作信息和上报两个部分;上报部分,每个驱动都是 类似的,通常,原厂提供的 demo 已经实现了,可需略作修改即可;从硬件获取用户 操作信息是触摸移植过程中,要达到的主要目的,触摸驱动中,我们要关心的,也主 要是这部分代码;文中,先介绍触摸驱动在系统中的层次,介绍其应该实现的功能, 以及在 a10 bsp 上如何实现驱动,最后,介绍了我们提取的平台相关操作集,它在 bsp 上,针对 ctp 驱动移植的实际场景,简化了移植过程,提高了效率,代码风格也更为 一致,这是我们推荐的 ctp 驱动移植的方法; � 调试,是驱动移植过程中,解决问题的必要手段,因为遇到的问题,我们不可能完全 预见,因而,仅能提供调试方法介绍,并就常见的问题提出建议;
下面分别讲述,在 a10 平台上,为驱动移植,所提供的一些建议; 5.1.1. 获取 sysconfig 信息 首先,触控硬件平台,是如何与主控连接的,其本身的一些特性参数,及其占用主控的 资源,需在 sysconfig 中统一描述,并在 tp driver 初始化时,获取;故需在 sysconfig 中,正 确配置 ctp 子健; 在程序中,通过 gpio 接口,获得这些信息,具体使用方式,请参考 gpio 配置的相关文 档; 5.1.2. 配置 io,int 信息
3. Reset,Wakeup 信号的配置
3.1 主控与触控 ic 的连接
3.2
主控用于触摸模块的 io 端口分配
PB13 PH21 PH20
TP-WAKEUP TP-INT LS-INT
Used for wake up external TP controller External TP input signal Light sensor input interrupt interrupt
4. 驱动与硬件的联系
4.1 触摸驱动与硬件的联系 触摸驱动,作为整个内核中的一部分,它使用内核提供的服务,与自己的硬件交互, 从 而抽象了硬件,为内核提供服务;触摸驱动为了能与触摸硬件交互,必然要使用内核提供的 服务,其在系统的层次如图**所示,表明了与内核其他部分的联系。
struc t a w _pla tf or m _o p s
Eg: 对于将触控 ic reset 连接到主控 wakeup 的情况,要求配置为: ctp_reset = port:PB13<1><default><default><1>
建议: 1。不建议两个引脚都配置; 2。对于 ft 系列,建议采用触控 ic 的 reset 引脚; 不建议两个引脚都配置,出于两个方面的考虑: 1. 影响唤醒的时间; 2. 操作两个引脚,可能扰乱模块的时序,模块有可能挂死;
;---------------------------------------------------------------------------------;capacitor tp configuration ;external int function ;wakeup output function ;notice --tp_int_port & tp_io_port use the same port ;name should be compatible with the corresponding ctp driver. ;at present, only "ft5x_ts" and "Goodix-TS" is supported. ;---------------------------------------------------------------------------------[ctp_para] ctp_used =1 ctp_name = "ft5x_ts" ctp_twi_id =2 ctp_twi_addr =0x38 ctp_screen_max_x = 800 ctp_screen_max_y = 600 ctp_revert_x_flag =1 ctp_revert_y_flag =0 ctp_int_port ;ctp_wakeup ctp_reset ctp_io_port = port:PH21<6><default> = port:PB13<1><default><default><1> = port:PH20<1><default> = port:PH21<0><default>
5.2
基于 A10 平台的 ctp 驱动移植
事实上,在 a10 平台上,为了便于触摸驱动的移植,在 bsp 上封装了平台相关的代码 操作集 aw_platform_ops,用于获取 sysconfig 信息,配置 io,int 信息;
I 2 c
Ctp driver
A w _p la tf o r m_o p s
注意: reset 信号并没有预先分配, 在各方案中, 可以将主控的 TP-WAKEUP 分配为 Reset 信号,具体需要查看触控的 datasheet,并理解触控的功耗管理模式,进行具体的配置, 各电容触摸方案略有不同,此处无法一一说明。 3.3 Sysconfig 及其配置 范例: ctp_int_port ;ctp_wakeup ctp_reset ctp_io_port
建议:在触摸方案移植过程中,所有与平台相关的,可以被其他触摸驱动复用的代码, 都尽量封装成函数,并成为 aw_platform_ops 中的一个成员; 5.2.2 参考代码及范例 参见 platform_ops.rar; 另外,可参考我们的移植范例,包含了原始文件,second step, third step 的快照,各位 可以用后面的比较前面的,就能清晰知道在一次移植中做的工作了。 Sysconfig 的使用 5.2.3 5.2.3S
Linux kernel
Ctp hardware A10 s o c
同时,配置 i2c 信息也在 i2c 驱动中完成了,因而,在移植驱动时,通常只需使 用 aw_platform_ops 和 i2c 提供的接口即可; 5.2.1 平台相关代码操作集 struct aw_platform_ops { int irq; bool pendown; int (*get_pendown_state)(void); void (*clear_penirq)(void); int (*set_irq_mode)(void); int (*set_gpio_mode)(void); int (*judge_int_occur)(void); int (*init_platform_resource)(void); void (*free_platform_resource)(void); int (*fetch_sysconfig_para)(void); void (*ts_reset)(void); void (*ts_wakeup)(void); };
I2c interface
arch
Tp driver
I2c driver
Linux kernel 2 g p io soc in t in t reset c tp
C tp controller
1
tx rx
I2c-adapter
Tp hardware Sysconfig 描 述
图中,tp driver 使用系统提供的接口,使用 int, io 等资源,从而获得硬件的信息,或者 控制硬件;通过 i2c 通讯,获取硬件上报的数据; 因而,tp 与硬件的接口分为两个部分:体系结构相关部分,i2c 部分; � 体系结构相关部分:我们针对触摸驱动的实际,封装了 aw_platform_ops 操作集, 经过若干驱动的开发,这组操作集,是可以满足需求的,若不能满足需求,应扩