BB1: full E40 S16F11 body — MF, PRRECIPEMETHOD, RCPVARS, PRPROCESSPARAMS
Replaces the simplified <L,3 PRJOBID PPID MTRLOUTSPEC> demo body with
the full SEMI E40-0705 §10.2 shape:
<L,5 PRJOBID MF PRRECIPEMETHOD
<L,2 PPID <L,n <L,2 RCPPARNM RCPPARVAL>>>
<L,n MTRLOUTSPEC>
<L,n <L,2 PARAMNAME PARAMVAL>>>
ProcessJob now carries the extra fields (MaterialFlag, ProcessRecipeMethod,
RcpVar[], ProcessParam[]) so a tool's recipe engine can later consume
the recipe-variable overrides and per-job process parameters. Server
S16F11 dispatch populates them via the new ProcessJobStore::set_e40_extras
helper after a successful create.
MaterialFlag + ProcessRecipeMethod enums live in their own tiny header
(`e40_constants.hpp`) so process_jobs.hpp (the store) can use them
without dragging in messages_helpers.hpp (which would create a circular
include via data_model.hpp).
The simplified 3-arg HostHandler::send_create_process_job convenience
remains; it constructs a sensible-default PRJobCreateRequest internally.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+37
-9
@@ -2019,14 +2019,16 @@ messages:
|
||||
- {name: prjobid, shape: {kind: scalar, item_type: ASCII}}
|
||||
- {name: prjobstate, shape: {kind: scalar, item_type: BINARY_BYTE, enum: ProcessJobState}}
|
||||
|
||||
# S16F11 / F12 — PRJobCreate.
|
||||
# S16F11 / F12 — PRJobCreate. Full E40-0705 §10.2 body:
|
||||
#
|
||||
# Real E40-0705 S16F11 body is <L,5 PRJOBID MF PRRECIPEMETHOD
|
||||
# RCPSPEC L MTRLOUTSPEC L PRPROCESSPARAMS>. We simplify to the
|
||||
# three pieces that actually drive the demo state machine:
|
||||
# PRJOBID, recipe (PPID), and the list of material identifiers. MF
|
||||
# / PRRECIPEMETHOD / PRPROCESSPARAMS are tool-specific; layering
|
||||
# them in is a YAML edit + builder overload, not surgery.
|
||||
# <L,5 PRJOBID MF PRRECIPEMETHOD RCPSPEC <L,n MTRLOUTSPEC> <L,n PRPROCESSPARAMS>>
|
||||
# where RCPSPEC = <L,2 PPID <L,n <L,2 RCPPARNM RCPPARVAL>>>
|
||||
# PRPROCESSPARAMS entry = <L,2 PARAMNAME PARAMVAL>
|
||||
#
|
||||
# The earlier simplified 3-field form (PRJOBID, PPID, MTRLOUTSPEC) is
|
||||
# still available via a hand-written convenience overload
|
||||
# `s16f11_pr_job_create_simple` for callers that don't care about
|
||||
# MF / PRRECIPEMETHOD / process params.
|
||||
- id: S16F11
|
||||
stream: 16
|
||||
function: 11
|
||||
@@ -2037,10 +2039,36 @@ messages:
|
||||
kind: list
|
||||
struct_name: PRJobCreateRequest
|
||||
fields:
|
||||
- {name: prjobid, shape: {kind: scalar, item_type: ASCII}}
|
||||
- {name: ppid, shape: {kind: scalar, item_type: ASCII}}
|
||||
- {name: prjobid, shape: {kind: scalar, item_type: ASCII}}
|
||||
- {name: mf, shape: {kind: scalar, item_type: BINARY_BYTE, enum: MaterialFlag}}
|
||||
- {name: prrecipemethod,
|
||||
shape: {kind: scalar, item_type: BINARY_BYTE, enum: ProcessRecipeMethod}}
|
||||
- name: rcpspec
|
||||
shape:
|
||||
kind: list
|
||||
struct_name: RecipeSpec
|
||||
fields:
|
||||
- {name: ppid, shape: {kind: scalar, item_type: ASCII}}
|
||||
- name: rcpvars
|
||||
shape:
|
||||
kind: list_of
|
||||
element:
|
||||
kind: list
|
||||
struct_name: RecipeVariable
|
||||
fields:
|
||||
- {name: name, shape: {kind: scalar, item_type: ASCII}}
|
||||
- {name: value, shape: {kind: scalar, item_type: ITEM}}
|
||||
- name: mtrloutspec
|
||||
shape: {kind: list_of, element: {kind: scalar, item_type: ASCII}}
|
||||
- name: prprocessparams
|
||||
shape:
|
||||
kind: list_of
|
||||
element:
|
||||
kind: list
|
||||
struct_name: ProcessParameter
|
||||
fields:
|
||||
- {name: name, shape: {kind: scalar, item_type: ASCII}}
|
||||
- {name: value, shape: {kind: scalar, item_type: ITEM}}
|
||||
|
||||
- id: S16F12
|
||||
stream: 16
|
||||
|
||||
Reference in New Issue
Block a user