设备插件模块

开发前先阅读插件设计概要:智汀家庭云-开发指南Golang: 插件模块

使用 plugin-sdk 可以忽略不重要的逻辑,快速实现插件

插件实现

  1. 获取sdk
    go get github.com/zhiting-tech/smartassistant
  1. 定义设备

sdk中提供了预定义的设备模型,使用模型可以方便SA有效进行管理和控制

请参考智汀家庭云-开发指南Golang: 插件模块:4.1.1 插件模型定义

  1. 实现设备接口 定义好设备之后,需要为设备实现如下几个方法:

实现如下:

  1. 初始化和运行

定义好设备和实现方法后,运行插件服务(包括grpc和http服务)

这样服务就会运行起来,并通过SA的etcd地址0.0.0.0:2379注册插件服务, SA会通过etcd发现插件服务并且建立通道开始通信并且转发请求和命令

智汀家庭云-开发指南Golang:设备插件开发的更多相关文章

  1. 智汀家庭云-开发指南Golang:设备场景

    场景是指通过SA实现设备联动.例如,自动检测今天的天气情况,今天无雨,定时智能音箱播放浇花提醒,并且播报今天的天气情况. 根据自身需求,把多种控制并发的事情编辑成一个场景,并命名,可以通过场景控制很多 ...

  2. 智汀家庭云-开发指南Golang:设备模块

    1.品牌 品牌指的是智能设备的品牌,SA通过插件的形式对该品牌下的设备进行发现控制.理论上来说一个品牌对应一个插件服务.您可以通过项目 根目录下的品牌查看SA支持的品牌.关于插件服务的详细信息可以参考 ...

  3. 智汀家庭云-开发指南Golang: 插件模块

    插件模块 当前所说的插件仅指设备类插件,插件为SA提供额外的设备发现和控制功能: 插件通过实现定义的grpc接口,以grpc服务的形式运行,提供接口给SA调用 插件同时需要http服务提供h5页面及静 ...

  4. 微信小程序云开发指南

    一.初识云开发 官方文档 小程序·云开发是微信团队联合腾讯云推出的专业的小程序开发服务. 开发者可以使用云开发快速开发小程序.小游戏.公众号网页等,并且原生打通微信开放能力. 开发者无需搭建服务器,可 ...

  5. 智捷公开课马上开始了-欢迎大家一起讨论学习-第一系列读《Swift开发指南(修订版) 》看Swift视频教程

    引用: 智捷课堂携手51CTO学院.图灵教育联合举办iOS线上培训就业班系列体验公开课. 分享移动开发.移动设计方向最新,最热,最抢眼技术热点以及设计经验.我们每周将最少举办一次公开课,同时会提前安排 ...

  6. 开发指南专题八:JEECG微云高速开发平台数据字典

       开发指南专题八:JEECG微云高速开发平台数据字典的使用 1.标签中使用数据字典 数据字典为系统中可能用到的字典类型数据提供了使用的便利性和可维护性.下面拉框标签<t:dictSele ...

  7. 开发指南专题4:JEECG高速微云开发平台--JEECG开发环境的搭建

    开发指南专题4:JEECG微云高速开发平台开发环境搭建 1. JEECG开发环境搭建 JEECG推荐的开发环境为Myeclipse8.5/Eclipse3.7+JDK1.6+Tomcat6.0 1.1 ...

  8. 开发指南专题六:JEECG微云高速开发平台代码生成

    开发指南专题六:JEECG微云高速开发平台代码生 1.1. 代码生成扫描路径配置 用代码生成器生成代码后.须要进行相关配置配置,扫描注入control.service.entity等; 具体操作过程例 ...

  9. 阿里云API网关(7)开发指南-API参考

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...

随机推荐

  1. 查看node.js全局安装的插件路径

    查看 npm  全局插件 默认全局安装路径 参考:https://www.jianshu.com/p/f2873fcef5aa 首先 nodejs安装好之后,默认情况下会有如下配置 npm confi ...

  2. 【linux】vim常用命令

    转自:https://www.runoob.com/linux/linux-vim.html vi/vim 的使用 基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输 ...

  3. SpringBoot配置Cors跨域请求

    一.同源策略简介 同源策略[same origin policy]是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源. 同源策略是浏览器安全的基石. 什么是源 源[or ...

  4. 读vue-cli3 官方文档的一些学习记录

    原来一直以为vue@cli3 就是创建模板的工具,读了官方文档才知道原来这么有用,不少配置让我长见识了 Prefetch 懒加载配置 懒加载相信大家都是知道的,使用Import() 语法就可以在需要的 ...

  5. linux centos7 命令中的 2>&1 代表的意义

    2021-09-01 1. 参数介绍 0 – stdin (standard input) 标准输入1 – stdout (standard output) 标准输出2 – stderr (stand ...

  6. int索引转Excel列名(JavaScript版)

    indexToExcelColumn = (index)=>{       // 自然数     if (typeof index !== 'number') return false;    ...

  7. 操作系统IO之零拷贝技术

    磁盘可以说是计算机系统最慢的硬件之一,读写速度相差内存 10 倍以上,所以针对优化磁盘的技术非常的多,比如零拷贝.直接 I/O.异步 I/O 等等,这些优化的目的就是为了提高系统的吞吐量,另外操作系统 ...

  8. 剑指offer(一)——二维数组中的查找

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  9. IS(上升子序列)

    前言:   这是一篇杂题选讲+作者口胡的博客,不喜勿喷. 正文:   提示:在阅读时请留意加粗的字体是"极长"还是"最长".   今天改题时碰到了一道关于线段树 ...

  10. Python - 面向对象编程 - 实战(6)

    需求 设计一个培训机构管理系统,有总部.分校,有学员.老师.员工,实现具体如下需求: 有多个课程,课程要有定价 有多个班级,班级跟课程有关联 有多个学生,学生报名班级,交这个班级对应的课程的费用 有多 ...