Metadata-Version: 2.4
Name: ilesp
Version: 0.1.3
Summary: Intelligent Logistics Equipment Scheduling Platform — WCS + RCS + built-in simulation with an adapter seam for real devices
Author: ILESP Contributors
License: MIT
Project-URL: Homepage, https://github.com/123AIoT/ILESP
Keywords: wcs,rcs,logistics,warehouse,amr,simulation,digital-twin,modbus,vda5050
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Manufacturing
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: api
Requires-Dist: fastapi>=0.110; extra == "api"
Requires-Dist: uvicorn[standard]>=0.27; extra == "api"
Provides-Extra: modbus
Requires-Dist: pymodbus>=3.6; extra == "modbus"
Provides-Extra: vda5050
Requires-Dist: paho-mqtt>=1.6; extra == "vda5050"
Provides-Extra: aethon
Provides-Extra: all
Requires-Dist: fastapi>=0.110; extra == "all"
Requires-Dist: uvicorn[standard]>=0.27; extra == "all"
Requires-Dist: pymodbus>=3.6; extra == "all"
Requires-Dist: paho-mqtt>=1.6; extra == "all"
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: httpx>=0.27; extra == "dev"
Requires-Dist: fastapi>=0.110; extra == "dev"
Requires-Dist: uvicorn[standard]>=0.27; extra == "dev"
Dynamic: license-file

# ILESP — Intelligent Logistics Equipment Scheduling Platform

**统一物流设备调度平台**：一个代码库内实现 **WCS（仓库控制系统）+ RCS（机器人调度系统）+ 内置仿真**，
通过**适配器缝**向真实设备平滑过渡——模拟与真实是同一接口的两种实现，切换 = 换配置，代码零分叉。

## 设计决策与演进规划

见 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)（统一 vs 分散）与 [docs/ROADMAP.md](docs/ROADMAP.md)（三阶段生产化：试点 → 交通管制内核 → 多厂商矩阵）。结论：**模块化单体**——WCS/RCS/SIM 是三个有界上下文，
内部通过任务契约通信（与将来拆分后对外的契约同形）；模拟层实现与真实设备驱动**相同的 Adapter 接口**。

## 架构

```
WMS / MES / Aethon ──HTTP(幂等任务接口)──► ┌─────────── ILESP ───────────┐
                                          │ wcs: 站台拓扑/路由/设备级调度   │
                                          │ rcs: 车队注册/派工(预留+TTL)    │
                                          │ core: 任务状态机/幂等账本/事件  │
                                          │ adapters: ◄─ 适配器缝 ─►      │
                                          │   ├── simulated/（内置仿真）    │
                                          │   └── modbus 等（真实驱动）     │
CPS 数字孪生 ◄──遥测/状态(标准协议)──────────└─────────────────────────────┘
```

## 快速开始

```bash
pip install -e ".[api]"
uvicorn ilesp.api:app --port 8800     # 或 python -m ilesp.api
pytest                                # 测试（含端到端竖切）
```

## 端到端语义（竖切）

`POST /api/v1/tasks`（幂等）→ WCS 依站台拓扑规划路径 → 逐站设备级执行
（simulated 输送线状态机）→ 需要搬运时创建 RCS 搬运腿 → 派给模拟 AMR（行驶/电池）→
到达 → 下一腿 → 任务 COMPLETED。全程迁移进 SQLite 事件账本（WAL），来源归因。

## 确定性

仿真适配器以固定 tick + 可传 seed 的 Random 驱动——相同 seed + 相同任务序列 ⇒ 相同结局
（对拍/回归友好，与 CPS 的确定性文化一致）。

## 生产化路线

| 已内置 | 路线图 |
|---|---|
| 幂等任务接口（主键+指纹+201/200/409） | 鉴权/TLS、多实例会话路由 |
| 严格状态机 + DISPATCHED 超时回退（补参考实现的缺口） | 真实设备驱动补全（Modbus 点表由配置生成） |
| 事件账本 + 断线补发（PENDING 与 DISPATCHED 超时双覆盖） | VDA5050 over MQTT（多厂商 AMR） |
| 确定性仿真 + seed 对拍 | 塔台可视化（复用 CPS 3D 管线） |

## 测试

```bash
pytest tests/ -q
```
