npm包zetta使用教程

前言

npm是javascript的包管理器,可以很方便的管理第三方的javascript库或者工具包等资源,zetta是其中一个非常优秀的npm包,它可以帮助我们快速构建物联网设备应用。本文主要介绍zetta的相关知识,并结合实际例子讲解基本使用。

安装zetta

zetta的安装很简单,可以使用npm进行安装:

--- ------- ----- ------

使用--save会将zetta加入到项目的依赖中

zetta简介

zetta是一个物联网设备应用构建框架,它将物联网设备抽象成一个个资源,然后将这些资源拼凑在一起,形成一个完整的设备应用。zetta不仅仅可用于构建物联网设备,它还提供了很多API,可以用来构建很多不同的系统。

zetta应用结构

zetta应用的结构大致分为两个部分:

  1. device:将物联网设备本身抽象为一个完整的js对象。
  2. scout:scout是设备发现过程的逆转,当device初始化后,device会去它的“父级”去查找并连接设备。

设备

zetta的设备由一个或多个属性(state)组成,例如一个on/off开关:

--- ------ - ------------------------
--- ---- - ----------------

--- ------------- - -------------- - ---------- -
  ------------------
--

---------------------------- --------

---------------------------- - ---------------- -
  ------
    ----------------
    ---------------
    -------------
    ------------ - ------ ----------- --
    ----------- - ------ ------------ --
    ---------------- -------------
    --------------- -------------

--

------------------------------- - ------------ -
  ---------- - ------
  -----
--

------------------------------ - ------------ -
  ---------- - -----
  -----
--

设备有几个重要的API:

init(config)

初始化方法,可以设置设备的属性、状态以及“行为”的定义。其中,state可以用来存储设备的状态。

when用来定义状态机

map用来定义设备可用的api接口

例如:.map('turn-on', this.turnOn)定义了一个api接口为“turn-on”,回调为this.turnOn。

emit(event, data)

在设备状态变化时触发,向其他设备广播当前设备的状态变化。

stream

流,将设备的状态信息以stream的方式传递出去。

Scout

scout用来发现符合某些条件的设备,scout有三个事件:

discover(devices)

发现设备事件,当符合scout特定条件时被触发,触发时会传递所有发现的设备。

add(device)

新设备加入事件,当scout自行添加了新的设备时触发,触发时会把新设备传递出去。

remove(device)

设备删除事件,当scout删除了某个设备时触发,触发时会把删除的设备传递出去。

一个简单的zetta例子

--- ----- - -----------------
--- --- - ---------------------------------
--- ------ - ------------------------------------

-------
  -------------------
  ---------
  ------------
  ------------ --------- -- --------
  ------------- -----------
     ------------------ -- ------- -- ------------------------
  ---

以上代码构建了一个LED和Button的控制设备,示意图如下:

这是一个简单的zetta应用,通过上述代码我们可以发现zetta非常适合构建物联网设备应用。

小结

zetta是一个很好的物联网设备构建框架,通过以上的介绍,我们了解了zetta的相关知识,以及怎么用一个例子来构建一个zetta应用。

希望本文可以帮助读者更好的了解zetta,一起体验物联网的魅力。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/89604


猜你喜欢

  • npm 包 @dmail/shared-config 使用教程

    在前端开发中,经常会涉及到使用配置文件来设置应用程序的选项和属性。为了方便统一管理这些配置文件,开发人员通常会使用 npm 包来实现配置的共享和管理。在本文中,我们将介绍一个非常实用的 npm 包,即...

    5 年前
  • npm 包 @crpt/react-data-grid 使用教程

    @crpt/react-data-grid 是一个 React 前端组件库,他提供了一个灵活的数据表格,可以轻松地对表格进行排序,筛选和编辑等操作。使用 @crpt/react-data-grid 更...

    5 年前
  • npm 包 @colinrotherham/core 使用教程

    介绍 @colinrotherham/core 是一个用于在前端项目中实现常见功能的 npm 包。该包包含了一些常用的实用工具,例如防抖,节流,数组去重等。此外,该包还支持 TypeScript,可以...

    5 年前
  • npm 包 @choerodon/boot 使用教程

    简介 @choerodon/boot 是一个 Choerodon 前端开源项目,是一个基于 React、webpack 和 babel 的脚手架。它可以帮助开发人员快速搭建一个基于 Choerodon...

    5 年前
  • npm 包 @axetroy/webuild 使用教程

    随着前端工程化的普及,现代网页应用的开发离不开模块化,npm 是前端模块化工具的重要组成部分。本文介绍的 npm 包 @axetroy/webuild 是一款可以帮助我们构建前端应用的工具,能够自动化...

    5 年前
  • npm 包 @axetroy/libpack 使用教程

    前言 在 Web 前端开发中,我们经常需要使用各种第三方库和工具,这时候往往需要通过 npm 包管理工具来进行安装和管理。本文将介绍一个比较实用的 npm 包:@axetroy/libpack,它可以...

    5 年前
  • npm 包 @deskproapps/dpat 使用教程

    前端开发中,我们常常需要使用各种各样的工具和库,以提高开发效率或实现更复杂的功能。其中, npm 作为前端最常用的包管理工具,为我们提供了许多第三方的包供我们使用。

    5 年前
  • npm 包 @deskpro/apps-dpat 使用教程

    前言 在前端开发过程中,我们需要依赖不同的库和框架,以简化开发流程并提高开发效率。npm 是一个非常流行的 Node.js 包管理器,它提供了大量的第三方包供我们使用。

    5 年前
  • npm 包 dbmmods 使用教程

    介绍 dbmmods 是一个基于 Node.js 的 npm 包,提供了一些常用的前端开发工具和模块的实现。本文将详细介绍 dbmmods 的使用方法,包括安装、基础使用和一些高级技巧。

    5 年前
  • npm 包 steno 使用教程

    1 简介 npm 是 Node.js 的包管理器,它为开发者提供了一个方便的途径来安装、更新和删除 Node.js 模块。steno 是一个 npm 包,它是一个用于处理文件的 Node.js 模块,...

    5 年前
  • npm 包 react-native-camera-roll-picker 使用教程

    在 React Native 中,我们经常需要使用相册所储存的照片和视频来进行开发。而 react-native-camera-roll-picker 就是一款帮助开发者轻松使用相册中照片和视频的 R...

    5 年前
  • npm 包 rc-swipeout 使用教程

    前言 在前端开发中,我们经常需要开发移动端应用或网站,这时候就需要用到一些移动端特有的组件,例如 swipeout 组件,用于实现滑动删除等操作。在这里,我们将介绍一个 npm 包——rc-swipe...

    5 年前
  • npm 包 rc-slider 使用教程

    在前端开发中,常常需要使用滑动条这种 UI 组件来进行交互。而 npm 包 rc-slider 提供了一个简单易用的滑动条组件,本文将介绍如何使用 rc-slider,并提供一些实例代码,帮助读者快速...

    5 年前
  • npm 包 rc-drawer 使用教程

    前言 在前端开发中,样式库和组件库是不可或缺的利器。而 rc-drawer 是一个非常好用的抽屉式滑动组件,在移动端开发中特别方便。在这篇文章中,我们将学习如何使用 rc-drawer 组件和相关配置...

    5 年前
  • npm 包 rc-collapse 使用教程

    在前端开发中,我们经常需要实现页面元素的收缩和展开,比如折叠菜单、手风琴效果等。而 npm 包 rc-collapse 是一个非常好用的工具,可以帮助我们快速实现这些效果。

    5 年前
  • npm 包 rc-checkbox 使用教程

    前言 在前端开发中,复选框是非常常见的控件,而在 React 项目中,我们可以使用 rc-checkbox 这个 npm 包来实现复选框的功能。本文就是要详细介绍 rc-checkbox 的使用教程。

    5 年前
  • npm包array-tree-filter使用教程

    前言 作为前端开发者,经常会接触到树形结构的数据,这时一个好用的array-tree-filter npm包可以帮助我们高效地过滤出符合条件的数据。本文将为大家介绍array-tree-filter的...

    5 年前
  • NPM包@talentui/cz-project-changelog使用教程

    提供了一种基于commitizen的git commit信息规范化的方式,用于创建项目的CHANGELOG.md。这个规范的设计目的是为了生成人类可读的CHANGELOG,同时也非常适合与自动化发布工...

    5 年前
  • npm 包 ember-cli-groundskeeper 使用教程

    什么是 ember-cli-groundskeeper ember-cli-groundskeeper 是一个拥有代码压缩、混淆和精简能力的 Ember.js 插件。

    5 年前
  • npm包 easy-amdtest 使用教程

    简介 easy-amdtest是一个轻便的JavaScript测试框架,提供了AMD规范的测试接口和丰富的 API,可以让前端开发者更加方便地进行单元测试和集成测试,提高代码质量。

    5 年前

相关推荐

    暂无文章