开发指南
# 开发指南
# 概述
在本章中将着重介绍如何基于敢为IoTCenter进行产品开发的完整流程,在进入正题之前,你可以通过一张图来简单了解一下敢为IoTCenter产品从技术视角出发的逻辑架构图,通过这一张图,将有助于更好的理解具体的开发过程。
# 功能架构图
架构图
# 架构图说明
在上述架构图中,IoTCenter平台由如下三部分组成:
三部分内容
1 IoT 连接服务
敢为嵌入式网关产品支持X86/Arm等多种处理器架构,可在服务器和服务器集群上运行。可通过以协议插件为途径,开发面向传感器、设备、第三方系统的连接服务,可使用的技术包括OPC/BACNET/TCP/IP等多种协议机制,实现面向感知层的全方位连接。
2 物联网平台
物联网IoT平台作为物联网服务,具备以下基础能力:
- 运营管理:包括应用管理、日志、告警、报表等基础功能。
- 规则引擎:包括设备联动、数据转发、数据缓存、安全和隐私控制等基础功能。
- 设备管理:包括物模型定义、设备应子、设备升级、远程控制等功能。
- 设备接入:包括接入认证、多协议接入、双向访问、访问授权等功能。
3 IOC 运营中心
IOC运营中心提供多态势接入能力,可快速实现对综合态势,安全态势,人员态势,车辆态势等各类态势的便捷搭建,并可快速实现对综合安防,通行惯例,消防管理,通行管理,消防管理,能源系统,访客系统,楼宇自控,停车系统,照明系统等业务的一站式呈现。
# 二次开发能力介绍
在上述功能架构图中涉及的方方面面,均属于IoTCenter开发所能接触的日常内容,只需顺着本文档的指引,一步步的吃透,你也能称为优秀的物联网开发者。下图对开发指南所涉及的方面进行了概述:
图片
从上到下,依次为:
可视化开发
依托IoTCenter提供的可视化技术,可以实现基于Unity技术的三维可视化开发、基于 .NET Framework WPF技术的桌面可视化开发及基于敢为Web可视化平台实现可视化界面开发,这三种开发模式,基本上涵盖了目前市场上主流的可视化应用场景。
应用插件开发
业务模块开发包括三种形式,基于Asp .NET Core的后端接口开发、基于VueJs的前端界面开发,及微信小程序开发。
服务端开发
服务端开发主要包括协议插件开发和扩展插件开发。
协议插件开发,用于基于IoTCenter平台实现物联数据的采集及存储。
扩展插件开发,用于对现有IoTCenter平台进行既有能力的扩展,以便实现更多丰富多彩的复杂功能。
端到端测试
为了构建更加稳定的生产级应用,还需了解基于物联网的端到端测试技术,本文档网站也对其中的内容进行了简要说明。
# 基础技术
在IoTCenter强大的二次开发能力中,我们使用了以下技术作为我们的基础,通过相关网站快速了解,有助于你以最快的速度掌握相关技术。
基础技术
.NET
.NET:.NET 是一种用于构建多种应用的免费开源开发平台。目前IoTCenter采用的版本为 .NET 6。.NET技术的学习网站为:https://docs.microsoft.com/zh-cn/dotnet/。 IoTCenter平台依赖的技术包括.NET框架中的常用技术,如C#,基础对象,常见的通信库,客户端技术WPF等。
使用 .NET 时,无论正在构建哪种类型的应用,代码和项目文件看起来都一样。可以访问每个应用的相同运行时、API 和语言功能。
Unity
Unity是由Unity Technologies研发的跨平台2D/3D游戏引擎,可用于开发Windows、MacOS及Linux平台的单机游戏,PlayStation、Xbox、Wii、任天堂3DS和Switch 等游戏主机平台的视频游戏,以及iOS、Android等移动设备的游戏。其学习网站为:https://unity.com/cn。
Vue.JS
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用SPA提供驱动。Vue.Js的学习网站地址为:https://cn.vuejs.org/。