查看原文
其他

基于NB-IoT的智慧路灯监控系统(PC应用开发)

不脱发的程序猿 美男子玩编程 2022-09-11

点击上方蓝色字体,关注我们

作为IoT云平台的数据交互PC客户端,对平台的数据进行展示,实现本地与远程终端的数据交互,进而展现出依赖云平台的应用使用的具体场景,进一步展现云平台的优势。



1


项目结构



整个使用常规的传统的三层架构,同时引入MVVM架构模式,属于混合型架构设计,将各个层次之间实现理论解耦,提高了系统各个层次之间的独立性和可拓展性。


项目结构概述如下:

  • HandyC.HW:

    项目实际入口,表现层,实际用户操作逻辑的输入输出部分。

  • HandyC.HW.ViewModels:

    与表现层与之对应的视图实体类部分,对用户交互逻辑的主要实现处理模块,同时在该项目中进行相关数据实体和视图实体的相互转换工作。

  • HandyC.HW.Data:

    用于处理来自于IoT平台的数据源,为业务层提供需求的数据结果。

  • HandyC.HW.Service:

    项目的实际业务逻辑处理,组织数据层提供的数据。

  • HandyC.HW.Tools:

    项目整体结构中需要使用到的基础辅助类集合,包括网络请求相关类,缓存,数据序列化和反序列化,特殊数据格式处理等。

  • 对应测试项目与之对应,前缀为Test.*,此处忽略。



2


系统组织结构图



本系统分为两个大的功能模块,平台监管以及数据采集两个模块,平台监管主要是对设备实时动态进行监管,数据采集,处理来自IOT云平台的历史相关数据并展示。




3


业务逻辑概述



PC端主要分为两个部分,一个是通过https请求双向认证获取到来自于IoT平台提供的相关Api接口的目标数据,将数据进行处理根据View的需求进行相关的ViewModel处理之后展示到页面中;一个是需要PC端与IoT平台上的挂载设备进行数据交互时,实现本地命令的发送,进而间接控制设备的数据响应。



4


使用技术



  • 网络通信相关技术(数据接口请求)

  • WPF(UI框架)

  • MvvmLight(MVVM框架)

  • 依赖注入

  • 简单缓存

  • LiveCharts(图标框架)

  • HandyControl(WPF组件框架)

  • 非对称双向认证(Https)

  • AutoMapper(DTO转换框架)



5


开发环境与工具



  • 开发环境:

    Windows 7 sp1、.Net Framework 4.7.2

  • 开发语言:

    C#

  • 开发工具:

    Microsoft Visual Studio professional 2019(VS 2019)



6


功能介绍




设备管理页面的主页面,设备统计部分包含了对当前设备的设备类型、设备状态、设备的协议类型的相关统计信息,属于设备总体的一个统计信息。设备列表中展示的是当前的存在的设备,以卡片的方式展示出来,包括设备的名称、设备的型号、设备的编号等预览。


 显示设备的详细信息。


设备的最新数据显示页面,能够动态实时请求到IoT平台上的设备下发的最近历史信息。


云平台联动主页中的卡片为一卡片一设备,点击设备卡片,可以对设备进行联动模式控制,有三种联动方式:终端联控模式、分段定时模式和自动调光模型。

终端联控模式,默认手动模式,可以通过手动直接下发指令到IoT平台,通过平台将命令通知对应的设备执行。


 分段定时模式,用户可以通过点击切换至定时模式,设定时间后,将点击发送定时设备,等待设定的命令发送至IoT平台。


自动调光模式,自动模式与手动模式的操作类似,用户通过开启和关闭实现对IoT平台上挂载的设备的执行模式的设定,关闭时,设备默认执行,为上一次的模式运行状态,开启时,变更为根据实际的自动条件进行自身状态的控制 。


设备历史数据显示页面,主要功能为查询功能,用于显示从IoT平台获取到的当前设备对应的历史记录信息,可通过查询条件进行更加细致数据查找。


命令历史数据的主页面,默认显示第一个设备的相关历史数据,能够查询到多端给设备发送的相关命令指令历史信息。 


往期推荐


点击阅读原文,更精彩~

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存