系统进程通讯MQ设计
4.4通讯层
4.4.1 系统进程通讯
选用NetMQ消息队列,用于主进程与影像进程之间的通讯,如下图所示:
- 系统 Main主进程
- 系统 Image 影像进程
- NetMQ,轻量级消息库ZeroMQ的一种。
主进程与影像进程消息交互如下图:系统 Main主窗体负责接收系统 Image发过来的消息,同理系统 Image 主窗体负责接收系统 Main发过来的消息
4.4.2 MQ通讯服务
- 消息发布服务
IPublisherService,包含2个接口
发布消息接口: void Publish(string topicName, string data)
Input 1: string topicName 发布主题,订阅者可根据主题订阅
Input 2: string data 发布数据,Json序列化后的值,参考4.4.3数据格式定义
设置发布端口接口: void SetBindPoint(string? endpoint);
Input : string? endpoint NetMQ发布IP和端口
- 消息订阅服务
ISubscriberService,包含4个接口
订阅接口1:void RegisterSubscriber(List<string> topics, string? endPoint)
Input 1: List<string> topics 订阅主题列表
Input 2: string? endPoint NetMQ订阅IP和端口
订阅所有消息接口2:void RegisterSubscriberAll(string endPoint)
Input : string? endPoint NetMQ订阅IP和端口
取消订阅接口:void RemoveSubscriberAll()
订阅处理事件:event Action<string, string> Notify
4.4.3 MQ数据包格式
发布主题(TopicName): enum TopicsNetMQ
对应2个枚举值 ToImageProcess, ToMain
数据包如下图所示:包含2个字段,即包头+数据负载
MQPackData 对象
command命令,对应如下:
object? data 数据负载,根据包头的command对应实体类型,使用Json进行序列化和反序列化
一个command对应一个实体类型
ToMain Data:
ToImageProcess Data:
4.4.4 MQ消息类型说明
1. ToImageProcess消息说明
TopicName |
Code |
data[]对应实体 |
说明 |
ToImageProcess |
MQCommand.EnterTreatState |
EnterTreatStateData |
? |
ToImageProcess |
MQCommand.ChangeImageScreen |
ChangeImageScreenData |
进入扫描窗体 |
ToImageProcess |
MQCommand.LoadPlanPara |
LoadPlanParaData |
加载CT扫描协议 |
ToImageProcess |
MQCommand.CloseImageScreen |
CloseImageScreenData |
关闭影像进程 |
ToImageProcess |
MQCommand.ChangeImageScreen |
ChangeImageScreenData |
进入主窗体 |
ToImageProcess |
MQCommand.BeginCTScanGo |
BeginCTScanGoData |
准备CT扫描 |
ToImageProcess |
MQCommand.CTMode |
CTModeData |
进入/退出CT模式 |
|
|
|
AbortScan |
|
|
|
EndStudy |
|
|
|
QA模块 |
|
|
|
Serivce模块 |
|
|
|
|
2. ToMain消息说明
TopicName |
Code |
data[]对应实体 |
说明 |
ToMain |
MQCommand.CTScanEnd |
CTScanEndData |
CT扫描完成 |
ToMain |
MQCommand.CTReconEnd |
CTReconEndData |
CT ReconEnd |
ToMain |
MQCommand.CT_ERROR |
CT_ERRORData |
CT 扫描错误 |
ToMain |
MQCommand.PrepareCTScanGo |
PrepareCTScanGoData |
扫描参数设置完成准备扫描 |
ToMain |
MQCommand.ApplayImageReg |
ApplayImageRegData |
图像配准完成 |
|
|
|
|
|
|
|
|
|
|
|
|
标签:订阅,通讯,string,ToImageProcess,MQCommand,ToMain,MQ,进程,CT From: https://www.cnblogs.com/ljmzxq/p/17932133.html