分布式智能家居项目雏形
创始人
2024-04-16 21:07:18
0

需求分析

客户端进入室内后(局域网)能够主动发现服务(如: 环境服务,灯光服务)

各种服务可以有不同的载体(如:由不同设备提供)

各种服务之间,服务与客户端之间完全无耦合(服务可自由增减)

客户端可以是移动APP,也可以是桌面软件

技术可行性分析

发现服务:UDP广播+自定义协议

  • 客户端主动广播服务查询协议包
  • 服务设备接收到查询服务包,回复协议内容和协议使用方式

服务自定义增减

  • 服务设备遵循相同的协议:数据传输协议,服务提供模式,等
  • 客户端通过协议使用服务,无须关心服务设备的形态及位置

基础设施

提供服务的设备(嵌入式,服务器,PC,等)必须具备联网能力,且遵循服务协议

系统设计概要

交互流程

 

系统详细设计

服务发现

  • 客户端主动广播服务发现数据包

服务应答

  • 服务设备能够提供本机IP及能够提供的服务信息发回客户端

 

客户端详细设计

通过广播服务发现数据包,收集当前环境的服务信息

可用服务通过"菜单"方式呈现,并提示服务使用方式

选择服务后,连接到对应设备,通过协议消息发送服务请求命令

收到设备回复后,断开设备连接(请求-应答)

服务端详细设计

联网模块

  • 设备提供服务前,必须联网(无线or有线)

服务前端

  • 接收服务发现数据包,并应答当前设备服务信息

服务后端

  • 服务设备驱动,如:温湿度传感器驱动,灯光控制驱动,等

项目硬件选型

 

服务设备软件架构设计

服务设备启动流程

几个问题

设备上运行什么操作系统?

  • OpenHarmony操作系统

设备运行的系统中如何创建多个并行执行的任务?

  • 使用OpenHarmony操作系统提供的 osThreadNew 接口去创建线程去并行执行任务

设备如何通过wifi联网?

  • 下节课说明

设备上的网络编程通过什么接口完成?

  • OpenHarmony操作系统兼容了socket编程,可以直接使用我们学过的socket函数接口来编程

OpenHarmony轻量级系统应用开发精要

 

 

 

实验任务

基于OpenHarmony操作系统完成一个sample:创建一个线程打印一句话,并在小熊开发板上运行。

main_entry.c

#include 
#include "ohos_init.h"
#include "cmsis_os2.h"static void* Task_Iniit(const char* arg)
{printf("Hello D.T.Software!\n");return arg;
}static void Main_Entry(void)
{osThreadAttr_t attr = {0};attr.name = "Task_Iniit";attr.stack_size = 4 * 1024;attr.priority = 20;if(osThreadNew((osThreadFunc_t)Task_Iniit, NULL, &attr) == NULL){printf("failed to create task!\n");}
}SYS_RUN(Main_Entry);

执行结果如下所示:

待解决的问题 

如何在设备上进行Wifi编程?

相关内容

热门资讯

银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...