《计算机科学与工程导论:基于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.以上所有
相关文章
|
消息中间件 传感器 监控
IoT企业物联网平台,数据服务开发实战
IoT企业物联网平台开发实战
427 0
|
4月前
|
Web App开发 机器人
公众号爆文仿写RPA机器人,采集,仿写,发布一条龙服务
公众号爆文仿写RPA机器人,采集,仿写,发布一条龙服务
300 1
|
10天前
|
存储 JSON 运维
智能物联网平台:Azure IoT Hub在设备管理中的实践
【10月更文挑战第26天】随着物联网技术的发展,Azure IoT Hub成为企业管理和连接数百万台设备的强大平台。本文介绍Azure IoT Hub的设备管理功能,包括设备注册、设备孪生、直接方法和监控诊断,并通过示例代码展示其应用。
17 4
|
3月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
当今社会,物联网技术的发展带来了许多繁琐的挑战,尤其是在数据库管理系统领域,比如实时整合海量数据、处理流中的事件以及处理数据的安全性。例如,应用于智能城市的基于物联网的交通传感器可以实时生成大量的交通数据。据估计,未来5年,物联网设备的数量将达数万亿。物联网产生大量的数据,包括流数据、时间序列数据、RFID数据、传感数据等。要有效地管理这些数据,就需要使用数据库。数据库在充分处理物联网数据方面扮演着非常重要的角色。因此,适当的数据库与适当的平台同等重要。由于物联网在世界上不同的环境中运行,选择合适的数据库变得非常重要。 原创文字,IoTDB 社区可进行使用与传播 一、什么是IoTDB 我
170 9
Apache IoTDB进行IoT相关开发实践
|
3月前
|
机器人 C# 人工智能
智能升级:WPF与人工智能的跨界合作——手把手教你集成聊天机器人,打造互动新体验与个性化服务
【8月更文挑战第31天】聊天机器人已成为现代应用的重要组成部分,提供即时响应、个性化服务及全天候支持。随着AI技术的发展,聊天机器人的功能日益强大,不仅能进行简单问答,还能实现复杂对话管理和情感分析。本文通过具体案例分析,展示了如何在WPF应用中集成聊天机器人,并通过示例代码详细说明其实现过程。使用Microsoft的Bot Framework可以轻松创建并配置聊天机器人,增强应用互动性和用户体验。首先,需在Bot Framework门户中创建机器人项目并编写逻辑。然后,在WPF应用中添加聊天界面,实现与机器人的交互。
91 0
|
4月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
IoTDB是专为物联网(IoT)设计的开源时间序列数据库,提供数据收集、存储、管理和分析。它支持高效的数据写入、查询,适用于处理大规模物联网数据,包括流数据、时间序列等。IoTDB采用轻量级架构,可与Hadoop和Spark集成,支持多种存储策略,确保数据安全和高可用性。此外,它还具有InfluxDB协议适配器,允许无缝迁移和兼容InfluxDB的API和查询语法,简化物联网项目的数据管理。随着物联网设备数量的快速增长,选择适合的数据库如IoTDB对于数据管理和分析至关重要。
242 12
|
4月前
|
存储 分布式计算 物联网
Apache IoTDB进行IoT相关开发实践
The article introduces IoTDB, an open-source time-series database designed for efficient management of IoT-generated data. It addresses challenges like real-time integration of massive datasets and security. IoTDB supports high-performance storage,
137 0
Apache IoTDB进行IoT相关开发实践
|
4月前
|
人工智能 自然语言处理 机器人
客户在哪儿AI的ToB获客服务和AI外呼机器人的有何不同
客户在哪儿AI的ToB获客服务 VS AI外呼机器人的ToB获客服务。
|
4月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。 几十年来,一些趋势已经强有力地显现出来。计算机硬件已经迅速变得更快、更便宜、更小;互联网带宽已经迅速变得越来越大,同时也越来越便宜;优质的计算机软件已经变得越来越丰富,并且通过“开源”方式免费或几乎免费;很快,“物联网”将连接数以百亿计的各种可想象的设备。这将导致以快速增长的速度和数量生成大量数据。 在今天的计算技术中,最新的创新
|
4月前
|
分布式计算 NoSQL 物联网
麻省理工IOT教授撰写的1058页Python程序设计人工智能实践手册!
Python是世界上最流行的语言之一,也是编程语言中使用人数增长最快的一种。 开发者经常会很快地发现自己喜欢Python。他们会欣赏Python的表达力、可读性、简洁性和交互性,也会喜欢开源软件开发环境,这个开源环境正在为广泛的应用领域提供快速增长的可重用软件基础。
下一篇
无影云桌面