《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.2.2 VIPLE的活动和服务

简介: 本节书摘来华章计算机《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一书中的第2章 ,第2.2.2节,陈以农 陈文智 韩德强 著 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2.2 VIPLE的活动和服务

现在我们开始学习VIPLE中的常用工具。“基本活动”(Basic Activities)工具箱窗口包含所有组成数据流以及创建数据类型和变量的常用工具和组件。基本活动工具箱窗口有一个注释功能,它允许开发者为代码写文档。
图2-9列出了VIPLE中的基本活动。用户可以随时在英文和中文之间切换。
下面解释图2-9中的活动。
活动(Activity):活动用以创建新的组件、服务、函数或者其他代码模块。只要简单地将一个活动拖至图中,打开它就可以组成一个新的组件。
活动也包括其他活动的组件,这使得组件以及重用基本块活动成为可能。从这个角度看,VIPLE中的整个应用程序本身就是一个活动。

image

一个活动只能在当前程序中使用。一个活动可以被编译成一个服务。一个程序中创建的一个服务可以用于其他程序中。
变量(Variable):变量代表一个内存位置,也就是程序用来存取数值的地方,比如一个文字串或者数字。
计算(Calculate):计算活动可以用来计算数学公式(加、减、乘、除),也可以用来从其他组件或者文本框中提取数据。与C#中的赋值相似,比如,x=5+7。
对于数值运算,使用以下运算符号:
image

对于逻辑运算,可以使用以下运算符号:
image

数据(Data):数据活动可以用来给另一个活动或者服务提供一个简单数据。可以在文本里输入一个数值。根据输入的数值,数据的类型是自动决定的。VIPLE支持C#中所有的数据类型。下表中给出了VIPLE支持的常用数据类型。
image

与并(Join):与并活动把两个或者更多的数据流输入合并。所有输入连接的数据必须先被接收然后才能被进一步处理。与并可以用来合并一个活动所需的多个输入。
或并(Merge):或并活动需要两个或更多数据流输入。当第一个数据到达时,这个活动就会接着处理下一步,而不需要等待其他数据到达。或并可以用来实现一个循环。或并明显不同于与并:或并只会等第一个输入到达,而与并需要等所有输入都到达。
如果(If):如果活动提供输出选项,可以根据输入的条件转发传入的信息。如果条件为真,第一个输出连接就会转发输入的信息(及它的数据)。但当条件不为真时,就会使用否则里的输出。VIPLE里的如果语句和传统编程语言中的如果语句类似,如Java和C#。VIPLE里的如果活动可以在一个活动框中检查多个条件。也就是说,它可以合并多个连续的如果语句。
条件表达式可以使用以下运算符:
image

开关(Switch):与C#中的开关类似,开关活动可以用来按照相匹配的文本框中的输入消息来发送消息。只需点击活动框中的加(+)按钮即可添加Case分支(匹配条件)。
条件循环(While):与C#中的While类似,While活动创建一个将输入消息转发到一组工作块的条件,与If活动非常相似。它们的区别在于工作块在执行后,消息和数据会回到这个While活动里,然后会重新检测这个条件。简单地说,If活动会让消息继续下去,而While活动会产生一个循环。
退出(Break):这个活动可以放在While循环中,用来提前退出循环。比如,在没有使初始条件为假时退出循环。
结束循环(End While):这个活动标示了While循环的结束,并把输入消息返回到原始的开始这个循环的While活动。
注释(Comment):这个活动能够让用户添加一个文本工作块到工作图中进行文档撰写。
在基本的活动之外,VIPLE也提供了很多内建的服务用以传统的输入和输出,也包括机器人相关的服务,比如传感器服务、发动机和驱动服务。图2-10显示了部分服务。

image

在编写VIPLE程序之前,我们先了解一下VIPLE的菜单,如图2-11所示。
image

下面我们解释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的基础知识,完成下面的练习以检测你是否掌握了这些基础知识,确保正确完成这些题目后再开始后续的实践。

  1. 哪些可视化编程环境主要用作桌面机上的游戏和电影开发?(多选)

    A.Alice    B.App Inventor    C.Lego EV3
    D.VIPLE    E.Scratch
  2. 哪些可视化编程环境主要用于机器人应用开发?(多选)

    A.Alice    B.App Inventor    C.Lego EV3
    D.VIPLE    E.Scratch
  3. 哪个可视化编程环境主要用于智能手机上的游戏和电影开发?

    A.Alice    B.App Inventor    C.Lego EV3
    D.VIPLE    E.Scratch
  4. VIPLE 是指什么?(多选)

    A.一个面向服务的软件开发环境
    B.一个基于汇编编程语言的开发环境
    C.一个基于Java的编程环境
    D.一个可视化编程语言
  5. VIPLE是谁开发的?

    A.ASU    B.MIT    C.Google        D.Microsoft
  6. VIPLE用来做什么?

    A.明确问题的需求        B.草拟多个解决方案
    C.建立问题模型        D.测试需求的正确性
  7. VIPLE支持哪些基本活动(多选)

    A.变量(Variable)        B.计算(Calculate)
    C.数据(Data)        D.类(Class)
  8. 与并(Join)和或并(Merge)的主要区别是什么?

    A.与并会在第一个数据到达后继续
    B.或并会在第一个数据到达后继续
    C.或并会在最后一个数据到达后继续
    D.与并和或并必须成对使用,就像如果和否则一样
  9. 基本活动列表中的一个活动被用于做什么?

    A.创建一个变量        B.创建一个组件
    C.合并两个输入数据    D.聚合两个输入数据
  10. 在一个VIPLE程序中创建哪个组件可以用于另一个VIPLE程序?(多选)

        A.活动(activity)        B.服务(Service)
        C.变量(variable)        D.数据(Data)
  11. VIPLE的如果(If)活动用于什么?

        A.只可以用来处理一个活动中的一个条件
        B.可以处理一个活动中的多个条件
        C.开关活动的功能完全一样
        D.与或并活动的功能完全一样
  12. 设计VIPLE的目的是什么?

        A.仅用于机器人编程
        B.用于机器人编程,但也可用于其他应用
        C.是用来代替C#而成为下一代通用编程语言的
        D.是用来代替Java而成为下一代通用编程语言的
  13. 在VIPLE中支持哪些数值运算?

        A.+ 和 -        B.* 和 /    
        C./ 和 %        D.以上所有
  14. 在VIPLE中支持哪些逻辑运算

        A.AND        B.OR    
        C.NOT        D.以上所有
  15. 在VIPLE中不支持以下哪种数据类型?

        A.布尔型(Boolean)    B.整型(Int32)
        C.类(Class)        D.字符串(String)
  16. VIPLE中的模拟环境是什么?(多选)

        A.基于Alice游戏引擎的环境    B.一个Web 2D环境
        C.一个Web 3D环境    D.MIT的App Inventor
  17. 什么环境可以用来运行VIPLE程序?

        A.真实机器人        B.Unity模拟器
        C.Web模拟器        D.以上所有
相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
海尔、乐聚联手,发布国内首款家庭服务人形机器人
近日,乐聚机器人在全网了发布了一段人形机器人进入家庭干活的视频,视频中机器人进入家庭开始学习并执行洗衣、浇花、插花、晾衣服等任务。 据悉,这是海尔、乐聚机器人在面向家庭场景应用的首次探索,目前这款机器人也正在2024年中国家电及消费电子博览会(简称:AWE)上联合展出。
|
11月前
|
机器人
服务机器人绑定雷达端口和绑定底盘步骤
服务机器人绑定雷达端口和绑定底盘步骤
63 0
|
机器学习/深度学习 人工智能 安全
ChatGPT聊天AI能火多久?华云天下智能VSBOT虚拟服务机器人不止于聊天
这两天,一款智能聊天机器人程序ChatGPT“出圈”了 很多朋友都在谈论它,使用过的人都惊叹于它强大的理解能力 仿佛在屏幕的另一端,真的有人在与自己对话。 不少商界大佬也纷纷夸赞ChatGPT。 马斯克表示,“ChatGPT很惊人,我们离强大到危险的人工智能不远了。”
435 0
ChatGPT聊天AI能火多久?华云天下智能VSBOT虚拟服务机器人不止于聊天
|
人工智能 语音技术 开发工具
【0元试用微软 Azure人工智能认知服务】我做了个群聊天机器人
我这边参加了CSDN与微软Azure举办的0元试用微软Azure人工智能认知服务活动。第一次使用微软Azure 认知服务,老实说,还是满心期待的。
253 0
【0元试用微软 Azure人工智能认知服务】我做了个群聊天机器人
|
自然语言处理 机器人
|
小程序 机器人 开发者
通过机器人推送的服务无法进入页面没有任何提示
企业内部应用,已发布。配置的机器人推送,点击跳转无任何提示,毫无反应
120 0
|
新零售 运维 自动驾驶
稳定服务亿级连接,阿里云IoT物联网络新能力发布
阿里云发布的物联网络新能力,包括新平台、新网络和新生态,突出智能高效的特点。
358 0
稳定服务亿级连接,阿里云IoT物联网络新能力发布
EMQ
|
存储 缓存 JSON
EMQX Cloud 影子服务:便捷数据缓存服务,加速 IoT 应用开发
影子服务是EMQX Cloud提供的一个设备数据缓存服务,可以帮助用户省去打通EMQX Cloud和第三方数据服务的步骤,极大节省开发时间与成本。
EMQ
195 0
EMQX Cloud 影子服务:便捷数据缓存服务,加速 IoT 应用开发
|
人工智能 算法 安全
积极应对人口老龄化,服务机器人乘势而上
人口老龄化带来的需求十分旺盛,未来服务型机器人的市场空间也将进一步拓展。目前智能机器人在养老行业已有应用,在人工智能和智能柔性关节的支持之下,智能机器人已成为新型的 5G 服务。
积极应对人口老龄化,服务机器人乘势而上
|
运维 监控 安全
稳定服务超百万家庭 觅睿科技使用IoT平台大幅降低运维成本
稳定服务超百万家庭 觅睿科技使用IoT平台大幅降低运维成本
212 0
稳定服务超百万家庭 觅睿科技使用IoT平台大幅降低运维成本

热门文章

最新文章