diff --git a/schemas/bambulab/v1/common/ams.schema.json b/schemas/bambulab/v1/common/ams/ams.schema.json similarity index 88% rename from schemas/bambulab/v1/common/ams.schema.json rename to schemas/bambulab/v1/common/ams/ams.schema.json index 6b0ed2d..6e6913e 100644 --- a/schemas/bambulab/v1/common/ams.schema.json +++ b/schemas/bambulab/v1/common/ams/ams.schema.json @@ -1,13 +1,13 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/common/ams.schema.json", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/common/ams/ams.schema.json", "title": "AmsState", "description": "Bambu's own naming has the outer container and the inner array both called `ams` - print.ams.ams, not a typo here, just what the printer actually sends.", "type": "object", "properties": { "ams": { "type": "array", - "items": { "$ref": "_ams_unit.schema.json" } + "items": { "$ref": "./ams_unit.schema.json" } }, "ams_exists_bits": { "type": "string" }, "tray_exist_bits": { "type": "string" }, diff --git a/schemas/bambulab/v1/common/ams_tray.schema.json b/schemas/bambulab/v1/common/ams/ams_tray.schema.json similarity index 91% rename from schemas/bambulab/v1/common/ams_tray.schema.json rename to schemas/bambulab/v1/common/ams/ams_tray.schema.json index 6061064..e4c3396 100644 --- a/schemas/bambulab/v1/common/ams_tray.schema.json +++ b/schemas/bambulab/v1/common/ams/ams_tray.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/common/ams_tray.schema.json", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/common/ams/ams_tray.schema.json", "title": "AmsTray", "description": "A tray slot is either empty (just `id`) or loaded (the full field set) - two genuinely different shapes for the same slot, not one shape with optional fields. oneOf says the instance must match EXACTLY one of these. Note LoadedTray requires every field it lists, not just `id` - with only `id` required, a bare {\"id\":\"0\"} would validate against BOTH branches at once (it trivially satisfies Loaded's single requirement too) and oneOf would fail, since oneOf demands exactly one match. Verified this the hard way - see git history. The Rust equivalent is an untagged enum with #[serde(deny_unknown_fields)] on the Empty variant, for the same reason in reverse: without it, a loaded tray's extra fields wouldn't be rejected by Empty, and untagged enums try variants in order - see bambu_commands/print.rs. `drying_time` and `drying_temp` fields are only available for AMS 2 and AMS HT - AMS 1 doesn't have the drying option.", "oneOf": [ @@ -15,13 +15,13 @@ }, { "allOf": [ - { "$ref": "./_vt_tray.schema.json" }, + { "$ref": "../vt_tray.schema.json" }, { "title": "LoadedTray", "type": "object", "properties": { "state": { "type": "integer" }, - "total_len": { "type": "number" }, + "total_len": { "type": "number", "minimum": 0 }, "ctype": { "type": "integer" }, "cols": { "type": "array", "items": { "type": "string" } }, "drying_time": { "type": "string" }, diff --git a/schemas/bambulab/v1/common/ams_unit.schema.json b/schemas/bambulab/v1/common/ams/ams_unit.schema.json similarity index 85% rename from schemas/bambulab/v1/common/ams_unit.schema.json rename to schemas/bambulab/v1/common/ams/ams_unit.schema.json index 66e16dc..d3d7976 100644 --- a/schemas/bambulab/v1/common/ams_unit.schema.json +++ b/schemas/bambulab/v1/common/ams/ams_unit.schema.json @@ -1,13 +1,13 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/common/ams_unit.schema.json", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/common/ams/ams_unit.schema.json", "title": "AmsUnit", "description": "One physical AMS unit (Bambu's numbering starts at 0 via `id`).", "type": "object", "properties": { "tray": { "type": "array", - "items": { "$ref": "_ams_tray.schema.json" } + "items": { "$ref": "./ams_tray.schema.json" } }, "chip_id": { "type": "string" }, "ams_id": { "type": "string" }, diff --git a/schemas/bambulab/v1/common/hms.schema.json b/schemas/bambulab/v1/common/hms.schema.json index 4b5d56a..e0cad87 100644 --- a/schemas/bambulab/v1/common/hms.schema.json +++ b/schemas/bambulab/v1/common/hms.schema.json @@ -1,8 +1,8 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/common/online.schema.json", - "title": "Online", - "description": "Printer online/offline status", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/common/hms.schema.json", + "title": "HMS", + "description": "HMS Error Report", "type": "array", "items": { "type": "object", diff --git a/schemas/bambulab/v1/common/upgrade_state.schema.json b/schemas/bambulab/v1/common/upgrade_state.schema.json index 5e3e1f2..34fda64 100644 --- a/schemas/bambulab/v1/common/upgrade_state.schema.json +++ b/schemas/bambulab/v1/common/upgrade_state.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/report/print/_upgrade_state.schema.json", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/common/upgrade_state.schema.json", "title": "UpgradeState", "type": "object", "properties": { diff --git a/schemas/bambulab/v1/common/upload.schema.json b/schemas/bambulab/v1/common/upload.schema.json index 1419da5..07469f2 100644 --- a/schemas/bambulab/v1/common/upload.schema.json +++ b/schemas/bambulab/v1/common/upload.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/report/print/_upload.schema.json", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/common/upload.schema.json", "title": "Upload", "description": "File upload progress", "oneOf": [ diff --git a/schemas/bambulab/v1/common/vt_tray.schema.json b/schemas/bambulab/v1/common/vt_tray.schema.json index 25b90bb..cffe289 100644 --- a/schemas/bambulab/v1/common/vt_tray.schema.json +++ b/schemas/bambulab/v1/common/vt_tray.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/report/print/_vt_tray.schema.json", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/common/vt_tray.schema.json", "title": "VtTray", "description": "This schema is used as Virtual Tray (external spool) or as a base for AmsTray. When empty, all values are zeroed and `tray_color` field is set to \"FFFFFF00\".", "type": "object", diff --git a/schemas/bambulab/v1/common/xcam.schema.json b/schemas/bambulab/v1/common/xcam.schema.json index a422fea..399c320 100644 --- a/schemas/bambulab/v1/common/xcam.schema.json +++ b/schemas/bambulab/v1/common/xcam.schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/report/print/_xcam.schema.json", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/common/xcam.schema.json", "title": "XcamSettings", "description": "Camera-based AI print monitoring settings (spaghetti detection, first-layer inspection, etc.).", "type": "object", diff --git a/schemas/bambulab/v1/report/print/print.schema.json b/schemas/bambulab/v1/report/print/print.schema.json index bc9eab4..8603cf4 100644 --- a/schemas/bambulab/v1/report/print/print.schema.json +++ b/schemas/bambulab/v1/report/print/print.schema.json @@ -16,7 +16,7 @@ "net": { "$ref": "../../common/net.schema.json" }, "hms": { "$ref": "../../common/hms.schema.json" }, "online": { "$ref": "../../common/online.schema.json" }, - "ams": { "$ref": "../../common/ams.schema.json" }, + "ams": { "$ref": "../../common/ams/ams.schema.json" }, "vt_tray": { "$ref": "../../common/vt_tray.schema.json" }, "lights_report": { "$ref": "../../common/lights_report.schema.json" }, "xcam": { "$ref": "../../common/xcam.schema.json" }, @@ -37,7 +37,7 @@ "s_obj": { "type": "array", "items": {} }, "filam_bak": { "type": "array", "items": {} }, - "stg": { "type": "array", "items": {} }, + "stg": { "type": "array", "items": { "type": "number" } }, "mc_print_stage": { "type": "string" }, "mc_percent": { "type": "integer" }, @@ -51,7 +51,7 @@ "print_error": { "type": "integer" }, "lifecycle": { "type": "string", "enum": ["product"] }, "wifi_signal": { "type": "string", "pattern": "^-([0-9]{1,2}|100)dBm$" }, - "gcode_state": { "type": "string", "enum": [ "idle", "IDLE" ] }, + "gcode_state": { "type": "string", "enum": [ "idle", "IDLE", "finish", "FINISH" ] }, "gcode_file_prepare_percent": { "type": "string" }, "queue_number": { "type": "integer" }, "queue_total": { "type": "integer" }, @@ -64,7 +64,7 @@ "subtask_name": { "type": "string" }, "gcode_file": { "type": "string" }, "stg_cur": { "type": "integer" }, - "print_type": { "type": "string", "enum": [ "idle", "IDLE" ] }, + "print_type": { "type": "string", "enum": [ "", "idle", "IDLE" ] }, "home_flag": { "type": "integer" }, "mc_print_line_number": { "type": "string" }, "mc_print_sub_stage": { "type": "integer" }, diff --git a/schemas/bambulab/v2/common/ams/ams.schema.json b/schemas/bambulab/v2/common/ams/ams.schema.json new file mode 100644 index 0000000..b3de4f3 --- /dev/null +++ b/schemas/bambulab/v2/common/ams/ams.schema.json @@ -0,0 +1,34 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/ams/ams.schema.json", + "title": "AmsState", + "description": "Bambu's own naming has the outer container and the inner array both called `ams` - print.ams.ams, not a typo here, just what the printer actually sends.", + "type": "object", + "properties": { + "ams": { + "type": "array", + "items": { "$ref": "./ams_unit.schema.json" } + }, + "ams_exists_bits": { "type": "string" }, + "ams_exist_bits_raw": { "type": "string" }, + "cali_id": { "type": "integer" }, + "cali_stat": { "type": "integer" }, + "insert_flag": { "type": "boolean" }, + "power_on_flag": { "type": "boolean" }, + "tray_exist_bits": { "type": "string" }, + "tray_is_bbl_bits": { "type": "string" }, + "tray_now": { "type": "string" }, + "tray_pre": { "type": "string" }, + "tray_read_done_bits": { "type": "string" }, + "tray_reading_bits": { "type": "string" }, + "tray_tar": { "type": "string" }, + "unbind_ams_stat": { "type": "integer" }, + "version": { "type": "integer" } + }, + "required": [ + "ams", "ams_exists_bits", "ams_exist_bits_raw", "cali_id", + "cali_stat", "insert_flag", "power_on_flag", "tray_exist_bits", + "tray_is_bbl_bits", "tray_now", "tray_pre", "tray_read_done_bits", + "tray_reading_bits", "tray_tar", "unbind_ams_stat", "version" + ] +} diff --git a/schemas/bambulab/v2/common/ams/ams_tray.schema.json b/schemas/bambulab/v2/common/ams/ams_tray.schema.json new file mode 100644 index 0000000..9127e83 --- /dev/null +++ b/schemas/bambulab/v2/common/ams/ams_tray.schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/ams/ams_tray.schema.json", + "title": "AmsTray", + "description": "A tray slot is either empty (just `id`) or loaded (the full field set) - two genuinely different shapes for the same slot, not one shape with optional fields. oneOf says the instance must match EXACTLY one of these. Note LoadedTray requires every field it lists, not just `id` - with only `id` required, a bare {\"id\":\"0\"} would validate against BOTH branches at once (it trivially satisfies Loaded's single requirement too) and oneOf would fail, since oneOf demands exactly one match. Verified this the hard way - see git history. The Rust equivalent is an untagged enum with #[serde(deny_unknown_fields)] on the Empty variant, for the same reason in reverse: without it, a loaded tray's extra fields wouldn't be rejected by Empty, and untagged enums try variants in order - see bambu_commands/print.rs. `drying_time` and `drying_temp` fields are only available for AMS 2 and AMS HT - AMS 1 doesn't have the drying option.", + "oneOf": [ + { + "title": "EmptyTray", + "type": "object", + "properties": { + "id": { "type": "string" }, + "state": { "type": "integer" } + }, + "required": ["id", "state"], + "additionalProperties": false + }, + { + "allOf": [ + { "$ref": "../vt_tray.schema.json" }, + { + "title": "LoadedTray", + "type": "object", + "properties": { + "state": { "type": "integer" } + }, + "required": [ + "state" + ] + } + ] + } + ] +} diff --git a/schemas/bambulab/v2/common/ams/ams_unit.schema.json b/schemas/bambulab/v2/common/ams/ams_unit.schema.json new file mode 100644 index 0000000..14ddefa --- /dev/null +++ b/schemas/bambulab/v2/common/ams/ams_unit.schema.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/ams/ams_unit.schema.json", + "title": "AmsUnit", + "description": "One physical AMS unit (Bambu's numbering starts at 0 via `id`).", + "type": "object", + "properties": { + "tray": { + "type": "array", + "items": { "$ref": "./ams_tray.schema.json" } + }, + "dry_time": { "type": "integer" }, + "humidity": { "type": "string" }, + "humidity_raw": { "type": "string" }, + "id": { "type": "string" }, + "info": { "type": "string" }, + "temp": { "type": "string" } + }, + "required": ["humidity", "humidity_raw", "id", "info", "temp", "tray"] +} diff --git a/schemas/bambulab/v2/common/care.schema.json b/schemas/bambulab/v2/common/care.schema.json new file mode 100644 index 0000000..3fbaa61 --- /dev/null +++ b/schemas/bambulab/v2/common/care.schema.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/care.schema.json", + "title": "Care", + "description": "Printer online/offline status", + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "string", "pattern": "^[lhLH][sdrSDR]$" }, + "info": { "type": "string" } + } + } +} diff --git a/schemas/bambulab/v2/common/device/airduct.schema.json b/schemas/bambulab/v2/common/device/airduct.schema.json new file mode 100644 index 0000000..bc14a15 --- /dev/null +++ b/schemas/bambulab/v2/common/device/airduct.schema.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/airduct.schema.json", + "title": "DeviceAirduct", + "description": "Schema for details about the Airduct", + "type": "object", + "properties": { + "modeList": { + "type": "array", + "items": { + "$ref": "./airduct_mode.schema.json" + } + }, + "parts": { + "type": "array", + "items": { + "$ref": "./airduct_part.schema.json" + } + }, + "modeCur": { "type": "integer" }, + "modeFunc": { "type": "integer" }, + "modeVisable": { "type": "integer" }, + "subFunc": { "type": "integer" }, + "subMode": { "type": "integer" }, + "subVisable": { "type": "integer" }, + "version": { "type": "integer" } + }, + "required": [ + "modeCur", "modeFunc", "modeVisable", + "subFunc", "subMode", "subVisable", + "version", "modeList", "parts" + ] +} diff --git a/schemas/bambulab/v2/common/device/airduct_mode.schema.json b/schemas/bambulab/v2/common/device/airduct_mode.schema.json new file mode 100644 index 0000000..9a4af7b --- /dev/null +++ b/schemas/bambulab/v2/common/device/airduct_mode.schema.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/airduct_mode.schema.json", + "title": "DeviceAirductMode", + "description": "Schema for available airduct modes", + "type": "object", + "properties": { + "ctrl": { "type": "array", "items": { "type": "integer", "multipleOf": 16 } }, + "off": { "type": "array", "items": { "type": "integer", "multipleOf": 16 } }, + "modeId": { "type": "integer" } + }, + "required": ["ctrl", "off", "modeId"] +} diff --git a/schemas/bambulab/v2/common/device/airduct_part.schema.json b/schemas/bambulab/v2/common/device/airduct_part.schema.json new file mode 100644 index 0000000..3d8d27b --- /dev/null +++ b/schemas/bambulab/v2/common/device/airduct_part.schema.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/airduct_part.schema.json", + "title": "DeviceAirductPart", + "description": "Schema for available airduct parts", + "type": "object", + "properties": { + "func": { "type": "integer" }, + "id": { "type": "integer" }, + "range": { "type": "integer" }, + "state": { "type": "integer" }, + "tar_state": { "type": "integer" } + } +} diff --git a/schemas/bambulab/v2/common/device/bed.schema.json b/schemas/bambulab/v2/common/device/bed.schema.json new file mode 100644 index 0000000..4e2dd1f --- /dev/null +++ b/schemas/bambulab/v2/common/device/bed.schema.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/bed.schema.json", + "title": "DeviceBed", + "description": "Detailed info about Bed", + "type": "object", + "properties": { + "info": { + "type": "object", + "properties": { + "temp": { "type": "integer" } + }, + "required": ["temp"] + }, + "state": { "type": "integer" } + }, + "required": ["info", "state"] +} diff --git a/schemas/bambulab/v2/common/device/cam.schema.json b/schemas/bambulab/v2/common/device/cam.schema.json new file mode 100644 index 0000000..1646299 --- /dev/null +++ b/schemas/bambulab/v2/common/device/cam.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/cam.schema.json", + "title": "DeviceCamera", + "description": "Detailed info about Camera", + "type": "object", + "properties": { + "laser": { + "type": "object", + "properties": { + "cond": { "type": "integer" }, + "state": { "type": "integer" } + }, + "required": ["cond", "state"] + }, + "timelapse_path": { "type": "string" } + }, + "required": ["laser", "timelapse_path"] +} diff --git a/schemas/bambulab/v2/common/device/ctc.schema.json b/schemas/bambulab/v2/common/device/ctc.schema.json new file mode 100644 index 0000000..e5cc6a3 --- /dev/null +++ b/schemas/bambulab/v2/common/device/ctc.schema.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/ctc.schema.json", + "title": "DeviceCTC", + "description": "Detailed info about CTC", + "type": "object", + "properties": { + "info": { + "type": "object", + "properties": { + "temp": { "type": "integer" } + }, + "required": ["temp"] + }, + "state": { "type": "integer" } + }, + "required": ["info", "state"] +} diff --git a/schemas/bambulab/v2/common/device/device.schema.json b/schemas/bambulab/v2/common/device/device.schema.json new file mode 100644 index 0000000..acef50f --- /dev/null +++ b/schemas/bambulab/v2/common/device/device.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/device.schema.json", + "title": "DeviceBed", + "description": "Detailed info about all available devices", + "type": "object", + "properties": { + "airduct": { "$ref": "./airduct.schema.json" }, + "bed": { "$ref": "./bed.schema.json`" }, + "cam": { "$ref": "./cam.schema.json" }, + "ctc": { "$ref": "./ctc.schema.json" }, + "ext_tool": { "$ref": "./ext_tool.schema.json" }, + "extruder": { "$ref": "./extruder.schema.json" }, + "fire_ext": { "$ref": "./fire_ext.schema.json" }, + "holder": { "$ref": "./holder.schema.json" }, + "laser": { "$ref": "./laser.schema.json" }, + "nozzle": { "$ref": "./nozzle.schema.json" }, + "plate": { "$ref": "./plate.schema.json" }, + "bed_temp": { "type": "integer" }, + "fan": { "type": "integer" }, + "type": { "type": "integer" } + }, + "required": [ + "airduct", "bed", "cam", "ctc", + "ext_tool", "extruder", "fire_ext", "holder", + "laser", "nozzle", "plate", "bed_temp", + "fan", "type" + ] +} diff --git a/schemas/bambulab/v2/common/device/ext_tool.schema.json b/schemas/bambulab/v2/common/device/ext_tool.schema.json new file mode 100644 index 0000000..6a7d0ee --- /dev/null +++ b/schemas/bambulab/v2/common/device/ext_tool.schema.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/ext_tool.schema.json", + "title": "DeviceExternalTool", + "description": "Detailed info about External Tool", + "type": "object", + "properties": { + "calib": { "type": "integer" }, + "low_prec": { "type": "boolean" }, + "mount": { "type": "integer" }, + "mount_3d": { "type": "integer" }, + "th_temp": { "type": "integer" }, + "type": { "type": "string" } + }, + "required": [ + "calib", "low_prec", "mount", + "mount_3d", "th_temp", "type" + ] +} diff --git a/schemas/bambulab/v2/common/device/extruder.schema.json b/schemas/bambulab/v2/common/device/extruder.schema.json new file mode 100644 index 0000000..3ffd72e --- /dev/null +++ b/schemas/bambulab/v2/common/device/extruder.schema.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/extruder.schema.json", + "title": "DeviceExtruder", + "description": "Detailed info about Extruders", + "type": "object", + "properties": { + "info": { + "type": "array", + "items": { + "$ref": "./extruder_item.schema.json" + } + }, + "state": { "type": "integer" } + }, + "required": ["info", "state"] +} diff --git a/schemas/bambulab/v2/common/device/extruder_item.schema.json b/schemas/bambulab/v2/common/device/extruder_item.schema.json new file mode 100644 index 0000000..0c355f1 --- /dev/null +++ b/schemas/bambulab/v2/common/device/extruder_item.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/extruder_item.schema.json", + "title": "DeviceExtruderItem", + "description": "Detailed info about specific Extruder", + "type": "object", + "properties": { + "filam_bak": { + "type": "array", + "items": { "type": "string" } + }, + "hnow": { "type": "integer" }, + "hpre": { "type": "integer" }, + "htar": { "type": "integer" }, + "id": { "type": "integer" }, + "info": { "type": "integer" }, + "snow": { "type": "integer" }, + "spre": { "type": "integer" }, + "star": { "type": "integer" }, + "stat": { "type": "integer" }, + "temp": { "type": "integer" } + }, + "required": [ + "filam_bak", "hnow", "hpre", + "htar", "id", "info", + "snow", "spre", "star", + "stat", "temp" + ] +} diff --git a/schemas/bambulab/v2/common/device/fire_ext.schema.json b/schemas/bambulab/v2/common/device/fire_ext.schema.json new file mode 100644 index 0000000..85c647c --- /dev/null +++ b/schemas/bambulab/v2/common/device/fire_ext.schema.json @@ -0,0 +1,25 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/fire_ext.schema.json", + "title": "DeviceFireExtinguisher", + "description": "Detailed info about Fire Extinguisher", + "type": "object", + "properties": { + "history": { + "type": "array" + }, + "bot_err": { "type": "integer" }, + "cd": { "type": "integer" }, + "cd_init": { "type": "integer" }, + "connect_flag": { "type": "integer" }, + "drill_flag": { "type": "integer" }, + "remain_time": { "type": "integer" }, + "rm_init": { "type": "integer" }, + "state": { "type": "integer" } + }, + "required": [ + "history", "bot_err", "cd", + "cd_init", "connect_flag", "drill_flag", + "remain_time", "rm_init", "state" + ] +} diff --git a/schemas/bambulab/v2/common/device/holder.schema.json b/schemas/bambulab/v2/common/device/holder.schema.json new file mode 100644 index 0000000..22aaf02 --- /dev/null +++ b/schemas/bambulab/v2/common/device/holder.schema.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/holder.schema.json", + "title": "DeviceHolder", + "description": "Detailed info about Holder", + "type": "object", + "properties": { + "step": { + "type": "array", + "items": { "type": "integer" } + }, + "info": { "type": "integer" }, + "job": { "type": "integer" }, + "pos": { "type": "integer" }, + "stat": { "type": "integer" } + }, + "required": ["step", "info", "job", "pos", "stat"] +} diff --git a/schemas/bambulab/v2/common/device/laser.schema.json b/schemas/bambulab/v2/common/device/laser.schema.json new file mode 100644 index 0000000..6510099 --- /dev/null +++ b/schemas/bambulab/v2/common/device/laser.schema.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/laser.schema.json", + "title": "DeviceLaser", + "description": "Detailed info about Laser", + "type": "object", + "properties": { + "power": { "type": "integer" } + }, + "required": ["power"] +} diff --git a/schemas/bambulab/v2/common/device/nozzle.schema.json b/schemas/bambulab/v2/common/device/nozzle.schema.json new file mode 100644 index 0000000..2d31afb --- /dev/null +++ b/schemas/bambulab/v2/common/device/nozzle.schema.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/nozzle.schema.json", + "title": "DeviceNozzle", + "description": "Detailed info about available Nozzles", + "type": "object", + "properties": { + "info": { + "type": "array", + "items": { "$ref": "./nozzle_item.schema.json" } + }, + "exist": { "type": "integer" }, + "src_id": { "type": "integer" }, + "state": { "type": "integer" }, + "tar_id": { "type": "integer" } + }, + "required": [ "info", "exist", "src_id", "state", "tar_id" ] +} diff --git a/schemas/bambulab/v2/common/device/nozzle_item.schema.json b/schemas/bambulab/v2/common/device/nozzle_item.schema.json new file mode 100644 index 0000000..b150c23 --- /dev/null +++ b/schemas/bambulab/v2/common/device/nozzle_item.schema.json @@ -0,0 +1,23 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/nozzle_item.schema.json", + "title": "DeviceNozzleItem", + "description": "Detailed info about specific Nozzle", + "type": "object", + "properties": { + "color_m": { "type": "string" }, + "diameter": { "$ref": "../nozzle_diameter.schema.json" }, + "fila_id": { "type": "integer" }, + "id": { "type": "integer" }, + "sn": { "type": "string" }, + "stat": { "type": "integer" }, + "tm": { "type": "integer" }, + "type": { "$ref": "../nozzle_type.schema.json" }, + "wear": { "type": "number" } + }, + "required": [ + "color_m", "diameter", "fila_id", + "id", "sn", "stat", + "tm", "type", "wear" + ] +} diff --git a/schemas/bambulab/v2/common/device/plate.schema.json b/schemas/bambulab/v2/common/device/plate.schema.json new file mode 100644 index 0000000..ace82b6 --- /dev/null +++ b/schemas/bambulab/v2/common/device/plate.schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/device/bed.schema.json", + "title": "DevicePlate", + "description": "Detailed info about Plate", + "type": "object", + "properties": { + "base": { + "description": "NOTE: Just my guess, but for Textured PEI it was 6, for Engineering Plate it was 12", + "type": "integer" + }, + "cali2d_id": { "type": "string" }, + "cur_id": { + "description": "NOTE: Another guess - P0102 for Textured PEI, P0502 for Engineering Plate", + "type": "string" + }, + "mat": { "type": "integer" }, + "tar_id": { "type": "string" } + }, + "required": ["base", "cali2d_id", "cur_id", "mat", "tar_id"] +} diff --git a/schemas/bambulab/v2/common/hms.schema.json b/schemas/bambulab/v2/common/hms.schema.json new file mode 100644 index 0000000..4251b94 --- /dev/null +++ b/schemas/bambulab/v2/common/hms.schema.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/hms.schema.json", + "title": "HMS", + "description": "HMS Error Report", + "type": "array", + "items": { + "type": "object", + "properties": { + "attr": { "type": "integer" }, + "code": { "type": "integer" } + } + } +} diff --git a/schemas/bambulab/v2/common/info.schema.json b/schemas/bambulab/v2/common/info.schema.json new file mode 100644 index 0000000..467524f --- /dev/null +++ b/schemas/bambulab/v2/common/info.schema.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/info.schema.json", + "title": "Info", + "description": "General info", + "type": "object", + "properties": { + "temp": { "type": "integer" } + }, + "required": ["temp"] +} diff --git a/schemas/bambulab/v2/common/ipcam.schema.json b/schemas/bambulab/v2/common/ipcam.schema.json new file mode 100644 index 0000000..27629de --- /dev/null +++ b/schemas/bambulab/v2/common/ipcam.schema.json @@ -0,0 +1,73 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/ipcam.schema.json", + "title": "Ipcam", + "description": "Report about the in-built IP camera", + "type": "object", + "properties": { + "agora_service": { + "type": "string", + "enum": [ + "enable", + "disable", + "ENABLE", + "DISABLE" + ] + }, + "brtc_service": { + "type": "string", + "enum": [ + "enable", + "disable", + "ENABLE", + "DISABLE" + ] + }, + "bs_state": { "type": "integer" }, + "cap_pic_enable": { + "type": "string", + "enum": [ + "enable", + "disable", + "invalid", + "ENABLE", + "DISABLE", + "INVALID" + ] + }, + "ipcam_dev": { "type": "string" }, + "ipcam_record": { + "type": "string", + "enum": [ + "enable", + "disable", + "ENABLE", + "DISABLE" + ] + }, + "laser_preview_res": { "type": "integer" }, + "mode_bits": { "type": "integer", "minimum": 0 }, + "resolution": { "type": "string" }, + "rtsp_url": { "type": "string" }, + "timelapse": { + "type": "string", + "enum": [ + "enable", + "disable", + "ENABLE", + "DISABLE" + ] + }, + "tl_store_hpd_type": { "type": "integer" }, + "tl_store_path_type": { "type": "integer" }, + "tutk_server": { + "type": "string", + "enum": [ + "enable", + "disable", + "ENABLE", + "DISABLE" + ] + } + } +} diff --git a/schemas/bambulab/v2/common/job/job.schema.json b/schemas/bambulab/v2/common/job/job.schema.json new file mode 100644 index 0000000..d5a8c71 --- /dev/null +++ b/schemas/bambulab/v2/common/job/job.schema.json @@ -0,0 +1,24 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/job/job.schema.json", + "title": "Job", + "description": "Print job details", + "type": "object", + "properties": { + "cur_stage": { + "type": "object", + "properties": { + "idx": { "type": "number" }, + "state": { "type": "number" } + }, + "required": ["idx", "state"] + }, + "stage": { + "type": "array", + "items": { + "$ref": "./stage.schema.json" + } + } + }, + "required": ["cur_stage", "stage"] +} diff --git a/schemas/bambulab/v2/common/job/stage.schema.json b/schemas/bambulab/v2/common/job/stage.schema.json new file mode 100644 index 0000000..37424b1 --- /dev/null +++ b/schemas/bambulab/v2/common/job/stage.schema.json @@ -0,0 +1,55 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/job/stage.schema.json", + "title": "Job", + "description": "Print job stage details", + "type": "object", + "properties": { + "clock_in": { + "type": "boolean" + }, + "color": { + "type": "array", + "items": { "type": "string" } + }, + "diameter": { + "type": "array", + "items": { "type": "number" } + }, + "est_time": { + "type": "integer" + }, + "heigh": { + "type": "number" + }, + "idx": { + "type": "integer" + }, + "platform": { + "type": "string" + }, + "print_then": { + "type": "boolean" + }, + "proc_list": { + "type": "array", + "items": { "type": "string" } + }, + "tool": { + "type": "array", + "items": { + "description": "In case of 3D printing - look at `nozzle_type.schema.json`", + "type": "string" + } + }, + "type": { + "type": "integer", + "minimum": 0 + } + }, + "required": [ + "clock_in", "color", "diameter", "est_time", + "heigh", "idx", "platform", "print_then", + "proc_list", "tool", "type" + ] +} diff --git a/schemas/bambulab/v2/common/lights_report.schema.json b/schemas/bambulab/v2/common/lights_report.schema.json new file mode 100644 index 0000000..4a4aacf --- /dev/null +++ b/schemas/bambulab/v2/common/lights_report.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/lights_report.schema.json", + "title": "LightsReport", + "description": "Report status of printer lights", + "type": "array", + "items": { + "type": "object", + "properties": { + "mode": { + "type": "string", + "enum": [ + "on", + "off", + "ON", + "OFF" + ] + }, + "node": { + "type": "string", + "enum": [ + "chamber_light", + "work_light", + "chamber_light2" + ] + } + } + } +} diff --git a/schemas/bambulab/v2/common/net.schema.json b/schemas/bambulab/v2/common/net.schema.json new file mode 100644 index 0000000..4f61f04 --- /dev/null +++ b/schemas/bambulab/v2/common/net.schema.json @@ -0,0 +1,30 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/net.schema.json", + "title": "Net", + "description": "Network status", + "type": "object", + "properties": { + "conf": { + "type": "integer" + }, + "info": { + "type": "array", + "items": { + "type": "object", + "properties": { + "ip": { + "type": "integer" + }, + "mask": { + "type": "integer" + } + }, + "required": [ + "ip", + "mask" + ] + } + } + } +} diff --git a/schemas/bambulab/v2/common/nozzle_type.schema.json b/schemas/bambulab/v2/common/nozzle_type.schema.json index 7463b46..df71c25 100644 --- a/schemas/bambulab/v2/common/nozzle_type.schema.json +++ b/schemas/bambulab/v2/common/nozzle_type.schema.json @@ -1,8 +1,8 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/common/nozzle_type.schema.json", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/nozzle_type.schema.json", "title": "NozzleType", - "description": "Common schema for nozzle type. HS00 - stainless steel, HS01 - hardened steel, HS05 - tungsten carbide, HH01 - high-flow hardened steel, HH05 - high-flow tungsten carbide", + "description": "Common schema for nozzle type. HS00 - stainless steel, HS01 - hardened steel, HS05 - tungsten carbide, HH01 - high-flow hardened steel, HH05 - high-flow tungsten carbide. NOTE: format is possibly as follows: [H,X][H,S]0[0,1,5] - first character for printer series (H - H-series, possibly A-series too; X - X-series, namely X1C. Or maybe H is for hot-swap?); second character is for flow rate (S - standard; H - high-flow); third character is left as 0; fourth character is for nozzle material (0 - stainless steel; 1 - hardened steel; 5 - tungsten carbide)", "type": "string", "enum": [ "HS00", diff --git a/schemas/bambulab/v2/common/online.schema.json b/schemas/bambulab/v2/common/online.schema.json new file mode 100644 index 0000000..a0d8189 --- /dev/null +++ b/schemas/bambulab/v2/common/online.schema.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/online.schema.json", + "title": "Online", + "description": "Printer online/offline status", + "type": "object", + "properties": { + "ahb": { + "type": "boolean" + }, + "rfid": { + "type": "boolean" + }, + "version": { + "type": "integer" + } + } +} diff --git a/schemas/bambulab/v2/common/upgrade_state.schema.json b/schemas/bambulab/v2/common/upgrade_state.schema.json new file mode 100644 index 0000000..131b318 --- /dev/null +++ b/schemas/bambulab/v2/common/upgrade_state.schema.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/upgrade_state.schema.json", + "title": "UpgradeState", + "type": "object", + "properties": { + "ahb_new_version_number": { "type": "string" }, + "ams_new_version_number": { "type": "string" }, + "consistency_request": { "type": "boolean" }, + "dis_state": { "type": "integer" }, + "err_code": { "type": "integer" }, + "ext_new_version_number": { "type": "string" }, + "force_upgrade": { "type": "boolean" }, + "idx": { "type": "integer" }, + "idx2": { "type": "integer" }, + "lower_limit": { "type": "string", "pattern": "..\\...\\...\\..." }, + "message": { "type": "string" }, + "module": { "type": "string" }, + "new_version_state": { "type": "integer" }, + "ota_new_version_number": { "type": "string" }, + "progress": { "type": "string" }, + "sequence_id": { "type": "integer" }, + "sn": { "type": "string" }, + "status": { "type": "string", "enum": ["idle", "IDLE"]}, + "upgrade_fail_list": { "type": "array", "items": { "type": "string" } }, + "upgrade_type": { "type": "string" } + } +} diff --git a/schemas/bambulab/v2/common/upload.schema.json b/schemas/bambulab/v2/common/upload.schema.json new file mode 100644 index 0000000..61e18a6 --- /dev/null +++ b/schemas/bambulab/v2/common/upload.schema.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/upload.schema.json", + "title": "Upload", + "description": "File upload progress", + "type": "object", + "properties": { + "file_size": { + "type": "integer" + }, + "finish_size": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "oss_url": { + "type": "string" + }, + "progress": { + "type": "integer" + }, + "speed": { + "type": "integer" + }, + "status": { + "type": "string", + "enum": [ + "idle", + "IDLE" + ] + }, + "task_id": { + "type": "string" + }, + "time_remaining": { + "type": "integer" + }, + "trouble_id": { + "type": "string" + } + } +} diff --git a/schemas/bambulab/v2/common/vt_tray.schema.json b/schemas/bambulab/v2/common/vt_tray.schema.json new file mode 100644 index 0000000..bcfe310 --- /dev/null +++ b/schemas/bambulab/v2/common/vt_tray.schema.json @@ -0,0 +1,39 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/vt_tray.schema.json", + "title": "VtTray", + "description": "This schema is used as Virtual Tray (external spool) or as a base for AmsTray. When empty, all values are zeroed and `tray_color` field is set to \"FFFFFF00\".", + "type": "object", + "properties": { + "bed_temp": { "type": "string" }, + "bed_temp_type": { "type": "string" }, + "cali_idx": { "type": "number" }, + "cols": { "type": "array", "items": { "type": "string" } }, + "ctype": { "type": "integer" }, + "drying_temp": { "type": "string" }, + "drying_time": { "type": "string" }, + "id": { "type": "string" }, + "nozzle_temp_min": { "type": "string" }, + "nozzle_temp_max": { "type": "string" }, + "remain": { "type": "integer", "minimum": 0 }, + "tag_uid": { "type": "string" }, + "total_len": { "type": "integer" }, + "tray_color": { "type": "string" }, + "tray_diameter": { "type": "string" }, + "tray_id_name": { "type": "string" }, + "tray_info_idx": { "type": "string" }, + "tray_sub_brands": { "type": "string" }, + "tray_type": { "type": "string" }, + "tray_uuid": { "type": "string" }, + "tray_weight": { "type": "string" }, + "xcam_info": { "type": "string" } + }, + "required": [ + "bed_temp", "bed_temp_type", "cali_idx", "cols", + "ctype", "drying_temp", "drying_time", "id", + "nozzle_temp_max", "nozzle_temp_min", "remain", "tag_uid", + "total_len", "tray_color", "tray_diameter", "tray_id_name", + "tray_info_idx", "tray_sub_brands", "tray_type", "tray_uuid", + "tray_weight", "xcam_info" + ] +} diff --git a/schemas/bambulab/v2/common/xcam.schema.json b/schemas/bambulab/v2/common/xcam.schema.json new file mode 100644 index 0000000..0b13ee7 --- /dev/null +++ b/schemas/bambulab/v2/common/xcam.schema.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/xcam.schema.json", + "title": "XcamSettings", + "description": "Camera-based AI print monitoring settings (spaghetti detection, first-layer inspection, etc.).", + "type": "object", + "properties": { + "allow_skip_parts": { "type": "boolean" }, + "buildplate_marker_detector": { "type": "boolean" }, + "cfg": { "type": "integer" }, + "first_layer_inspector": { "type": "boolean" }, + "halt_print_sensitivity": { "type": "string" }, + "print_halt": { "type": "boolean" }, + "printing_monitor": { "type": "boolean" }, + "spaghetti_detector": { "type": "boolean" } + }, + "required": [ + "allow_skip_parts", "buildplate_marker_detector", "first_layer_inspector", "cfg", + "halt_print_sensitivity", "print_halt", "printing_monitor", "spaghetti_detector" + ] +} diff --git a/schemas/bambulab/v2/report/print/_2d_report.schema.json b/schemas/bambulab/v2/report/print/_2d_report.schema.json new file mode 100644 index 0000000..f2e56b5 --- /dev/null +++ b/schemas/bambulab/v2/report/print/_2d_report.schema.json @@ -0,0 +1,72 @@ +{ + "$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/_2d_report.schema.json", + "title": "2DReport", + "description": "Details about current 2D job", + "type": "object", + "properties": { + "bs": { + "type": "object", + "properties": { + "bi": { + "type": "array", + "items": { + "type": "object", + "properties": { + "clock_in": { "type": "boolean" }, + "est_time": { "type": "integer" }, + "idx": { "type": "integer" }, + "print_then": { "type": "boolean" }, + "proc_list": { "type": "array", "items": { "type": "object" } }, + "step_type": { "type": "integer" }, + "tool_info": { + "type": "object", + "properties": { + "color": { "type": "string" }, + "diameter": { "type": "number", "minimum": 0 }, + "id": { "type": "integer" } + }, + "required": ["color", "diameter", "id"] + }, + "type": { "type": "integer" } + }, + "required": [ + "clock_in", "est_time", "idx", "print_then", + "proc_list", "step_type", "tool_info", "type" + ] + } + }, + "total_time": { "type": "integer" } + }, + "required": ["bi", "total_time"] + }, + "cond": { "type": "integer" }, + "cur_stage": { + "type": "object", + "properties": { + "clock_in_time": { "type": "integer" }, + "idx": { "type": "integer" }, + "left_time": { "type": "integer" }, + "process": { "type": "integer" }, + "state": { "type": "integer" } + }, + "required": ["clock_in_time", "idx", "left_time", "process", "state"] + }, + "first_confirm": { "type": "boolean" }, + "makeable": { "type": "boolean" }, + "material": { + "type": "object", + "properties": { + "cur_id_list": { "type": "array", "items": { "type": "object" } }, + "state": { "type": "integer" }, + "tar_id": { "type": "string" }, + "tar_name": { "type": "string" } + }, + "required": ["cur_id_list", "state", "tar_id", "tar_name"] + }, + "pm": { "type": "integer" } + }, + "required": [ + "layer_num", "print_cali_option", "total_layer_num" + ] +} diff --git a/schemas/bambulab/v2/report/print/_3d_report.schema.json b/schemas/bambulab/v2/report/print/_3d_report.schema.json new file mode 100644 index 0000000..074a24f --- /dev/null +++ b/schemas/bambulab/v2/report/print/_3d_report.schema.json @@ -0,0 +1,15 @@ +{ + "$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/_3d_report.schema.json", + "title": "3DReport", + "description": "Details about current print status", + "type": "object", + "properties": { + "layer_num": { "type": "integer" }, + "print_cali_option": { "type": "integer" }, + "total_layer_num": { "type": "integer" } + }, + "required": [ + "layer_num", "print_cali_option", "total_layer_num" + ] +} diff --git a/schemas/bambulab/v2/report/print/_nozzle_type.schema.json b/schemas/bambulab/v2/report/print/_nozzle_type.schema.json new file mode 100644 index 0000000..f770a8c --- /dev/null +++ b/schemas/bambulab/v2/report/print/_nozzle_type.schema.json @@ -0,0 +1,8 @@ +{ + "$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/_nozzle_type.schema.json", + "title": "PrintReportNozzleType", + "description": "Schema for nozzle type, used only by PrintReport schema. HS00 - stainless steel, HS01 - hardened steel, HS05 - tungsten carbide, HH01 - high-flow hardened steel, HH05 - high-flow tungsten carbide. NOTE: format is possibly as follows: [H,X][H,S]0[0,1,5] - first character for printer series (H - H-series, possibly A-series too; X - X-series, namely X1C. Or maybe H is for hot-swap?); second character is for flow rate (S - standard; H - high-flow); third character is left as 0; fourth character is for nozzle material (0 - stainless steel; 1 - hardened steel; 5 - tungsten carbide)", + "type": "string", + "pattern": "^([HX][HS]0[015])-(0\\.[2468])$" +} diff --git a/schemas/bambulab/v2/report/print/print.schema.json b/schemas/bambulab/v2/report/print/print.schema.json new file mode 100644 index 0000000..0ee158e --- /dev/null +++ b/schemas/bambulab/v2/report/print/print.schema.json @@ -0,0 +1,134 @@ +{ + "$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/print.schema.json", + "title": "PrintReport", + "description": "The ongoing print-state push (root key \"print\") - NOT a direct reply to the pushall request (that goes to \"pushing\", see request/pushing/pushall.schema.json). Sending pushall makes the printer start/refresh this stream; it isn't itself request/response, which is also why this is its own category folder rather than sitting under pushing/ - a category here is 'what root key does this arrive under', not 'what triggered it'.", + "allOf": [ + { "$ref": "../../../common/envelope.schema.json" }, + { + "type": "object", + "properties": { + "command": { "const": "push_status" }, + + "2D": { "$ref": "./_2d_report.schema.json" }, + "3D": { "$ref": "./_3d_report.schema.json" }, + "ams": { "$ref": "../../common/ams.schema.json" }, + "hms": { "$ref": "../../common/hms.schema.json" }, + "lights_report": { "$ref": "../../common/lights_report.schema.json" }, + "upgrade_state": { "$ref": "../../common/upgrade_state.schema.json" }, + "info": { "$ref": "../../common/info.schema.json" }, + "ipcam": { "$ref": "../../common/ipcam.schema.json" }, + "online": { "$ref": "../../common/online.schema.json" }, + "net": { "$ref": "../../common/net.schema.json" }, + "xcam": { "$ref": "../../common/xcam.schema.json" }, + "care": { "$ref": "../../common/care.schema.json" }, + "upload": { "$ref": "../../common/upload.schema.json" }, + "job": { "$ref": "../../common/job/job.schema.json" }, + "device": { "$ref": "../../common/device/device.schema.json" }, + "vir_slot": { + "type": "array", + "items": { + "$ref": "../../common/vt_tray.schema.json" + } + }, + + "ams_status": { "type": "integer" }, + "ams_rfid_status": { "type": "integer" }, + "ap_err": { "type": "integer" }, + "aux": { "type": "string" }, + "aux_part_fan": { "type": "boolean" }, + "batch_id": { "type": "integer" }, + + "cali_version": { "type": "integer" }, + "canvas_id": { "type": "integer" }, + "cfg": { "type": "string" }, + "design_id": { "type": "string" }, + + "nozzle_diameter": { "$ref": "../../common/nozzle_diameter.schema.json" }, + "nozzle_type": { "$ref": "./_nozzle_type.schema.json" }, + "nozzle_temper": { "type": "number" }, + "nozzle_target_temper": { "type": "number" }, + "bed_temper": { "type": "number" }, + "bed_target_temper": { "type": "number" }, + "fan_gear": { "type": "integer" }, + "heatbreak_fan_speed": { "type": "string" }, + "cooling_fan_speed": { "type": "string" }, + "big_fan1_speed": { "type": "string" }, + "big_fan2_speed": { "type": "string" }, + + "err": { "type": "string" }, + "fail_reason": { "type": "string" }, + "file": { "type": "string" }, + "gcode_file": { "type": "string" }, + "gcode_state": { "type": "string", "enum": [ "idle", "IDLE", "finish", "FINISH" ] }, + "gcode_file_prepare_percent": { "type": "string" }, + "force_upgrade": { "type": "boolean" }, + + "fun": { "type": "string" }, + "fun2": { "type": "string" }, + + "home_flag": { "type": "integer" }, + "hw_switch_state": { "type": "integer" }, + + "job_attr": { "type": "integer" }, + "job_id": { "type": "string" }, + "lan_task_id": { "type": "string" }, + "layer_num": { "type": "integer" }, + + "mc_action": { "type": "integer" }, + "mc_err": { "type": "integer" }, + "mc_percent": { "type": "integer" }, + "mc_print_error_code": { "type": "string" }, + "mc_print_stage": { "type": "string" }, + "mc_print_sub_stage": { "type": "integer" }, + "mc_remaining_time": { "type": "integer" }, + "mc_stage": { "type": "integer" }, + + "model_id": { "type": "string" }, + "msg": { "type": "integer" }, + + "percent": { "type": "integer" }, + "plate_cnt": { "type": "integer" }, + "plate_id": { "type": "integer" }, + "plate_idx": { "type": "integer" }, + "prepare_per": { "type": "integer" }, + + "print_error": { "type": "integer" }, + "print_gcode_action": { "type": "integer" }, + "print_real_action": { "type": "integer" }, + "print_type": { "type": "string", "enum": [ "", "idle", "IDLE" ] }, + "profile_id": { "type": "string" }, + "project_id": { "type": "string" }, + + "queue": { "type": "integer" }, + "queue_est": { "type": "integer" }, + "queue_number": { "type": "integer" }, + "queue_sts": { "type": "integer" }, + "queue_total": { "type": "integer" }, + + "remain_time": { "type": "integer" }, + "s_obj": { "type": "array", "items": {} }, + "sdcard": { "type": "boolean" }, + "sequence_id": { "type": "string" }, + + "spd_lvl": { "type": "integer", "minimum": 1, "maximum": 4 }, + "spd_mag": { "type": "integer", "minimum": 0, "maximum": 100 }, + "stat": { "type": "string" }, + "state": { "type": "integer" }, + + "stg": { "type": "array", "items": { "type": "number" } }, + "stg_cur": { "type": "integer" }, + "subtask_id": { "type": "string" }, + "subtask_name": { "type": "string" }, + "task_id": { "type": "string" }, + "total_layer_num": { "type": "integer", "minimum": 0 }, + + "ver": { "type": "string" }, + "wifi_signal": { "type": "string", "pattern": "^-([0-9]{1,2}|100)dBm$" }, + "xcam_status": { "type": "string" }, + + "mapping": { "type": "array", "items": { "type": "number", "minimum": 0 } } + } + } + ] +}