生产接口协议
|
||
---|---|---|
.vscode | ||
samples | ||
src | ||
tests | ||
.gitignore | ||
jest.config.js | ||
package.json | ||
pnpm-lock.yaml | ||
README.md | ||
tsconfig.json |
Cut Abstractions
这是一个用于MES新版生产的抽象库,提供了一套可扩展的处理器和解析器,用于处理各种切割相关的指令和数据。
核心概念
-
处理器 (Processor): 负责执行具体的加工任务。每个处理器都包含名称、版本和执行方法。开发者可以继承
ProcessorBase
来实现自定义的处理器。 -
解析器 (Parser): 负责解析文本指令,并调用相应的处理代码。
ParserBase
提供了解析和执行指令的基本框架。 -
上下文 (Context): 在处理器执行期间传递数据,包含输入、参数和输出。
主要功能
- 可扩展的处理器架构: 允许开发者轻松添加新的加工处理器,以适应不同的业务需求。
- 灵活的指令解析: 支持自定义指令集,可以解析文本格式的指令并执行相应的操作。
- 清晰的数据流: 通过上下文对象在处理器之间传递数据,使得数据流清晰可控。
使用示例
以下是一个简单的示例,展示了如何使用本库:
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 | |
柜名 | CabinetName | boxName | bodyName | |
小板名 | BoardName | blockName | blockName | |
材质 | Material | material | material | |
大板名 | 无 | boardName | goodsName | |
余料 | 无 | scrap | remain | |
排单 | 无 | planOrder | planOrder |
编译与发布
更新 package.json 版本号
pnpm clean
pnpm build
pnpm release