Labview_DQMH框架学习1--浅析

概要

DQMH(Delacor Queued Message Handler),借鉴了面向对象的设计思想,通过数据队列和消息处理机制,将复杂的系统分解为多个独立的模块,每个模块通过消息队列与其他模块通信,从而实现模块间的解耦和独立开发。

本文主要结合一个相对容易理解的例子,阐述DQMH框架的工作原理,希望对于刚刚接触DQMH框架开发的初学者有所帮助。

1、从这个例子开始吧

在这里插入图片描述

1.1模型

Teacher&Student这个例子建立三个对象,分别是Teacher_Math、Student_A、Student_B。

事件 /对象Teacher_MathStudent _AStudent _B
Request选课//
Broadcast点名、布置作业作业进度作业进度
Request&Wait for Reply答疑//

模型运行:

  • Student通过按钮事件调用Teacher的选课Request,同时会主动注册Teacher的Broadcast事件(即选课后可以获得Teacher的广播事件),并将Name发送给Teacher;
  • Teacher获取Studet的Name,将其加入选课的学生名单;可以对已经选课的Student进行点名和布置作业等操作,并且可以得到Student的作业进度;
  • Student在遇到作业问题时,可以调用Teacher的答疑Request(需要明确是否需要等待);
  • Teacher收到答疑请求后,回答学生的问题;
    模型运行界面如下:

DQMH-Teacher&Student.eg

1.2关于事件的理解

关于事件,DQMH中存在四种事件类型:(本例没有用到RoundTrip,个人理解RoundTrip是对于两个事件的组合,在相关的场景可以自由运用)

在这里插入图片描述
对于事件的理解:
0). Moudle:可以想象成为一个设备;
1). Request:可以想象成为设备上的一个按钮,按下按钮可以触发相关动作;
2). Broadcast:可以想象为设备上的屏幕,显示设备对外公布信息;
3). Request&Wait for Reply:可以理解为,按下按钮并提供相关信息后,可以得到对于提供信息的处理结果;在此过程中请求方可以选择是否需要等待设备的回复(若选择等待,则停止手上的工作直到产生处理结果;若选择不等待,则继续自己的工作);
4). RoundTrip(Request&Wait for Reply+Broadcast):理解为3)+ 4);

1.3模型建立过程

1)创建Module Teacher;
2)Teacher建立选课Request ;
3)Teacher建立答疑Request&WaitReply;
4)Teacher建立点名和布置作业的Broadcast;
5)创建Module Student;
6)Student建立作业进度的Broadcast;

1.4逻辑关系建立过程

1)Student 调用 Teacher 的 选课Request并传送Name,同时建立对Teacher 的Broadcast内容的订阅;
2)Student 调用 Teacher 的 答疑Request并传送Question,同时传输是否等待回复的布尔消息;
3)Teacher和Student ,在接收到对应的广播内容后,做相应的逻辑处理;

2、需要进一步思考的问题

在这个模型中,存在三个对象;实际场景中可能会建立多个老师和更多的学生,如果按照目前这种方式创建模型,会存在很多重复工作。后续更新会按照个人理解叙述一下处理方法。

小结

  • 通过一个简单的模型,演示了DQMH框架的工作过程。
  • 后续进一步优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hrbeuxn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值