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:
@@ -218,7 +218,17 @@ void HostHandler::send_terminal_display_multi(uint32_t tid,
|
||||
void HostHandler::send_create_process_job(
|
||||
const std::string& prjobid, const std::string& ppid,
|
||||
const std::vector<std::string>& mtrloutspec, ReplyHandler cb) {
|
||||
send_request(s16f11_pr_job_create(prjobid, ppid, mtrloutspec), std::move(cb));
|
||||
// Simplified caller (no MF / process params / recipe-vars). Fill in
|
||||
// sensible E40 defaults: substrate-flow, recipe-only (no var tuning),
|
||||
// empty rcpvars + params.
|
||||
PRJobCreateRequest req{
|
||||
prjobid,
|
||||
MaterialFlag::Substrate,
|
||||
ProcessRecipeMethod::RecipeOnly,
|
||||
RecipeSpec{ppid, {}},
|
||||
mtrloutspec,
|
||||
{}};
|
||||
send_request(s16f11_pr_job_create(req), std::move(cb));
|
||||
}
|
||||
|
||||
void HostHandler::send_pr_job_command(const std::string& prjobid,
|
||||
|
||||
Reference in New Issue
Block a user