3194|5

23

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

F7-空调精灵进度贴-01 [复制链接]

本帖最后由 cedar_xuesong 于 2015-10-15 09:13 编辑

项目:空调精灵
项目介绍:请参考 https://bbs.eeworld.com.cn/thread-472487-1-1.html

当前进度:
1)拿到板子,搭建F7环境和熟悉F7例程,移植RTT到F7
2)模块选型(WI-FI ESP8266,BLE4.0 CC2541)
3)制定软件框架和协议标准,详情参见 https://github.com/cedar-renjun/ ... oc_Software_Arch.md

摘录如下:

软件架构设计

0 适用范围

  1. 本设计规范,仅仅适用于空调精灵的软件架构部分
  2. 第3章模块划分中所列的模块,特制软件功能模块

1 设计原则

  1. 低耦合,高内聚
  2. 便于单元测试,便于集成测试

2 设计要点

  1. 禁止两个模块直接通信
  2. 动态加载和卸载模块,模块的存在与否不影响系统稳定性
  3. 消息动态绑定,发送消息者不依赖特定的模块接收者
  4. 充分隔离,单个模块尽可能少的关联其他模块
  5. 主控模块负责整体工作,外围模块被动接收消息和执行动作

3 模块划分

  1. 红外模块
  2. 主控模块
  3. 消息处理模块
  4. 蓝牙模块
  5. Wi-Fi模块
  6. 服务器模块
  7. 手机模块
  8. 人机输出模块
  9. 人机输入模块

4 模块功能定义

  1. 红外模块
    1. 负责控制红外部分的硬件
    2. 负责红外信号的编码,解码,学习,复现
    3. 只负责处理消息处理模块发送的消息,执行动作
  2. 主控模块
    1. 负责协调整个系统
    2. 只能通过
      • 消息处理模块
      间接和各个模块通信,完成控制功能
  3. 消息处理模块
    1. 负责接收和转发所有的模块消息
    2. 利用消息处理模块来完成解耦和动态绑定功能
  4. 蓝牙模块
    1. 负责连接手机模块
    2. 负责将手机命令通过
      • 消息处理模块
      转发到
      • 主控模块
    3. 只能与
      • 服务器模块
      • 消息处理模块通信
  5. Wi-Fi模块
    1. 负责连接internet网络进行数据库更新
    2. 负责连接MQTT服务器,接收和发送MQTT消息
    3. 只能与
      • 服务器模块
      • 消息处理模块通信
  6. 服务器模块
    1. 负责连接空调精灵和手机模块
    2. 采用MQTT协议封装
    3. 只能与Wi-Fi模块和手机模块交互
  7. 手机模块
    1. 通过蓝牙或者Wi-Fi来控制空调精灵
    2. 该模块只存在于手机端,以APP的形式存在
    3. 手机模块只能与MQTT服务器或者空调精灵蓝牙4.0模块交互
    4. 手机模块应用层协议,包括但不限于Wi-Fi链路和BLE4.0链路
  8. 人机输出模块
    1. 负责显示各种可视化信息
    2. 负责处理
      • 消息处理模块
      发送过来的
      • 主控消息
      ,并执行相应的显示动作
  9. 人机输入模块
    1. 负责采集各种交互输入信号(按键,触摸动作)
    2. 将采集到的动作信号,通过
      • 消息处理模块
      发送到
      • 主控模块

5 模块行为定义

  1. 红外模块(TODO)
  2. 主控模块(TODO)
  3. 消息处理模块(TODO)
  4. 蓝牙模块(TODO)
  5. Wi-Fi模块(TODO)
  6. 服务器模块(TODO)
  7. 手机模块(TODO)
  8. 人机输出模块(TODO)
  9. 人机输入模块(TODO)

6 模块相关性

-红外主控消息处理蓝牙Wi-Fi服务器手机人机输出人机输入
红外*
主控*
消息处理******
蓝牙**
Wi-Fi**
服务器**
手机**
人机输出*
人机输入*

7 通信协议

  1. 消息处理模块协议(TODO)
  2. 服务器通信MQTT协议(TODO)
  3. 手机控制协议(TODO)
  4. 红外描述协议(TODO)

8 测试指导

8.1 单元测试

  1. 软件架构设计者编写RTOS软件框架,提供消息分发模块和主控模块
  2. 模块A实现者,先按照协议标准,实现特定消息的接收和处理;然后编写测试线程,模拟相关模块B行为和动作,从而测试自身模块A的功能是否正常
  3. 模块实现者,应充分考虑 1)错误处理 2)模块自身状态处理机制,杜绝任何阻塞CPU操作

8.2 集成测试

  1. 在集成测试之前,每个模块实现者,应保证自身的模块已经通过单元测试,并提供相应的Test Case
  2. 软件集成者负责整体模块测试,如发现bug,则应反馈给对应的模块负责人

9

查看本帖全部内容,请登录或者注册
此帖出自stm32/stm8论坛

最新回复

很强悍 加油  详情 回复 发表于 2015-11-17 12:35

赞赏

1

查看全部赞赏

点赞 关注
 

回复
举报

7794

帖子

18

TA的资源

五彩晶圆(高级)

沙发
 
F7所有项目里第一份看着最规范的和设计相关的文档。虽然内容有待完善,但是规范代表结构和目标比较清晰。
此帖出自stm32/stm8论坛

点评

nmg
待完善的内容待发帖  详情 回复 发表于 2015-10-16 15:56
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 

回复

5293

帖子

236

TA的资源

管理员

板凳
 
freebsder 发表于 2015-10-15 14:22
F7所有项目里第一份看着最规范的和设计相关的文档。虽然内容有待完善,但是规范代表结构和目标比较清晰。

待完善的内容待发帖
此帖出自stm32/stm8论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 

回复

164

帖子

0

TA的资源

一粒金砂(中级)

4
 
很强悍的 啊
此帖出自stm32/stm8论坛
 
 
 

回复

5293

帖子

236

TA的资源

管理员

5
 
坐等cedar进一步内容更新
此帖出自stm32/stm8论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

6205

帖子

4

TA的资源

版主

6
 

很强悍 加油
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
有奖直播:当AI遇见仿真,会有什么样的电子行业革新之路?
第2场直播:融合热仿真与热测试提升产品可靠性
直播时间:04月17日 14:00 - 15:00

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 14

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表