文档视界 最新最全的文档下载
当前位置:文档视界 › ControlBase——基于全自动代码生成的ECU快速开发解决方案

ControlBase——基于全自动代码生成的ECU快速开发解决方案

ControlBase——基于全自动代码生成的ECU快速开发解决方案
ControlBase——基于全自动代码生成的ECU快速开发解决方案

ControlBase — 基于全自动代码生成的ECU快速开发解决方案

“使用ControlBase可以缩短50%开发周期,降低80%开发成本。”

“ControlBase不仅是快速原型工具,还是全自动代码生成工具。”

“全自动代码生成技术可以削减80%的控制器软件开发工作量。”

控制器快速原型可以在没有控制器硬件的情况下,提前进行控制算法的开发与验证,尤其适合于新产品、新型号的开发研究,快速原型可以在一定程度上缩短开发周期,降低开发成本。由于快速原型仅仅是对控制算法进行了验证,在控制器开发的整个过程中,除了开发控制算法以外,还需要开发硬件与各类基础软件(包括底层驱动、标定协议、引导加载程序、实时操作系统、通信协议栈等等),之后还需要将基础软件与应用软件(包括控制算法与诊断算法)进行手工集成,工作量巨大,过程漫长。从整个开发过程的角度来看,快速原型所起的作用比较有限。

全自动代码生成在应用软件代码自动生成的基础上进一步发展,自动生成基础软件代码,从而实现整个控制器软件的自动代码生成,大幅削减控制器软件开发的工作量。

ControlBase提供了基于全自动代码生成的ECU快速开发解决方案。当作为快速原型工具使用时,ControlBase为常用电控系统控制算法提供一个快速验证的平台,既可用于实验室测试也可用于装车试验。当作为全自动代码生成工具使用时,ControlBase支持基础软件与应用软件的自动代码生成,削减了控制器软件开发的工作量。作为产品级原型硬件,ControlBase为控制器硬件设计提供参考,降低硬件返工几率。在控制器开发的整个过程中,使用ControlBase可以缩短开发周期,降低开发成本,提高控制器设计质量。

在控制器快速原型阶段,ControlBase适合于发动机ECU、自动变速器TCU、混合动力HCU、电动汽车VCU、防抱死制动系统ABS等常用汽车电控系统控制器的快速原型,为常用电控系统控制算法提供一个快速验证的平台,可以支持硬件在环测试、台架试验和实车试验。

在自动代码生成阶段,因为ControlBase所提供的全自动代码生成工具不仅支持快速原型控制器硬件,而且支持用户自主开发的控制器硬件,所以快速原型阶段的软件模型还可以继续使用,只需在快速原型模型的基础上增加必要的模块即成为完整的产品控制器软件模型。使用ControlBase 实现了整个控制器软件的自动代码生成,大幅削减控制器软件开发的工作量。

使用ControlBase的开发流程基于全自动代码生成技术,ControlBase将基础软件封装于Simulink模块库下,由此用户可以在MATLAB/Simulink这个统一的开发环境下进行基础软件与应用软件的开发。整个控制器软件开发过程都以图形化建模的方式实现,用户无需手工编程,无需手工代码集成,也无需代码移植。建模完成以后,模型在后台自动调用编译器,从而一键生成源代码文件,工程文件,测量标定文件,可执行文件等等。

基于ControlBase的控制器软件V型开发模式

ControlBase用于快速原型控制器软件开发工作量对比

ControlBase的基本组成

y产品级原型控制器硬件ControlBase_D

y全自动代码生成工具ControlBase_ET

y上位机监控标定软件ControlBase_MC

硬件技术特性

ControlBase_D选用汽车电控行业成熟的硬件方案,在保留必要硬件资源的条件下为多场合应用留有一定的冗余备份。由于ControlBase_D内部已经集成了信号调理与功率驱动电路,专门针对汽车级应用设计,符合严格的汽车级应用环境试验标准,使其可以直接装车试验,尤其适合于控制器试验阶段或整车小批量生产阶段。

硬件资源

ControlBase_D板载硬件资源如下:

y MCU:MPC5554,主频80MHz,Flash 2MB,SRAM 64KB

y CAN:3路,符合CAN2.0A,CAN2.0B,ISO11898

y模拟量输入:26路

y开关量输入:13路

y频率量输入:8路

y磁电式信号输入:2路

y曲轴信号支持霍尔式和磁电式,凸轮轴信号支持霍尔式

y继电器低端开关:16路

y低端开关:6路

y高端开关:6路

y传感器电源:4路

** 以上配置为基本配置,具体配置可根据需求进行

调整

硬件规格

参数单位

尺寸187×175×40 mm

重量 500 g 工作温度-40~+85 ℃

工作海拔 0~4000 m

供电电压9~32 V

峰值电压 40 Vmax 符合下列标准

温度、盐雾ISO16750-4

化学防护 ISO16750-5

防水试验ISO20653/IEC60529 IPx7

振动、冲击、跌落ISO16750-3

耐久试验85/85

软件技术特性

ControlBase 的软件包括全自动代码生成工具ControlBase_ET ,上位机测量标定软件ControlBase_MC 。 ControlBase_ET 技术特性

ControlBase_ET 是基于Simulink 的自动代码生成工具,用于配置汽车ECU 控制算法模型以及基础软件模型,并生成产品代码。支持飞思卡尔HCS12 (MC9S12)、HCS12X 、MPC55xx 、MPC56xx 等汽车电控系统主流芯片。

ControlBase_ET 是功能强大的基础软件Simulink 模块库,可以通过友好的用户界面便捷、直观地配置基础软件参数并由Simulink 模型自动生成基础软件代码。由于软件可以灵活、深层次地访问并配置基础软件参数,模型生成

的基础软件代码可以支持控制器快速原型及产品开发两个阶段。

ControlBase_ET 的主要特点: y 基础软件与应用软件在单个模型中实现 y 模型自动优化配置,无需手动设置Simulink 配置参数

y 直接从Simulink 模型访问底层驱动、标定协议、操作系统、通信协议等基础软件 y 功能强大的GUI 界面,可方便地配置整个基础软件

y

自动代码同时生成基础软件与应用软件,无需手动集成

y 后台自动调用编译器,无需手动设置 y 代码可靠,代码可读性与执行效率良好折中 y

同时提供芯片级模块库与控制器级模块库,支持用户自主开发的控制器硬件 ControlBase_MC 技术特性

ControlBase_MC 是通用的ECU 测量、标定工具,可以实时采集和显示ECU 内部数据,同时对ECU 内部参数进行在线调整。ControlBase_MC 通过CAN 总线实现上下位机之间的通信,支持基于CAN 的标定协议CCP 。

ControlBase_MC 的主要特点: y 数据测量与参数标定并行进行 y 种类丰富的图形控件,方便观察与修改 y 导出通用格式的测量文件 y 自动测量与标定并生成结果文档 y

ECU 程序刷写与升级

ControlBase的应用

控制器快速原型

ControlBase提供了一套控制器快速原型工具,适合于发动机ECU、自动变速器TCU、混合动力HCU、电动汽车VCU、防抱死制动系统ABS等常用汽车电控系统的快速原型。使用ControlBase 可以在没有控制器硬件的情况下,提前进行控制算法的开发与验证,尤其适合于新产品、新型号的开发研究,可以在一定程度上缩短开发周期,降低开发成本。

产品控制器代码生成

ControlBase提供了全自动代码生成工具,不仅支持快速原型控制器硬件,而且支持用户自主开发的控制器硬件,所以快速原型阶段的软件模型可以继续使用,只需在快速原型模型的基础上增加必要的模块即成为完整的产品控制器软件模型。使用ControlBase实现了整个控制器软件的自动代码生成,大幅削减控制器软件开发的工作量。

小批量装车

由于有些车型的产量并不是很高,例如仅仅装配数十辆到几百辆车用作示范运行,这种情况下如果全新开发一个控制器硬件收益将不大,直接选用ControlBase 将能够在成本和收益上取得很好的平衡。

车载/台架数据采集装置

由于ControlBase硬件集成的信号处理电路可以对很多常用传感器的输出信号进行处理并将数据上传到上位机,并且硬件能够满足装车或者台架试验的要求,所以可以将ControlBase用作车载数据采集装置或者台架数据采集装置。

旁通控制器

通用快速原型产品具有运算能力强的优点,但是不集成信号调理与功率驱动电路,在验证十分复杂的控制算法的时候,可以将ControlBase用作旁通控制器,配合通用快速原型使用,共同组成一个功能更完善的快速原型系统。

电控开发平台

ControlBase提供了一整套控制器快速开发解决方案,并且方案所采用的技术都是开放的、通用的,使用ControlBase作为电控开发平台,可以在加快开发进度的同时,更好地理解与掌握这些先进技术,提高开发能力。

Labview 自动生成程序及应用程序

Labview 自动生成程序及应用程序 周青教主 2011.12.28

一自动生成程序的功能 (1) 二相关背景 (1) 三实际开发应注意以下几点: (1) 四相关函数介绍及具体范例 (2) 1.相关函数 (2) 2.具体范例 (3) 2.1 最简单的一段代码如图 3所示: (3) 2.2 在While循环里面添加Add函数 (4) 2.3在前面板放置RoundButton控件 (4) 2.4在前面板放置簇,并在簇里面放置数值控件 (4) 2.5生成一个显示随机数的波形图表程序,并自动运行 (5) 2.6 将E的程序添加自动整理框图功能 (5) 2.7 连线前面板控件与接线端 (5) 2.8 前面板接线端样式介绍 (5) 3.小结 (5) 五自动生成应用程序 (5) 六应用示例 (6) 1.自动生成一个时钟的应用程序并自动生成相应EXE (6) 2.注意 (6)

Labview 自动生成程序及应用程序一自动生成程序的功能 在使用Labview过程中,我们能接触到各种项目设置、生成向导。如:创建仪器驱动项目向导,创建Labview实时项目向导等。使用向导可以减少用户的学习曲线时间,并能快速、准确和动态的生成代码。Labview VI脚本(VI Scripting)有助于通过编程,生成、编辑并检测Labview代码,便于开发向导程序。 通过LabVIEW 脚本可以实现编程创建、修改并运行LabVIEW 代码。它包含多种新的VI 服务器类、属性和方法,有助创建、移动并连接对象(包括前面板、程序框图、和图标),有助编辑连线板,有助创建新型动态VI。 二相关背景 1.什么是VI Scripting? ●VI Scripting 是Labview中功能强大的特性之一,它允许用 户通过程序去创建或修改Labview程序 ●基于VI Server ●从Labview8.6开始提供给用户使用 2.为什么我们需要VI Scripting? ●制作向导——能通过简单的对话框自动生成代码,减少学 习曲线并且增加生产率 ●支持VI检查——能获取VI内容并检查 ●创建编译器——方便把其它G或C代码转化为G代码 3.用VI Scripting,我们能做什么? ●理论上,我们应该能做任何Labview编辑器能做的事情 ●事实上,你能做如下事情等: ?创建新的VI ?添加新的对象到前、后面板 ?修改前、后面板上的对象 ?将前面板控件和接线面板相关联 三实际开发应注意以下几点: 1)利用Labview VI脚本(VI Scripting)创建Labview向导程序, 此向导程序用于动态生成VI;

从simulink模型到PLC代码的自动生成功能

从simulink模型到PLC代码的自动生成是MATLAB2010提供的功能,目前支持的PLC编程工具有: CoDeSys2.3, CoDeSys3.3, RSLogix5000, B&R Automation Studio 3.0, PLCOpen XML, BeckhoffTwinCat 2.11以及Generic。 本文介绍了MATLAB生成TwinCat 2.11的ST文档的方法,并使用TwinCat 2.11建立相应的工程项目。 2. 使用MATLAB/simulink生成PLC的st语言功能函数的方法 MATLAB提供了很多demo一备参考,本文以MATLAB demo中的plcdemo_simple.mdl为例。首先在MATLAB命令行中执行命令demo,选择simulink PLC coder->Demos->Basic Introductions and Examples->Generating Structured Text for a Simple Simulink Subsystem,然后打开该模型。 打开参数配置面板(Simulation->Configuration Parameters),进入PLC Coder的选项页,将Targer IDE选为BeckhoffTwinCat 2.11。然后应用。 回到模型,右键点击SimpleSystem,选择PLC Coder->Generate Code For Subsystem。如果没有错误,将在当前目录下生成plcdemo_simple.exp文件及诊断对话框。该文件即为ST语言的PLC文档。如下

20个代码生成框架

20个代码生成框架 1 1.1 CodeSmith 一款人气很旺国外的基于模板的dotnet代码生成器 官方网站:http://https://www.docsj.com/doc/4a8087883.html, 官方论坛:http://https://www.docsj.com/doc/4a8087883.html,/default.aspx 版权形式:30天试用 开源:否 需要先注册确认后才能下载 1.2 MyGenerator MyGenerator是又一个国外很不错的代码生成工具,有人觉得比CodeSmith简单、好用。 所有api可以在帮助菜单中找到。 官方网站:http://https://www.docsj.com/doc/4a8087883.html,/portal/default.aspx 官方论坛: 版权形式:免费 开源:否 1.3 NHibernate. NHibernate是Hibernate公司在Java自动生成领域取得巨大成功后推出的一款ORM工具. 官方网站:http://https://www.docsj.com/doc/4a8087883.html,/ 官方论坛: 版权形式:免费 开源:否 1.4 湛蓝.Net代码生成器

一款基于软件自动生成理念,能直接生成应用的dotnet代码生成器 官方网站:http://https://www.docsj.com/doc/4a8087883.html, 官方论坛:http://https://www.docsj.com/doc/4a8087883.html,/ 版权形式:免费 开源:否 1.5 动软.NET代码自动生成器 一款人气很旺的免费C#代码生成器 官方网站:http://https://www.docsj.com/doc/4a8087883.html, 官方论坛: 版权形式:免费 开源:否 1.6 CodePlus 专为sql server c#语言设计的代码生成器,功能还是很强大 官方网站:http://https://www.docsj.com/doc/4a8087883.html, 官方论坛: 版权形式:需要少量的注册费用 开源:否 下载地址很神秘 1.7 CodeMaker asp,jsp,php代码生成工具,自动生成维护数据库信息的动态网页的代码生成器。它可以帮助ASP、JSP、PHP开发人员快速的开发简单的数据库维护程序。无需任何编码,只需将数据库结构导入到CodeMaker中并做简单的设置,CodeMaker即可生成完整的数据库操作页面。用CodeMaker可以简单快速的创建网站后台维护程序。提高开发效率数十倍以

程序代码自动生成系统的设计与实现

万方数据

万方数据

万方数据

万方数据

基于敏捷开发的高校网络评教系统 作者:吴衡, WU Heng 作者单位:天水师范学院物理与信息科学学院,甘肃天水,741001 刊名: 计算技术与自动化 英文刊名:Computing Technology and Automation 年,卷(期):2011,30(4) 被引用次数:1次 参考文献(8条) 1.丁增富;葛信勇构建教学质量监控体系努力提高教学质量[期刊论文]-高等农业教育 2004(03) 2.陈莉和谐校园构建于素质教育双效联动[期刊论文]-中国市场 2007(2-3) 3.成奋华;金敏基于敏捷过程的IT项目范围管理的研究与应用[期刊论文]-计算机技术与发展 2010(10) 4.徐诚斌;王金平MVC在ThinkPHP框架中的应用研究 2011(03) 5.赵国栋;黄永中开源软件在高校的应用与推广策略研究[期刊论文]-中国资源综合利用 2007(01) 6.马文龙;高宝成用php实现基于MVC模式的Web应用程序开发 2008(07) 7.原晓林基于B/S教学管理系统的开发与研究[期刊论文]-山西警官高等专科学校学报 2009(04) 8.蓝蔚青;曹剑敏;张帆高校学生网络评教系统的构建与完善[期刊论文]-高等农业教育 2006(06) 引证文献(1条) 1.蒋建洪电子商务系统协同开发实践教学研究[期刊论文]-中国教育信息化·基础教育 2013(5) 本文链接:https://www.docsj.com/doc/4a8087883.html,/Periodical_jsjsyzdh201104028.aspx

【CN109765836A】PLC程序的自动生成方法、装置和实现装置【专利】

(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910108238.9 (22)申请日 2019.02.02 (71)申请人 宁波吉利汽车研究开发有限公司 地址 315000 浙江省宁波市杭州湾新区滨 海二路818号 申请人 吉利汽车研究院(宁波)有限公司 (72)发明人 胡峥楠 张尧 李志光 李红  黄天聪 李绪超  (74)专利代理机构 北京超凡志成知识产权代理 事务所(普通合伙) 11371 代理人 张阳 (51)Int.Cl. G05B 19/05(2006.01) (54)发明名称 PLC程序的自动生成方法、装置和实现装置 (57)摘要 本发明提供了一种PLC程序的自动生成方 法、装置和实现装置,其中,该方法包括:获取PLC 模板程序;该PLC模板程序包括硬件组态、变量名 称、安全程序和普通程序;获取保存有当前PLC的 控制对象的表格文件;在表格文件中,通过预设 的安全区域和模式区域将控制对象进行设备划 分,每个控制对象保存在对应的表格坐标中;根 据PLC模板程序和表格文件,生成当前PLC对应的 PLC程序。本发明可以缩短PLC离线程序的编写时 间,保证PLC程序的一致性,从而降低了编程的错 误率、提高了工作效率, 降低了项目成本。权利要求书2页 说明书9页 附图9页CN 109765836 A 2019.05.17 C N 109765836 A

权 利 要 求 书1/2页CN 109765836 A 1.一种PLC程序的自动生成方法,其特征在于,所述方法包括: 获取PLC模板程序;所述PLC模板程序包括硬件组态、变量名称、安全程序和普通程序; 获取保存有当前PLC的控制对象的表格文件;所述表格文件中,通过预设的安全区域和模式区域将所述控制对象进行设备划分,每个所述控制对象保存在对应的表格坐标中; 根据所述PLC模板程序和所述表格文件,生成所述当前PLC对应的PLC程序。 2.根据权利要求1所述的方法,其特征在于,所述根据所述PLC模板程序和所述表格文件,生成所述当前PLC对应的PLC程序的步骤,包括: 根据所述表格文件中,每个所述控制对象保存的对应的表格坐标,从所述PLC模板程序中导出对应的程序块的XML文件; 根据所述表格文件,修改所述XML文件的变量名称; 将修改后的所述XML文件导入TIA Portal中,生成所述当前PLC对应的PLC程序。 3.根据权利要求2所述的方法,其特征在于,所述根据所述表格文件,修改所述XML文件的变量名称的步骤,包括: 从所述表格文件中读取需要修改的变量名称和目标名称; 查找所述XML文件中所述需要修改的变量名称; 将所述需要修改的变量名称替换为所述目标名称。 4.根据权利要求1所述的方法,其特征在于,所述方法还包括: 从所述表格文件中获得存储文件夹名称; 建立所述存储文件夹名称对应的文件夹; 将所述PLC程序保存在所述文件夹中。 5.根据权利要求1所述的方法,其特征在于,所述方法还包括: 接收用户输入的模式区域的数量、HMI的数量、带模式旋钮的操作盒的数量。 6.一种PLC程序的自动生成装置,其特征在于,所述装置包括: 模板程序获取模块,用于获取PLC模板程序;所述PLC模板程序包括硬件组态、变量名称、安全程序和普通程序; 表格文件获取模块,用于获取保存有当前PLC的控制对象的表格文件;所述表格文件中,通过预设的安全区域和模式区域将所述控制对象进行设备划分,每个所述控制对象保存在对应的表格坐标中; 程序生成模块,用于根据所述PLC模板程序和所述表格文件,生成所述当前PLC对应的PLC程序。 7.根据权利要求6所述的装置,其特征在于,所述程序生成模块,还用于: 根据所述表格文件中,每个所述控制对象保存的对应的表格坐标,从所述PLC模板程序中导出对应的程序块的XML文件; 根据所述表格文件,修改所述XML文件的变量名称; 将修改后的所述XML文件导入TIA Portal中,生成所述当前PLC对应的PLC程序。 8.根据权利要求7所述的装置,其特征在于,所述程序生成模块,还用于: 从所述表格文件中读取需要修改的变量名称和目标名称; 查找所述XML文件中所述需要修改的变量名称; 将所述需要修改的变量名称替换为所述目标名称。 2

代码自动生成系统

本钢ERP代码自动生成系统的开发 史洪波 (本钢信息自动化公司软件开发事业部) 摘要:本钢ERP系统维护的工作量大,大部分的页面功能类似。在新增业务需求的情况下,可以利用本系统自动修改和生成JSP、Java、XML、SQL、Properties类型的全部代码,生成的代码可以提供新增、修改、删除、导入、树、打印、查询等基本功能。本系统原理是利用各种页面风格的JSP、Java、XML、SQL等文件作为模板,利用配置参数替换掉文件中可变部分,从而形成多种页面风格通用的代码生成系统。本文总结了本钢ERP中常用的6种页面样式,并用Java语言实现了其代码的自动生成过程,只需书写好DAO文件并在系统中填写少许的配置信息,然后点击按钮即可完成代码的产生,节省时间,提高工作效率。 关键词:ERP Java 代码自动生成 Benxi Steel ERP automatic code generation system Shi Hongbo (Benxi Steel Information & Automation Co.Ltd Software Development Department) ABSTRACT:There are a great deal maintain work in Benxi Iron and Steel Co. Ltd. ERP system, most of the page features are similar. In the case of needing new business, the system can automatically generate and modify all of the codes in many types, such as JSP, Java, Xml, SQL, Properties. Codes provide new, modify, delete, import, tree, print, query, and other basic functions and pride many different page styles by replacing the parameter of file. There are 6 common page styles are summarized in the Benxi Iron and Steel Co. Ltd. ERP, and use java language to achieve the automatic code generation process, just to write the file of DAO in the system and a little configuration information, then click the button to complete the code, saved a lot of time and improved the work efficiency. KEY WORD: ERP Java automatic-code-generation 作者简介: 史洪波,男,出生于1974年7月28日,1998年7月毕业于华东冶金学院工业分析专业,同年到本钢技术中心从事钢铁检验工作。2006年3月调至本钢信息自动化公司软件开发事业部从事软件开发工作。Email:mynameshb@https://www.docsj.com/doc/4a8087883.html, 1、引言 本钢ERP系统有着良好的开发规范,命名规则有规律可循,因此在新增业务需求的情况下非常适合用代码自动生成系统来减少开发过程中的工作量,减少了开发人员的Ctrl+C/Ctrl+V操作,节省时间,提高工作效率。本系统原理是利用各种页面风格的JSP、Java、XML、SQL等文件作为模板,利用配置参数替换掉文件中可变部分,从而形成多种页面风格通用的代码生成系统。本系统采用J2SE中的Awt和Swing技术来绘制整个系统的图形界面,使系统界面整洁美观,使用xml文件作为本系统的配置文件,并对XML文件设定了DTD的格式校验,保证XML的格式良好。在系统界面中输入少量的条件即可产生和修改JSP、Java、XML、SQL、Properites等类型的文件,并对已经存在的文件先备份成Bak文件,生成的代码可具有新增、修改、删除、查询、导入、树、打印等功能。由于XML具有便于阅读和理解,可扩展等优点,而DAO文件格式的不规范性,系统中还提供了DAO文件与XML格式的相互转换,转换中使用了XLST技术,简化了转

利用MATLABsimulink的自动代码生成工具开发PLC程序

1. 对于大型的、比较复杂的控制系统,手工编程不仅耗费人力,而且准确率较低。MATLAB/simulink是一种强大的模块化、图形化的编程工具,能够很方便的设计控制系统。MATLAB 2010a提供了从simulink模型到PLC代码的自动生成功能。目前支持的PLC编程工具有: CoDeSys2.3, CoDeSys3.3, RSLogix5000, B&R Automation Studio 3.0, PLCOpen XML, Beckhoff TwinCat 2.11以及Generic。 本文介绍了MATLAB生成TwinCat 2.11的ST文档的方法,并使用TwinCat 2.11建立相应的工程项目。 2. 使用MATLAB/simulink生成PLC的st语言功能函数的方法 MATLAB提供了很多demo一备参考,本文以MATLAB demo中的plcdemo_simple.mdl为例。首先在MATLAB命令行中执行命令demo,选择simulink PLC coder->Demos->Basic Introductions and Examples->Generating Structured Text for a Simple Simulink Subsystem,然后打开该模型。 打开参数配置面板(Simulation->Configuration Parameters),进入PLC Coder的选项页,将Targer IDE选为Beckhoff TwinCat 2.11。然后应用。 回到模型,右键点击SimpleSystem,选择PLC Coder->Generate Code For Subsystem。如果没有错误,将在当前目录下生成plcdemo_simple.exp文件及诊断对话框。该文件即为ST语言的PLC文档。如下

java自动生成代码

1.与数据库建立连接 在DBUtil中设置数据库相关的参数 Class.forName(driverName); conn = DriverManager.getConnection(url, user, password); 2.获得数据库中的所有表 Mapmaps = new HashMap(); PreparedStatement pstate = conn.prepareStatement("show table status"); ResultSet results = pstate.executeQuery(); while (results.next()) { String tableName = results.getString("NAME"); String comment = results.getString("COMMENT"); maps.put(tableName, comment); } 3.获得每个表中的信息

封装一个实体来存储表中的信息 PreparedStatement pstate = conn.prepareStatement("show full fields from " + tableName); ResultSet results = pstate.executeQuery(); List lists = new ArrayList(); while (results.next()) { Column column = new Column(); String field = results.getString("FIELD"); column.setFeildMapper(field); String fieldName = processField(field);

自动代码生成规则

自动代码生成 1.表存储过程 TableName规则为剔出” _ ,” - ”等特殊字符,首单词大写例如Sys_Log 转换后为SysLog 如果是FlowER 中,则命名规则为 usp_SystemName_TableName_Operation 否则命名规则为usp_SystemName _Operation 存储过程名称及其功能: 是否存在记录usp_SystemName _IsExist 添加一条记录usp_SystemName _Insert 更新一条记录usp_SystemName _Update 删除一条记录usp_SystemName _Delete 获取实体usp_SystemName _GetModel 获取一批记录usp_SystemName _GetList 2.Entity 私有属性定义时不赋予初始值 命名空间规则为:BenQ.Application.SystemName.Entity ClassName规则为TableName剔出” _ , ” - ”等特殊字符,首单词大写例如Sys_Log 转换后为SysLog 3.DataAccess

命名空间为:BenQ.Application.SystemName.DAL 函数及其功能: -- 是否存在记录public bool IsExist(PK), public IsExist(int RowID) -- 添加一条记录public Insert(BenQ.Application.SystemName.Entity objEntity) -- 更新一条记录public Update(BenQ.Application.SystemName.Entity objEntity) -- 删除一条记录public bool Delete(PK), public Delete(int RowID) -- 获取实体public Entity GetModel(PK), public Entity GetModel(int RowID), -- 获取一批记录public DataTable GetList (Parameters), public DataSet GetList (Parameters), 4.Business 命名空间为:BenQ.Application.SystemName.BL 函数及其功能: IsExist(int RowID) -- 添加一条记录bool bool bool bool -- 是否存在记录public bool IsExist(PK), public bool public bool

ASCET代码生成简易说明

ASCET 代码生成配置 ETAS/陈炯 对于所有特定芯片的项目都需要对相应的target 文件夹中的 *.ini , *.mk and *.xml 等文件进行配置,以满足代码生成的需要. ASCET 从模型生成代码, 在利用外部工具对代码进行编译链接生成可执行文件。参看下图。 所有特定芯片的代码生成过程是由以下三种类型的配置文件控制的: 1. codegen [_*].ini 文件控制核心的代码生成器。 2. target.ini 给用于OS 配置的项目编辑器提供特定的芯片信息。 3. memorySections.xml 定义了用于ASCET 实施编辑器中的内存类的名称,并将名称与特定芯片的编译指令映射起来。 ASCET 对代码进行编译是通过一系列的GNU makefile (后缀是 .mk )的文件进行控制的. ASCET 对代码的编译是在对项目编译的过程中进行的。 本文档所有内容摘自 v6.1 SE 手册,具体相关信息请查看手册。 C:\ETAS\ ETASManuals\ASCET V C:\ETAS\ETASManuals\ASCET V6.1\ASCET-SE Manual.pdf 1 codegen[_*].ini 文件 ASCET 使用3个文件来控制代码生成器: ? .\target\trg_\codegen.ini ? .\target\trg_\codegen_.ini ? .\target\trg_\codegen_ecco.ini 这几个文件一起控制以下的属性: ? 代码风格,例如变量名称 ? 代码生成,例如变量初始化,使用 #pragma 语句等 ? 整合操作系统,例如消息的选择,创建钩子函数,OIL 描述文件的产生 用户可以定义在代码生成过程中使用的这些 *.ini 文件,但一般不用修改这些文件。

C#自动代码生成器

C#自动代码生成器 自动生成数据表和实体类 namespace SQLApplicationAutoGeneratiTool { public partial class Form1 : Form { string[] strArray = { "int", "string", "decimal", "bool", "char", "object", "double", "float", "DateTime" }; String path = @"..\..\..\类文件\"; public Form1() { InitializeComponent(); } private void 新增文本框ToolStripMenuItem_Click(object sender, EventArgs e) { ShengChengKongJian(); } private void ShengChengKongJian() { ComboBox cobm = new ComboBox(); for (int i = 0; i < strArray.Count(); i++) { cobm.Items.Add(strArray[i]); } TextBox textbox = new TextBox(); this.flowLayoutPanel1.Controls.Add(cobm);

this.flowLayoutPanel2.Controls.Add(textbox); } StringBuilder stbd = null; List strbldList = new List(); private void button1_Click(object sender, EventArgs e) { if (comboBox1.Text.Trim() == "") { MessageBox.Show("类名不能为空"); return; } stbd = new StringBuilder("using System;"); strbldList.Add(stbd); stbd = new StringBuilder("using System.Collections.Generic;"); strbldList.Add(stbd); stbd = new StringBuilder("using System.Linq;"); strbldList.Add(stbd); stbd = new StringBuilder("using System.Text;"); strbldList.Add(stbd); stbd = new StringBuilder("using System.Data;"); strbldList.Add(stbd); stbd = new StringBuilder("using System.Data.SqlClient;"); strbldList.Add(stbd); stbd = new StringBuilder("using System.Windows.Forms;"); strbldList.Add(stbd); stbd = new StringBuilder("namespace HospitalInformationManagmentSystem"); strbldList.Add(stbd); stbd = new StringBuilder("{"); strbldList.Add(stbd); stbd = new StringBuilder(" /* 作者:大理大学软件教研室杜老师"); strbldList.Add(stbd); stbd = new StringBuilder(" * 日期:" + dateTimePicker1.Text.Trim()); strbldList.Add(stbd); stbd = new StringBuilder(" * 版权:大理大学"); strbldList.Add(stbd); stbd = new StringBuilder(" * 你可以免费使用或修改以下代码,但请保留版权信息,否则将追究相关责任"); strbldList.Add(stbd); stbd = new StringBuilder(" */"); strbldList.Add(stbd); stbd = new StringBuilder(" public class "); stbd.Append(comboBox1.Text.Trim()); strbldList.Add(stbd);

相关文档