No description
| DEVELOPER.md | ||
| README.md | ||
| USER.md | ||
| version.md | ||
虚拟总线 — koru-bus
一句话:Koru SCADA 所有模块间通信的唯一通道。基于共享内存(SMIB 架构)的进程间轻量级消息总线,提供低延迟、高吞吐的发布/订阅能力。
在架构中的位置
Protocol → [IRTDB::set_yc] → RTDB → [Bus::publish(DATA_CHANGED)]
│
┌────────────────────┼────────────────────┐
▼ ▼ ▼
alarm history forward
[subscribe] [subscribe] [subscribe]
谁需要读这份文档
| 角色 | 读什么 |
|---|---|
| 想在模块里 publish/subscribe 事件 | 看 DEVELOPER.md |
| 想部署/配置总线参数 | 看 USER.md |
| 只想知道总线做什么 | 读到这里就够了 |
模块一览
| 属性 | 值 |
|---|---|
| 产出 | 头文件 + 静态库 libkoru_bus.a |
| 依赖接口 | 无(基础层) |
| 发布接口 | koru::bus::Bus 类 + Subscription / CallbackSubscription |
| 订阅事件 | 无 |
| 发布事件 | 无(总线是通道,不产生事件) |
设计要点
| 特性 | 描述 |
|---|---|
| 进程内单例 | 同一进程内同一 bus_name 共享一个实例,引用计数管理 |
| 4 Topic 隔离 | DATA / ALARM / CONTROL / SYSTEM 独立共享内存段 |
| Per-subscriber SPSC | 每个订阅者独占 SPSC 环,写者写入副本,无锁无竞争 |
| eventfd 通知 | 跨进程通过 eventfd 唤醒消费者 |
| 同进程优化 | 同进程消费者不触发 eventfd,由 io_context post 自唤醒 |
| NullBus 测试 | 同步回调模式,单测无需事件循环 |
版本记录
见 version.md。