两个操作者之间的通信二
前言
之前对两个操作者之间的通信进行学习和练习,后来发现Server作为User的启动的管理者,可以启动多个User,两两User之间仍可以通信。
首先先回顾一下操作者的概念
一、什么是操作者?
操作者框架(Actor Framework,AF)是LabVIEW提供的软件库,其支持独立运行多个任务,同时提供了人物之间相互通信的机制。应用中每个操作者代表一个独立的任务,操作者通过接受与发送消息,实现与其他操作者相互通信。
操作者着框架是基于消息队列状态机,利用面向对象的编程风格,封装了消息队列。利用LVOOP的多态特性把状态机的每个状态封装成操作者类中的一个方法。外部通过发送消息调用对应的方法,也就是执行状态机的一个状态。
操作者类是操作者框架的基本抽象类,代表一个独立的任务。操作者类中提供了一个Actor Core可重写方法,该方法中封装了队列消息状态机。
首先状态机的共享数据对应操作者的私有数据;状态机的消息队列对应操作者的Send-To-Self Enqueue;状态机的状态分支对应一个方法,该方法的调用被封装在消息中。
二、实现多个操作者之间的通信
1.Server操作者修改
(1)
(2)添加创建User功能
创建的User的消息队列引用同Map映射表进行保存,key值为UserID。使用时通过UserID进行索引。
创建操作时,循环向各个现有操作者发送,可连接的User操作者的UserID。
2.User操作者修改
(1)添加接收除自己外的其他User操作者的UserID方法
简单实现UserID写入到文本下拉列表中。