<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki2.lessokaji.com/index.php?action=history&amp;feed=atom&amp;title=Simple%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84</id>
	<title>Simple软件架构 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki2.lessokaji.com/index.php?action=history&amp;feed=atom&amp;title=Simple%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84"/>
	<link rel="alternate" type="text/html" href="https://wiki2.lessokaji.com/index.php?title=Simple%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84&amp;action=history"/>
	<updated>2026-05-16T16:07:31Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki2.lessokaji.com/index.php?title=Simple%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84&amp;diff=1020&amp;oldid=prev</id>
		<title>Artheru：​Initial bilingual draft (auto-published)</title>
		<link rel="alternate" type="text/html" href="https://wiki2.lessokaji.com/index.php?title=Simple%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84&amp;diff=1020&amp;oldid=prev"/>
		<updated>2026-05-16T11:42:54Z</updated>

		<summary type="html">&lt;p&gt;Initial bilingual draft (auto-published)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;languages/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 概述 / Overview ==&lt;br /&gt;
Simple 是 MDCS 的车队层，分为两部分：&lt;br /&gt;
'''SimpleCore'''（核心算法库 —— 交管、寻路、包络、可达性、调度内核），&lt;br /&gt;
'''SimpleComposer'''（基于 SimpleCore 的 UI 壳 + 插件宿主）。&lt;br /&gt;
&lt;br /&gt;
Simple is the fleet layer of MDCS, split in two parts:&lt;br /&gt;
'''SimpleCore''' (the algorithm library — traffic control, pathfinding, envelopes, reachability, scheduling kernel) and&lt;br /&gt;
'''SimpleComposer''' (a UI shell + plugin host built on top of SimpleCore).&lt;br /&gt;
&lt;br /&gt;
== SimpleCore ==&lt;br /&gt;
完全独立的 .NET 库（`D:\src\Simple\SimpleCore\`），可被任何应用引用。它定义了：&lt;br /&gt;
&lt;br /&gt;
A standalone .NET library at `D:\src\Simple\SimpleCore\`, embeddable in any application. It defines:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 模块 / Module !! 用途 / Use&lt;br /&gt;
|-&lt;br /&gt;
| `AbstractCar` (`PropType\AbstractCar.cs:346`) || 调度可见的车的最小契约 / minimal contract for a scheduled vehicle&lt;br /&gt;
|-&lt;br /&gt;
| `AGVInterface` (`BasicProps\AGVInterface.cs`) || 任务脚本（TopazScript）调用的车 API / car API called by mission scripts&lt;br /&gt;
|-&lt;br /&gt;
| `DPSPlanner` || [[Special:MyLanguage/DPS调度算法详解|DPS]] 多车死锁规划 / DPS multi-car deadlock-free planner&lt;br /&gt;
|-&lt;br /&gt;
| `Envelope` || 车体包络 + 站点占用判定 / envelope + site-occupancy logic&lt;br /&gt;
|-&lt;br /&gt;
| `Reachability` || 可达性状态机 / reachability state machine — see [[Special:MyLanguage/可达性状态编程|可达性状态编程]]&lt;br /&gt;
|-&lt;br /&gt;
| `FlowFieldPlanner` || [[Special:MyLanguage/流场规划|流场规划]] / flow-field planner&lt;br /&gt;
|-&lt;br /&gt;
| `NetworkFlowBizPlanner` || [[Special:MyLanguage/基于网络流的业务规划器|基于网络流的业务规划器]] / network-flow business planner&lt;br /&gt;
|-&lt;br /&gt;
| `World` || 地图（站点 + 路径段 + 区域）/ map (sites + path segments + zones)&lt;br /&gt;
|-&lt;br /&gt;
| `TopazEngine` || 任务脚本解释器 / mission-script interpreter&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
SimpleCore 不依赖 Windows、UI、SimpleComposer、Clumsy 或 Medulla —— 可在 Linux 工控机上单独跑。&lt;br /&gt;
SimpleCore depends on none of Windows, UI, SimpleComposer, Clumsy or Medulla — it runs standalone on Linux IPCs.&lt;br /&gt;
&lt;br /&gt;
== SimpleComposer ==&lt;br /&gt;
基于 SimpleCore 的 ''标准车队管理 UI''，位于 `D:\src\Simple\SimpleComposer\`。它提供：&lt;br /&gt;
&lt;br /&gt;
The standard fleet-management UI built on SimpleCore. It provides:&lt;br /&gt;
&lt;br /&gt;
* '''CAD 工具''' / CAD tool — 见 [[Special:MyLanguage/开发手册 - SimpleComposer界面开发 - CAD工具|开发手册 - CAD工具]]&lt;br /&gt;
* '''车型插件接口''' / car-type plugin interface — `Car` 与 `ClumsyCar` 子类化点&lt;br /&gt;
* '''任务脚本编辑器''' / mission-script editor&lt;br /&gt;
* '''实时监控面板''' / live monitoring panel — 包络、锁、车辆状态&lt;br /&gt;
* '''仿真''' / simulation — 整套调度算法可在不接真车的情况下跑&lt;br /&gt;
&lt;br /&gt;
`SimpleComposer.RCS.Car` (`D:\src\Simple\SimpleComposer\RCS\Car.cs:33`) 是车的 ''Composer 端基类''，封装 SimpleCore 的 `AbstractCar` 加上 UI 字段、地图坐标转换、可视化属性。`ClumsyCar` (`D:\src\Simple\SimpleComposer\RCS\ClumsyCar.cs:34`) 是它的子类，专为跑 MDCS 车载的车设计；自评估车（PLC / 磁条 / 二维码）则直接继承 `Car` 并实现 nested `AGV : AGVInterface`。&lt;br /&gt;
&lt;br /&gt;
`SimpleComposer.RCS.Car` is the Composer-side base — `AbstractCar` + UI fields + coordinate transforms + render props. `ClumsyCar` extends it for vehicles running MDCS on-board. Self-evaluating cars subclass `Car` directly with a nested `AGV : AGVInterface`.&lt;br /&gt;
&lt;br /&gt;
== 数据流 / Data flow ==&lt;br /&gt;
&lt;br /&gt;
  业务系统 (WMS / ERP) → SimpleComposer 任务接收&lt;br /&gt;
                              │&lt;br /&gt;
                              ▼&lt;br /&gt;
              SimpleComposer 任务编排 (CarProgram)&lt;br /&gt;
                              │&lt;br /&gt;
                              ▼&lt;br /&gt;
              SegmentPlan.Compile → TopazScript&lt;br /&gt;
                              │&lt;br /&gt;
                              ▼&lt;br /&gt;
              Car.actualSendScript(script)&lt;br /&gt;
              ├─ ClumsyCar: HTTP POST 到车载 → TopazEngine on-board&lt;br /&gt;
              └─ 自评估车: 本地 SelfEvaluating(agv, script) → 厂商命令&lt;br /&gt;
                              │&lt;br /&gt;
                              ▼ (周期心跳)&lt;br /&gt;
              Car.keepAlive() ← 车体上报 (x, y, th, siteId, ...)&lt;br /&gt;
&lt;br /&gt;
详见 [[Special:MyLanguage/AGV任务运行逻辑|AGV任务运行逻辑]] 与 [[Special:MyLanguage/调度内核运行原理|调度内核运行原理]]。&lt;br /&gt;
&lt;br /&gt;
== 算法层次 / Algorithm layering ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 层 / Layer !! 关切 / Concern !! 内核 / Engine&lt;br /&gt;
|-&lt;br /&gt;
| 业务规划 / Business || 哪台车做哪个任务 || `NetworkFlowBizPlanner`&lt;br /&gt;
|-&lt;br /&gt;
| 路径规划 / Pathfinding || 当前任务沿哪条路径 || A* / 流场（[[Special:MyLanguage/流场规划|流场规划]]）+ 启发器&lt;br /&gt;
|-&lt;br /&gt;
| 交管 / Traffic control || 多车并存如何避碰 || DPS（[[Special:MyLanguage/DPS调度算法详解|DPS算法]]）&lt;br /&gt;
|-&lt;br /&gt;
| 可达性 / Reachability || 当前状态下哪些路径有效 || 状态机（[[Special:MyLanguage/可达性状态编程|可达性状态编程]]）&lt;br /&gt;
|-&lt;br /&gt;
| 包络 / Envelope || 车体当前占用哪些站点 || 几何 + Reachability 联动&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 插件类型 / Plugin types ==&lt;br /&gt;
SimpleComposer 支持三类插件：&lt;br /&gt;
SimpleComposer supports three plugin classes:&lt;br /&gt;
&lt;br /&gt;
# '''车型插件''' / Car-type — 派生 `ClumsyCar` 或 `Car`，加 `[CarType]` 属性。新车上线主用。&lt;br /&gt;
# '''业务插件''' / Business — 派生 `BusinessLogic`，定义自定义任务类型、字段、动作。&lt;br /&gt;
# '''CAD 工具插件''' / CAD-tool — 派生 `CADToolPlugin`，给 CAD 画布加自定义可视化与编辑工具。&lt;br /&gt;
&lt;br /&gt;
详见 [[Special:MyLanguage/使用手册 - Simple:从使用到开发|使用手册 - Simple:从使用到开发]] 和 [[Special:MyLanguage/如何基于SimpleCore核心库进行调度系统开发|如何基于SimpleCore核心库进行调度系统开发]]。&lt;br /&gt;
&lt;br /&gt;
== 关键决策 / Key design choices ==&lt;br /&gt;
* '''SimpleCore 与 SimpleComposer 解耦''' —— SimpleCore 是纯算法库；SimpleComposer 可被替换。&lt;br /&gt;
* '''TopazScript 中间表达''' —— 任务脚本而不是 RPC，让 ClumsyCar 与自评估车共用同一编译产物。&lt;br /&gt;
* '''DPS 预先规划交管''' —— 牺牲灵活性换 ''可证明的无死锁''；动态场景多时切流场。&lt;br /&gt;
* '''可达性是状态机而不是布尔''' —— 同一物理车在 ''带载 / 不带载 / 高位 / 电量低''等状态下走不同路径。&lt;br /&gt;
&lt;br /&gt;
== 相关页面 / See also ==&lt;br /&gt;
* [[Special:MyLanguage/AGV任务运行逻辑|AGV任务运行逻辑]]&lt;br /&gt;
* [[Special:MyLanguage/调度内核运行原理|调度内核运行原理]]&lt;br /&gt;
* [[Special:MyLanguage/DPS调度算法详解|DPS调度算法详解]]&lt;br /&gt;
* [[Special:MyLanguage/流场规划|流场规划]]&lt;br /&gt;
* [[Special:MyLanguage/基于网络流的业务规划器|基于网络流的业务规划器]]&lt;br /&gt;
* [[Special:MyLanguage/Simple-API|Simple-API]]&lt;br /&gt;
* [[Special:MyLanguage/如何基于SimpleCore核心库进行调度系统开发|如何基于SimpleCore核心库进行调度系统开发]]&lt;br /&gt;
* [[Special:MyLanguage/开发手册 - SimpleComposer界面开发 - CAD工具|开发手册 - SimpleComposer界面开发 - CAD工具]]&lt;br /&gt;
&lt;br /&gt;
[[Category:开发手册]]&lt;/div&gt;</summary>
		<author><name>Artheru</name></author>
	</entry>
</feed>