基于Rhapsody和VxWorks的自动取款机系统
??一旦画出其余的图表并创建好不同类的实例后,就能进行代码的生成和模型的测试工作。在Rhapsody中,需要进行一些配置,以告诉Rhapsody从哪些类生成代码及使用什么样的环境。首先,使用Microsoft环境(Windows操作环境和Visual C++编译器)。然后,代码在Rhapsody中生成和编译,以产生可执行程序。
2.5 使UML模型有效
??Rhapsody能使用自动生成的代码,所以,当实际的代码运行时,它能返回一些信息给调试工具,以便Rhapsody进行模型的测试。通过模型级调试、验证,可以尽早发现系统的设计错误或缺陷,从而较早地确定或降低项目的风险。
2.6 测试模型
??一旦自动柜员机封装被手工产生的事件测试通过并观察发生的情况后,就可以利用如微软的Visual C++产生一个GUI。用于创建GUI的类从Ihardware类继承而来,选中set选项,当按钮被按下时,调用ON操作。GUI也能促使模型在模型级再次被调试。
3 在VxWorks上运行
??模型是系统整体的抽象。软件开发的最终形式必须生成程序代码,模型毕竟是一些漂亮的蓝图。虽然它对软件的设计有很大的作用,但用户的最终目的是希望得到可执行的程序。对于嵌入式实时系统,代码与系统要求(时间约束、资源的限制等)是紧密联系的,用最终形式的源程序验证系统的模型更准确。
??Rhapsody可利用软件自动生成技术的成果,根据模型可以自动生成具有产品质量的代码。这种代码既可以作为系统模型验证的代码,也是系统最后提交的代码。所以产生的代码是基于某个具体平台的代码,通过编译即可运行在该平台上。本文采用的是美国 Wind River System 公司推出的一个实时操作系统VxWorks。它是一个运行在目标机上的高性能、可裁剪的嵌入式实时操作系统。
??一旦自动取款机系统被设计、实现和测试后,它就能在实时多任务操作系统VxWorks上实现。1个键盘、1个LCD液晶显示屏、1个插卡孔、1根与银行的上位机相连的双绞线和1个输出现金口经由I/O板连接到1个目标板上。
??从Ihardware类继承而来并选中set选项而创建新类HwIrq。这些操作的实例可以被写进Rhapsody中。为了写到I/O板中,使用VxWorks系统的操作sysOutByte。
??HwIrq类已经被设置成一个活动类,所以它能在自己的线程运行,线程的参数被配置如下:线程名为tRhpHw,堆栈长度为4096字节,优先级为180。
??HwIrq.cpp的部分程序见本刊网络补充版(http://fanwen.oyaya.net收集整理)。
4 结 论
??本文运用基于UML的嵌入式实时应用软件开发环境Rhapsody来设计和实现自动取款机系统的模型。与传统的嵌入式软件开发方法相比,具有明显的优势。它大大缩短了产品的开发周期,解决了嵌入式应用软件的移植问题,使软件的开发工作主要集中在高层的建模和模型的测试及验证上,从而使软件开发工作的焦点从编码转到了设计上。
《基于Rhapsody和VxWorks的自动取款机系统(第3页)》