论文部分内容阅读
Protel设计系统是一套建立在PC环境下的具有强大设计能力的电子电路设计自动化软件,它提供了一个集成的设计环境,实现从原理图的绘制到电路板的最终生成。自二十世纪九十年代以来,Protel已成为广大电路设计人员的首选设计软件。而现有的Protel软件只支持单机用户工作,少数对Protel协同系统的研究中,缺乏实时的协同编辑功能和对并发编辑行为的控制处理机制,很难满足设计团队进行协同编辑的需求。为此,本文在原有Protel基础上,基于地址空间转换的思想,设计了支持实时协同编辑的Co-Protel系统。 为了解决Co-Protel中因果关系检测和协同数据管理等问题,本文主要做了以下工作: 通过对ProtelSDK的深入研究,详细阐述Protel的数据及操作类型的特点,针对这些特点,给出了适用于PCB文档的树型层级结构,根据逻辑时间戳来定义操作间的因果关系和并发依赖,改进原有的地址空间回溯算法,以保证其一致性。 给出了基于地址空间转换的树型层级文档的Undo操作处理算法。Undo操作是协同设计中经常会使用的操作,地址空间转换可以有效地处理Undo操作,并不修改操作本身,而是将文档的地址空间回溯到Undo操作生成时的状态,在这个状态下Undo操作可以立即执行,避免了操作转换过程操作间相对位置信息的丢失。 结合上述研究成果和方法,设计了复制式架构的Co-Protel系统,给出了总体框架和功能实现模块。在ProtelAPI层和底层AST层之间建立适配层,保证命令集和地址空间集的转换。