Confirmed live: both BambuMQTT versions reply to a calibration request
with a dedicated print.calibration report, not just push_status - the
v1 request schema's own description said the opposite ("printer responds
with push_status instead of calibration"), and v2's report schema framed
this as a v1-vs-v2 contrast that no longer holds. Both descriptions
corrected; the printer does still send ordinary push_status updates
alongside the dedicated report as calibration progresses, same as any
other print job, not instead of it.
Added v1/report/print/calibration.schema.json (only existed for v2
before) and wired it into v1/report.schema.json's print category
dispatcher, which never listed it since the file didn't exist.
23 lines
1.5 KiB
JSON
23 lines
1.5 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/report/print/calibration.schema.json",
|
|
"title": "CalibrationReport",
|
|
"description": "The direct reply to request/print/calibration.schema.json - both BambuMQTT versions respond this way (v1 has its own identical report/print/calibration.schema.json; earlier versions of this description incorrectly claimed v1 differed here). The printer still also sends ordinary `push_status` updates reflecting calibration progress alongside this report, e.g. `{\"subtask_name\":\"auto_cali_for_user_param.gcode\",\"file\":\"/usr/etc/print/O1C2/auto_cali_for_user_param.gcode\",\"gcode_file\":\"/usr/etc/print/O1C2/auto_cali_for_user_param.gcode\",\"gcode_file_prepare_percent\":\"100\",\"gcode_state\":\"FAILED\",\"mc_print_stage\":\"1\"}` - the same way any other print job in progress does, not a substitute for this report.",
|
|
"allOf": [
|
|
{ "$ref": "../../../common/envelope.schema.json" },
|
|
{
|
|
"type": "object",
|
|
"properties": {
|
|
"command": { "const": "calibration" },
|
|
"option": {
|
|
"description": "Following bitmask is required for the `option` field: `if (lidarCalibration) bitmask |= 1; if (bedLevelling) bitmask |= 1 << 1; if (vibrationCompensation) bitmask |= 1 << 2; if (motorCancellation) bitmask |= 1 << 3;`",
|
|
"type": "integer",
|
|
"minimum": 0,
|
|
"maximum": 15
|
|
}
|
|
},
|
|
"required": ["option"]
|
|
}
|
|
]
|
|
}
|