系统进程通讯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 |
图像配准完成 |
|
|
|
|
|
|
|
|
|
|
|
|

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架