111 lines
3.9 KiB
TypeScript
111 lines
3.9 KiB
TypeScript
|
||
import { ProcessorModule, StepControllerProcessor, Processor } from "../../src/device";
|
||
import { RectOptimizeMachineModule } from "../moduleManager/module_RectOptimizeMachine";
|
||
import { ToolsModule } from "../moduleManager/module_tools";
|
||
import { CheckMaterial } from "../moduleManager/module_checkMaterial";
|
||
import { CheckBlocks } from "../moduleManager/module_checkBlocks";
|
||
import { ResetModelContour } from "../moduleManager/module_resetModelContour";
|
||
import { AutoCalcCutOrder } from "../moduleManager/module_autoCalcCutOrder";
|
||
import { HandleMaterialPlaceResult } from "../moduleManager/module_handleMaterialPlaceResult";
|
||
import { handlePlaceResultToPlaceMaterial } from "../moduleManager/module_handlePlaceResultToPlaceMaterial";
|
||
// import { Init2VModel } from "../moduleManager/module_init2VModel";
|
||
/**
|
||
* demo 开料机处理器
|
||
*
|
||
*
|
||
*/
|
||
export class demoHandleGroupCutting {
|
||
processorName = "cutting"
|
||
processor: StepControllerProcessor<any, any>
|
||
constructor() {
|
||
// 主线程
|
||
const demoCallbackModule: ProcessorModule<any, any> = {
|
||
moduleName: "callbackStyle",
|
||
process(input, next, context) {
|
||
|
||
console.log("做优化");
|
||
const _input = input
|
||
const _next = next
|
||
const _context = context
|
||
// 可以在这里调用异步操作
|
||
|
||
Reflect.set(context, 'CallBack', callBack1)
|
||
// 决定是否调用 next
|
||
this.onMessage('测试传消息给处理器');
|
||
|
||
function callBack1(v) {
|
||
console.log('接收到其它模块回传的数据');
|
||
}
|
||
|
||
// 调用 next 继续流程
|
||
return next(input);
|
||
}
|
||
};
|
||
|
||
|
||
this.processor = new StepControllerProcessor<any, any>();
|
||
this.processor.setOnMessageFunc(this.getMessageByModules)
|
||
|
||
this.processor.use([
|
||
// demoCallbackModule,
|
||
ToolsModule, // 刀库
|
||
// CheckMaterial,
|
||
// CheckBlocks,
|
||
// ResetModelContour,
|
||
// Init2VModel,
|
||
RectOptimizeMachineModule, // 优化
|
||
// {
|
||
// moduleName: "final",
|
||
// process(input, next,context) {
|
||
// // 不调用 next,终止流程
|
||
// console.log('结束了')
|
||
// return next(input);
|
||
// }
|
||
// }
|
||
])
|
||
|
||
|
||
}
|
||
// 获取到模块的消息
|
||
async getMessageByModules(data) {
|
||
console.log('getMessageByModules', data);
|
||
this.processor = new StepControllerProcessor<any, any>();
|
||
switch (data.moduleName) {
|
||
// 处理优化模块的消息
|
||
case 'RectOptimizeMachine':
|
||
|
||
// 处理优化数据
|
||
this.processor.use([HandleMaterialPlaceResult,
|
||
handlePlaceResultToPlaceMaterial,
|
||
AutoCalcCutOrder])
|
||
this.processor.setOnMessageFunc(this.getMessageByModules)
|
||
let bList = []
|
||
data.pm.blockList.forEach(b => {
|
||
bList[b.blockNo] = b
|
||
});
|
||
let params = {
|
||
bList: bList,
|
||
best:data.result[0],
|
||
yl:data.result[1],
|
||
pm:data.pm,
|
||
width:data.pm.width,
|
||
length:data.pm.length
|
||
}
|
||
let context = {
|
||
MaterialPlaceSource:params
|
||
}
|
||
let res = await this.processor.process(data.input,context)
|
||
|
||
console.log(res);
|
||
|
||
// this.processor.use(handlePlaceResultToPlaceMaterial)
|
||
// let params1 = res
|
||
// let res1 = await this.processor.process(res)
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
} |