2.2.2 VIPLE的活动和服务
现在我们开始学习VIPLE中的常用工具。“基本活动”(Basic Activities)工具箱窗口包含所有组成数据流以及创建数据类型和变量的常用工具和组件。基本活动工具箱窗口有一个注释功能,它允许开发者为代码写文档。
图2-9列出了VIPLE中的基本活动。用户可以随时在英文和中文之间切换。
下面解释图2-9中的活动。
活动(Activity):活动用以创建新的组件、服务、函数或者其他代码模块。只要简单地将一个活动拖至图中,打开它就可以组成一个新的组件。
活动也包括其他活动的组件,这使得组件以及重用基本块活动成为可能。从这个角度看,VIPLE中的整个应用程序本身就是一个活动。
一个活动只能在当前程序中使用。一个活动可以被编译成一个服务。一个程序中创建的一个服务可以用于其他程序中。
变量(Variable):变量代表一个内存位置,也就是程序用来存取数值的地方,比如一个文字串或者数字。
计算(Calculate):计算活动可以用来计算数学公式(加、减、乘、除),也可以用来从其他组件或者文本框中提取数据。与C#中的赋值相似,比如,x=5+7。
对于数值运算,使用以下运算符号:
对于逻辑运算,可以使用以下运算符号:
数据(Data):数据活动可以用来给另一个活动或者服务提供一个简单数据。可以在文本里输入一个数值。根据输入的数值,数据的类型是自动决定的。VIPLE支持C#中所有的数据类型。下表中给出了VIPLE支持的常用数据类型。
与并(Join):与并活动把两个或者更多的数据流输入合并。所有输入连接的数据必须先被接收然后才能被进一步处理。与并可以用来合并一个活动所需的多个输入。
或并(Merge):或并活动需要两个或更多数据流输入。当第一个数据到达时,这个活动就会接着处理下一步,而不需要等待其他数据到达。或并可以用来实现一个循环。或并明显不同于与并:或并只会等第一个输入到达,而与并需要等所有输入都到达。
如果(If):如果活动提供输出选项,可以根据输入的条件转发传入的信息。如果条件为真,第一个输出连接就会转发输入的信息(及它的数据)。但当条件不为真时,就会使用否则里的输出。VIPLE里的如果语句和传统编程语言中的如果语句类似,如Java和C#。VIPLE里的如果活动可以在一个活动框中检查多个条件。也就是说,它可以合并多个连续的如果语句。
条件表达式可以使用以下运算符:
开关(Switch):与C#中的开关类似,开关活动可以用来按照相匹配的文本框中的输入消息来发送消息。只需点击活动框中的加(+)按钮即可添加Case分支(匹配条件)。
条件循环(While):与C#中的While类似,While活动创建一个将输入消息转发到一组工作块的条件,与If活动非常相似。它们的区别在于工作块在执行后,消息和数据会回到这个While活动里,然后会重新检测这个条件。简单地说,If活动会让消息继续下去,而While活动会产生一个循环。
退出(Break):这个活动可以放在While循环中,用来提前退出循环。比如,在没有使初始条件为假时退出循环。
结束循环(End While):这个活动标示了While循环的结束,并把输入消息返回到原始的开始这个循环的While活动。
注释(Comment):这个活动能够让用户添加一个文本工作块到工作图中进行文档撰写。
在基本的活动之外,VIPLE也提供了很多内建的服务用以传统的输入和输出,也包括机器人相关的服务,比如传感器服务、发动机和驱动服务。图2-10显示了部分服务。
在编写VIPLE程序之前,我们先了解一下VIPLE的菜单,如图2-11所示。
下面我们解释VIPLE菜单和它们的意义。
(1)文件
- 新建——新建一个项目。
- 打开——打开已有的项目文件。
- 保存——保存当前项目。
- 另存为——将项目另存为一个特殊的文件名。
- 打印——允许你打印工作图以供报告使用。
- 退出——退出VIPLE。
(2)编辑 - 撤销(上一个操作)——撤销最后一次编辑操作。
- 重复(上一个操作)——重做最后一次“撤销”操作。
(3)服务 - 添加WSDL服务——将一个WSDL Web服务添加到VIPLE里。
- 注意:RESTful服务可以从服务列表中添加。
(4)运行 - 启动——在VIPLE环境中开始运行当前项目。
- 启动Unity模拟器——启动Unity模拟器环境。
- 启动Web 2D模拟器——启动基于Web的二维模拟器环境。
- 启动Web 3D模拟器——启动基于Web的三维模拟器环境。
(5)工具 - 动态配置选项——自定义机器人的功能列表。
- 选项——提交调试信息和记录控制台日志的方式。
(6)语言 - English——英文菜单。
- 中文——中文菜单。
(7)帮助 - 关于VIPLE——关于软件的版本。
练习:我们已经了解了可视化编程环境和VIPLE的基础知识,完成下面的练习以检测你是否掌握了这些基础知识,确保正确完成这些题目后再开始后续的实践。
-
哪些可视化编程环境主要用作桌面机上的游戏和电影开发?(多选)
A.Alice B.App Inventor C.Lego EV3 D.VIPLE E.Scratch
-
哪些可视化编程环境主要用于机器人应用开发?(多选)
A.Alice B.App Inventor C.Lego EV3 D.VIPLE E.Scratch
-
哪个可视化编程环境主要用于智能手机上的游戏和电影开发?
A.Alice B.App Inventor C.Lego EV3 D.VIPLE E.Scratch
-
VIPLE 是指什么?(多选)
A.一个面向服务的软件开发环境 B.一个基于汇编编程语言的开发环境 C.一个基于Java的编程环境 D.一个可视化编程语言
-
VIPLE是谁开发的?
A.ASU B.MIT C.Google D.Microsoft
-
VIPLE用来做什么?
A.明确问题的需求 B.草拟多个解决方案 C.建立问题模型 D.测试需求的正确性
-
VIPLE支持哪些基本活动(多选)
A.变量(Variable) B.计算(Calculate) C.数据(Data) D.类(Class)
-
与并(Join)和或并(Merge)的主要区别是什么?
A.与并会在第一个数据到达后继续 B.或并会在第一个数据到达后继续 C.或并会在最后一个数据到达后继续 D.与并和或并必须成对使用,就像如果和否则一样
-
基本活动列表中的一个活动被用于做什么?
A.创建一个变量 B.创建一个组件 C.合并两个输入数据 D.聚合两个输入数据
-
在一个VIPLE程序中创建哪个组件可以用于另一个VIPLE程序?(多选)
A.活动(activity) B.服务(Service) C.变量(variable) D.数据(Data)
-
VIPLE的如果(If)活动用于什么?
A.只可以用来处理一个活动中的一个条件 B.可以处理一个活动中的多个条件 C.开关活动的功能完全一样 D.与或并活动的功能完全一样
-
设计VIPLE的目的是什么?
A.仅用于机器人编程 B.用于机器人编程,但也可用于其他应用 C.是用来代替C#而成为下一代通用编程语言的 D.是用来代替Java而成为下一代通用编程语言的
-
在VIPLE中支持哪些数值运算?
A.+ 和 - B.* 和 / C./ 和 % D.以上所有
-
在VIPLE中支持哪些逻辑运算
A.AND B.OR C.NOT D.以上所有
-
在VIPLE中不支持以下哪种数据类型?
A.布尔型(Boolean) B.整型(Int32) C.类(Class) D.字符串(String)
-
VIPLE中的模拟环境是什么?(多选)
A.基于Alice游戏引擎的环境 B.一个Web 2D环境 C.一个Web 3D环境 D.MIT的App Inventor
-
什么环境可以用来运行VIPLE程序?
A.真实机器人 B.Unity模拟器 C.Web模拟器 D.以上所有