两个操作者之间的通信二

两个操作者之间的通信二


前言

之前对两个操作者之间的通信进行学习和练习,后来发现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写入到文本下拉列表中。

3.实现效果

两个操作者之间的通信二

源代码链接点击这里

上一篇:海康sdk 出现问题摄像头中断问题


下一篇:数据库分库分表