• 分布式智能家居项目雏形


    需求分析

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

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

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

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

    技术可行性分析

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

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

    服务自定义增减

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

    基础设施

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

    系统设计概要

    交互流程

     

    系统详细设计

    服务发现

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

    服务应答

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

     

    客户端详细设计

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

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

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

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

    服务端详细设计

    联网模块

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

    服务前端

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

    服务后端

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

    项目硬件选型

     

    服务设备软件架构设计

    服务设备启动流程

    几个问题

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

    • OpenHarmony操作系统

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

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

    设备如何通过wifi联网?

    • 下节课说明

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

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

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

     

     

     

    实验任务

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

    main_entry.c

    1. #include
    2. #include "ohos_init.h"
    3. #include "cmsis_os2.h"
    4. static void* Task_Iniit(const char* arg)
    5. {
    6. printf("Hello D.T.Software!\n");
    7. return arg;
    8. }
    9. static void Main_Entry(void)
    10. {
    11. osThreadAttr_t attr = {0};
    12. attr.name = "Task_Iniit";
    13. attr.stack_size = 4 * 1024;
    14. attr.priority = 20;
    15. if(osThreadNew((osThreadFunc_t)Task_Iniit, NULL, &attr) == NULL)
    16. {
    17. printf("failed to create task!\n");
    18. }
    19. }
    20. SYS_RUN(Main_Entry);

    执行结果如下所示:

    待解决的问题 

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

  • 相关阅读:
    力扣每日一题:808. 分汤 【dp动态规划】
    帖子求助:两台电脑时间相差1或2秒
    ERROR: Failed building wheel for mpi4py
    Android 13.0 系统go版添加支持AppWidget小部件功能的实现
    arcgis栅格按某列属性导出
    easyAI笔记——深度学习
    Windows配置SonarQube代码审查工具详细步骤(附带IDEA SonarLint插件使用)
    react从不会到入门
    HTTP协议简介
    腾讯云助力港华能源上线“碳汭星云2.0”,推动能源行业绿色低碳转型
  • 原文地址:https://blog.csdn.net/qq_52484093/article/details/128173123