新增优化相关数据模型,新增矩形优化处理器数据模型
This commit is contained in:
92
README.md
92
README.md
@@ -1,7 +1,81 @@
|
||||
## 生产接口协议
|
||||
本项目使用typescript编写,IDE推荐使用vscode。
|
||||
# Cut Abstractions
|
||||
|
||||
这是一个用于MES新版生产的抽象库,提供了一套可扩展的处理器和解析器,用于处理各种切割相关的指令和数据。
|
||||
|
||||
## 核心概念
|
||||
|
||||
- **处理器 (Processor)**: 负责执行具体的加工任务。每个处理器都包含名称、版本和执行方法。开发者可以继承 `ProcessorBase` 来实现自定义的处理器。
|
||||
|
||||
- **解析器 (Parser)**: 负责解析文本指令,并调用相应的处理代码。`ParserBase` 提供了解析和执行指令的基本框架。
|
||||
|
||||
- **上下文 (Context)**: 在处理器执行期间传递数据,包含输入、参数和输出。
|
||||
|
||||
## 主要功能
|
||||
|
||||
- **可扩展的处理器架构**: 允许开发者轻松添加新的加工处理器,以适应不同的业务需求。
|
||||
- **灵活的指令解析**: 支持自定义指令集,可以解析文本格式的指令并执行相应的操作。
|
||||
- **清晰的数据流**: 通过上下文对象在处理器之间传递数据,使得数据流清晰可控。
|
||||
|
||||
## 使用示例
|
||||
|
||||
以下是一个简单的示例,展示了如何使用本库:
|
||||
|
||||
```typescript
|
||||
import { ProcessorBase, ProcessorContext } from 'cut-abstractions';
|
||||
|
||||
// 定义输入、输出和配置类型
|
||||
interface MyInput {
|
||||
data: string;
|
||||
}
|
||||
|
||||
interface MyOutput {
|
||||
result: string;
|
||||
}
|
||||
|
||||
interface MyConfig {
|
||||
param: string;
|
||||
}
|
||||
|
||||
// 创建一个自定义处理器
|
||||
class MyProcessor extends ProcessorBase<MyInput, MyOutput, MyConfig> {
|
||||
get name() {
|
||||
return 'my-processor';
|
||||
}
|
||||
|
||||
get version() {
|
||||
return '1.0.0';
|
||||
}
|
||||
|
||||
exec(context: ProcessorContext<MyInput, MyOutput, MyConfig>) {
|
||||
// 执行处理逻辑
|
||||
const inputData = context.input?.data || '';
|
||||
const param = context.params?.param || '';
|
||||
context.output = {
|
||||
result: `Processed: ${inputData} with param: ${param}`,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// 使用处理器
|
||||
const processor = new MyProcessor();
|
||||
const context: ProcessorContext<MyInput, MyOutput, MyConfig> = {
|
||||
input: { data: 'hello' },
|
||||
params: { param: 'world' },
|
||||
};
|
||||
|
||||
processor.exec(context);
|
||||
|
||||
console.log(context.output?.result); // "Processed: hello with param: world"
|
||||
```
|
||||
|
||||
## 模块
|
||||
|
||||
- `base`: 提供了处理器的基本抽象。
|
||||
- `parsers`: 提供了指令解析器的基本抽象。
|
||||
- `models`: 定义了项目中使用的数据模型,如 `Config`、`Knife` 和 `File`。
|
||||
|
||||
## 术语表
|
||||
|
||||
### 术语表
|
||||
| 中文 | CAD | MES | IMES | 备注 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 房名 | RoomName | roomName | roomName | |
|
||||
@@ -11,15 +85,3 @@
|
||||
| 大板名 | 无 | boardName | goodsName | |
|
||||
| 余料 | 无 | scrap | remain | |
|
||||
| 排单 | 无 | planOrder |planOrder | |
|
||||
|
||||
|
||||
### 编译与发布
|
||||
更新 package.json 版本号
|
||||
```shell
|
||||
pnpm clean
|
||||
pnpm build
|
||||
pnpm release
|
||||
```
|
||||
|
||||
### 开发建议
|
||||
MES与IMES存在不少命名上的差异,可以考虑 接口类型独立, 参数与配置单独创建类型
|
Reference in New Issue
Block a user