【Rhapsody+SysML学习笔记】3.Dishwasher

本文最后更新于:2024年3月29日 上午

1 新建项目Dishwasher

2 添加类“Dishwasher”

3 添加以下属性(Attributes)

类型为int型,初始值为0。

4 添加操作

各操作实现如下:

5 添加类型

浏览器选择包Default,右键选择“新增”–“类型”。

名称设置为“MAX_CYCLES”,种类设置为“Language”,添加描述:const int %s = 3;

6 创建组件

按照前面的例程(【Rhapsody+SysML学习笔记】1.Hello World - SummerSong’s blog)重命名组件 DefaultComponentTest,配置 DefaultconfigDebugDebug 配置为动画。

7 创建状态图

详细步骤可参考【Rhapsody+SysML学习笔记】2.Count Down - SummerSong’s blog

8 创建并发状态

用“与线”功能创建并发状态。

9 显示状态名称

在状态图某状态框空白位置右键选择“显示选项”,选择名称。

10 重命名状态名

双击状态名可进行重命名。

11 添加状态

添加以下状态。

12 添加历史记录连接符与图连接符

13 添加缺省转换

14 添加转换

图中[isDryed()]应为[isDried()]。

15 入口操作

normal状态添加入口操作

16 保存、编译执行

保存文件,编译执行。

点击“转为闲置”,创建一个实例。

  • 如果未出现Dishwasher实例,可能是因为配置中没有选择一个初始的instance。

17 打开实例状态图

应该有三个高亮状态

18 插入事件

此时Dishwasher处于闲置状态。

生成事件evStart。方法:右击实例状态图任意位置,点击生成事件。

此时evStart出现在事件队列中。

19 创建测试脚本

  • 在组件Test中新增一个文件TestScript.cfg
  • 设置路径为..\..
  • 设置类型为“其他”

  • 添加文本元素

  • 输入以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Script to test the Dishwasher
output TestScript.log
trace #all all
timestamp
// First get the Dishwasher to a known state
go idle
Dishwasher->GEN(evService)
Dishwasher->GEN(evMode)
break Dishwasher stateEntered off
break Dishwasher stateEntered faulty
Dishwasher->GEN(evStart)
go
Dishwasher->GEN(evStart)
go
Dishwasher->GEN(evStart)
go
Dishwasher->GEN(evStart)
go
//should now be in faulty
go
//remove breakpoints
break Dishwasher -stateEntered off
break Dishwasher -stateEntered faulty

20 运行测试脚本

  • 此时,脚本已经创建了一个日志文件TestScript.log,我们可以通过添加一个文件,名字为TestScript.log,类型为“其他”,路径为..\..

21 阅读日志文件

浏览器右键日志文件TestScript.log,选择“编辑File”,注意需要项目停止运行


【Rhapsody+SysML学习笔记】3.Dishwasher
https://summersong.top/post/12055bee.html
作者
SummerSong
发布于
2023年7月25日
更新于
2024年3月29日
许可协议