feat: most of the schemas done

This commit is contained in:
2026-09-02 18:05:49 +00:00
parent 0753703351
commit 6381c27c48
62 changed files with 1101 additions and 46 deletions
@@ -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/common/color_hex.schema.json",
"title": "CommonColorHexSchema",
"description": "Schema for hex color. Technically alpha (last two chars) should be always FF, but...",
"type": "string",
"pattern": "^[0-9a-fA-F]{8}$"
}
@@ -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/common/file_url.schema.json",
"title": "CommonFileUrlSchema",
"type": "string",
"format": "uri",
"pattern": "^(?:file|ftp):\/\/"
}
@@ -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/common/http_url.schema.json",
"title": "CommonHttpUrlSchema",
"type": "string",
"format": "uri",
"pattern": "^https?:\/\/"
}
+4 -3
View File
@@ -2,7 +2,8 @@
"$schema": "https://json-schema.org/draft/2020-12/schema", "$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/common/url.schema.json", "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/common/url.schema.json",
"title": "CommonUrlSchema", "title": "CommonUrlSchema",
"type": "string", "oneOf": [
"format": "uri", { "$ref": "./http_url.schema.json" },
"pattern": "^https?://" { "$ref": "./file_url.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/v1/common/ams/ams_mapping.schema.json",
"title": "AmsMapping",
"description": "AMS Mapping is a God forsaken hell. And it's CRUCIAL for multi-color. LOL. The ams_mapping array uses a reverse indexing system where:\n- Array positions represent color indices in your print file (starting from 0)\n- Array values represent AMS slot numbers (0-3 for typical 4-slot AMS)\n- -1 indicates unused color slots. ALWAYS - and I say ALWAYS - pad the array so it's length is equal to the sum of all AMS trays (slots) + virtual trays (external spools), ie. a P1P with one AMS would have `ams_mapping` array of length 5 - but H2C with 2x AMS 2 Pro and 1x AMS HT would have `ams_mapping` array of length 11 (printers with two nozzles in the toolhead have two external spools)",
"type": "array",
"items": { "type": "integer", "minimum": -1, "minItems": 1 }
}
@@ -0,0 +1,10 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/common/bed_type.schema.json",
"title": "BedType",
"description": "Common schema for bed type. TODO: Add more bed types",
"type": "string",
"enum": [
"auto"
]
}
@@ -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/v1/common/led_node.schema.json",
"title": "LedNode",
"type": "string",
"enum": [
"chamber_light",
"work_light",
"chamber_light2"
]
}
@@ -13,17 +13,12 @@
"on", "on",
"off", "off",
"ON", "ON",
"OFF" "OFF",
"flashing",
"FLASHING"
] ]
}, },
"node": { "node": { "$ref": "./led_node.schema.json" }
"type": "string",
"enum": [
"chamber_light",
"work_light",
"chamber_light2"
]
}
} }
} }
} }
@@ -11,7 +11,7 @@
"tray_info_idx": { "type": "string" }, "tray_info_idx": { "type": "string" },
"tray_type": { "type": "string" }, "tray_type": { "type": "string" },
"tray_sub_brands": { "type": "string" }, "tray_sub_brands": { "type": "string" },
"tray_color": { "type": "string" }, "tray_color": { "$ref": "../../common/color_hex.schema.json" },
"tray_weight": { "type": "string" }, "tray_weight": { "type": "string" },
"tray_diameter": { "type": "string" }, "tray_diameter": { "type": "string" },
"tray_temp": { "type": "string" }, "tray_temp": { "type": "string" },
+1 -1
View File
@@ -14,7 +14,7 @@
}, },
"print": { "print": {
"oneOf": [ "oneOf": [
{ "$ref": "report/print/print.schema.json" } { "$ref": "report/print/push_status.schema.json" }
] ]
} }
}, },
@@ -0,0 +1,31 @@
{
"$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/ams_change_filament.schema.json",
"title": "AmsChangeFilamentReport",
"description": "Perform filament change using AMS",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_change_filament" },
"target": {
"type": "integer",
"description": "Filament tray ID",
"minimum": 0
},
"curr_temp": {
"type": "integer",
"description": "Old print temperature",
"minimum": 0
},
"tar_temp": {
"type": "integer",
"description": "New print temperature",
"minimum": 0
}
},
"required": ["target", "curr_temp", "tar_temp"]
}
]
}
@@ -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/v1/report/print/ams_control.schema.json",
"title": "AmsControlReport",
"description": "Control AMS Unit",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_control" },
"param": { "type": "string", "enum": ["resume", "reset", "pause"] }
},
"required": ["param"]
}
]
}
@@ -0,0 +1,26 @@
{
"$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/ams_filament_setting.schema.json",
"title": "AmsFilamentSettingReport",
"description": "Change AMS settings of the given unit",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_filament_setting" },
"ams_id": { "type": "integer", "minimum": 0 },
"tray_id": { "type": "integer", "minimum": 0 },
"tray_info_idx": { "type": "string" },
"tray_color": { "$ref": "../../../common/color_hex.schema.json" },
"nozzle_temp_min": { "type": "integer", "minimum": 0 },
"nozzle_temp_max": { "type": "integer", "minimum": 0 },
"tray_type": { "type": "string" }
},
"required": [
"ams_id", "tray_id", "tray_info_idx", "tray_color",
"nozzle_temp_min", "nozzle_temp_max", "tray_type"
]
}
]
}
@@ -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/v1/report/print/ams_get_rfid.schema.json",
"title": "AmsGetRfidReport",
"description": "Read RFID info of filament",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_get_rfid" },
"ams_id": { "type": "integer", "minimum": 0 },
"ams_slot": { "type": "integer", "minimum": 0 }
},
"required": ["ams_id", "ams_slot"]
}
]
}
@@ -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/v1/report/print/ams_user_setting.schema.json",
"title": "AmsUserSettingReport",
"description": "Change AMS settings of the given unit",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_user_setting" },
"ams_id": { "type": "integer", "minimum": 0 },
"startup_read_option": { "type": "boolean" },
"tray_read_option": { "type": "boolean" }
},
"required": ["ams_id", "startup_read_option", "tray_read_option"]
}
]
}
@@ -0,0 +1,16 @@
{
"$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/print_option.schema.json",
"title": "PrintOptionReport",
"description": "Modifies printer's print mode.",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "print_option" },
"auto_recovery": { "type": "boolean" }
}
}
]
}
@@ -0,0 +1,58 @@
{
"$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/project_file.schema.json",
"title": "PrintProjectFileReport",
"description": "Print project file",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "project_file" },
"param": { "type": "string" },
"project_id": { "type": "string", "description": "\"0\" for local prints" },
"profile_id": { "type": "string", "description": "\"0\" for local prints" },
"task_id": { "type": "string", "description": "\"0\" for local prints" },
"subtask_id": { "type": "string", "description": "\"0\" for local prints" },
"subtask_name": { "type": "string", "description": "Empty string for local prints" },
"file": { "type": "string", "description": "File name to print - may be empty string if `url` field already contains the file name" },
"url": { "$ref": "../../../common/file_url.schema.json" },
"md5": { "type": "string", "description": "MD5 hash of the project file. Can be empty" },
"timelapse": { "type": "boolean" },
"bed_type": { "$ref": "../../common/bed_type.schema.json" },
"bed_levelling": { "type": "boolean" },
"flow_cali": { "type": "boolean" },
"vibration_cali": { "type": "boolean" },
"layer_inspect": { "type": "boolean" },
"ams_mapping": {
"oneOf": [
{ "$ref": "../../common/ams/ams_mapping.schema.json" },
{ "type": "string" }
]
},
"use_ams": { "type": "boolean" }
},
"required": ["param"],
"anyOf": [{ "required": ["file"] }, { "required": ["url"] }]
},
{
"oneOf": [
{
"type": "object",
"properties": {
"ams_mapping": { "$ref": "../../common/ams/ams_mapping.schema.json" },
"use_ams": true
},
"required": ["ams_mapping", "use_ams"]
},
{
"type": "object",
"properties": {
"ams_mapping": { "type": "string", "const": "" },
"use_ams": false
}
}
]
}
]
}
@@ -1,7 +1,7 @@
{ {
"$schema": "https://json-schema.org/draft/2020-12/schema", "$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/print.schema.json", "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/report/print/push_status.schema.json",
"title": "PrintReport", "title": "PushStatusReport",
"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'.", "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": [ "allOf": [
{ "$ref": "../../../common/envelope.schema.json" }, { "$ref": "../../../common/envelope.schema.json" },
@@ -35,7 +35,7 @@
"big_fan1_speed": { "type": "string" }, "big_fan1_speed": { "type": "string" },
"big_fan2_speed": { "type": "string" }, "big_fan2_speed": { "type": "string" },
"s_obj": { "type": "array", "items": {} }, "s_obj": { "type": "array", "items": { "type": "number" } },
"filam_bak": { "type": "array", "items": {} }, "filam_bak": { "type": "array", "items": {} },
"stg": { "type": "array", "items": { "type": "number" } }, "stg": { "type": "array", "items": { "type": "number" } },
@@ -1,7 +1,7 @@
{ {
"$schema": "https://json-schema.org/draft/2020-12/schema", "$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/request/print/stop.schema.json", "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/report/print/stop.schema.json",
"title": "StopPrintRequest", "title": "StopPrintReport",
"allOf": [ "allOf": [
{ "$ref": "../../../common/envelope.schema.json" }, { "$ref": "../../../common/envelope.schema.json" },
{ {
@@ -0,0 +1,50 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/report/system/ledctrl.schema.json",
"title": "LedctrlReport",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ledctrl" },
"led_node": { "$ref": "../../common/led_node.schema.json" }
},
"required": ["led_node"]
},
{
"oneOf": [
{
"type": "object",
"properties": {
"led_mode": {
"type": "string",
"enum": ["on", "off", "ON", "OFF"]
}
},
"required": ["led_mode"]
},
{
"type": "object",
"properties": {
"led_mode": {
"type": "string",
"enum": ["flashing", "FLASHING"]
},
"led_on_time": { "type": "integer", "minimum": 1 },
"led_off_time": { "type": "integer", "minimum": 1 },
"loop_times": { "type": "integer", "minimum": 1 },
"interval_time": { "type": "integer", "minimum": 1 }
},
"required": [
"led_mode",
"led_on_time",
"led_off_time",
"loop_times",
"interval_time"
]
}
]
}
]
}
@@ -0,0 +1,31 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/request/print/ams_change_filament.schema.json",
"title": "AmsChangeFilamentRequest",
"description": "Perform filament change using AMS",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_change_filament" },
"target": {
"type": "integer",
"description": "Filament tray ID",
"minimum": 0
},
"curr_temp": {
"type": "integer",
"description": "Old print temperature",
"minimum": 0
},
"tar_temp": {
"type": "integer",
"description": "New print temperature",
"minimum": 0
}
},
"required": ["target", "curr_temp", "tar_temp"]
}
]
}
@@ -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/v1/request/print/ams_control.schema.json",
"title": "AmsControlRequest",
"description": "Control AMS Unit",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_control" },
"param": { "type": "string", "enum": ["resume", "reset", "pause"] }
},
"required": ["param"]
}
]
}
@@ -0,0 +1,26 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/request/print/ams_filament_setting.schema.json",
"title": "AmsFilamentSettingRequest",
"description": "Change AMS settings of the given unit",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_filament_setting" },
"ams_id": { "type": "integer", "minimum": 0 },
"tray_id": { "type": "integer", "minimum": 0 },
"tray_info_idx": { "type": "string" },
"tray_color": { "$ref": "../../../common/color_hex.schema.json" },
"nozzle_temp_min": { "type": "integer", "minimum": 0 },
"nozzle_temp_max": { "type": "integer", "minimum": 0 },
"tray_type": { "type": "string" }
},
"required": [
"ams_id", "tray_id", "tray_info_idx", "tray_color",
"nozzle_temp_min", "nozzle_temp_max", "tray_type"
]
}
]
}
@@ -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/v1/request/print/ams_get_rfid.schema.json",
"title": "AmsGetRfidRequest",
"description": "Read RFID info of filament",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_get_rfid" },
"ams_id": { "type": "integer", "minimum": 0 },
"ams_slot": { "type": "integer", "minimum": 0 }
},
"required": ["ams_id", "ams_slot"]
}
]
}
@@ -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/v1/request/print/ams_user_setting.schema.json",
"title": "AmsUserSettingRequest",
"description": "Change AMS settings of the given unit",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_user_setting" },
"ams_id": { "type": "integer", "minimum": 0 },
"startup_read_option": { "type": "boolean" },
"tray_read_option": { "type": "boolean" }
},
"required": ["ams_id", "startup_read_option", "tray_read_option"]
}
]
}
@@ -0,0 +1,16 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/request/print/print_option.schema.json",
"title": "PrintOptionRequest",
"description": "Modifies printer's print mode.",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "print_option" },
"auto_recovery": { "type": "boolean" }
}
}
]
}
@@ -0,0 +1,58 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/request/print/project_file.schema.json",
"title": "PrintProjectFileRequest",
"description": "Print project file",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "project_file" },
"param": { "type": "string" },
"project_id": { "type": "string", "description": "\"0\" for local prints" },
"profile_id": { "type": "string", "description": "\"0\" for local prints" },
"task_id": { "type": "string", "description": "\"0\" for local prints" },
"subtask_id": { "type": "string", "description": "\"0\" for local prints" },
"subtask_name": { "type": "string", "description": "Empty string for local prints" },
"file": { "type": "string", "description": "File name to print - may be empty string if `url` field already contains the file name" },
"url": { "$ref": "../../../common/file_url.schema.json" },
"md5": { "type": "string", "description": "MD5 hash of the project file. Can be empty" },
"timelapse": { "type": "boolean" },
"bed_type": { "$ref": "../../common/bed_type.schema.json" },
"bed_levelling": { "type": "boolean" },
"flow_cali": { "type": "boolean" },
"vibration_cali": { "type": "boolean" },
"layer_inspect": { "type": "boolean" },
"ams_mapping": {
"oneOf": [
{ "$ref": "../../common/ams/ams_mapping.schema.json" },
{ "type": "string" }
]
},
"use_ams": { "type": "boolean" }
},
"required": ["param"],
"anyOf": [{ "required": ["file"] }, { "required": ["url"] }]
},
{
"oneOf": [
{
"type": "object",
"properties": {
"ams_mapping": { "$ref": "../../common/ams/ams_mapping.schema.json" },
"use_ams": true
},
"required": ["ams_mapping", "use_ams"]
},
{
"type": "object",
"properties": {
"ams_mapping": { "type": "string", "const": "" },
"use_ams": false
}
}
]
}
]
}
@@ -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/v1/request/print/skip_objects.schema.json",
"title": "SkipObjectsRequest",
"description": "Skip objects based on IDs in slice_info.config. Updates `pushing.pushall` -> `print.push_status` - field `s_obj` with IDs of skipped objects.",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "skip_objects" },
"obj_list": {
"type": "array",
"items": { "type": "integer", "minimum": 0 },
"minItems": 1
}
},
"required": ["param"]
}
]
}
@@ -1,7 +1,7 @@
{ {
"$schema": "https://json-schema.org/draft/2020-12/schema", "$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/stop.schema.json", "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/request/print/stop.schema.json",
"title": "StopPrintReport", "title": "StopPrintRequest",
"allOf": [ "allOf": [
{ "$ref": "../../../common/envelope.schema.json" }, { "$ref": "../../../common/envelope.schema.json" },
{ {
@@ -0,0 +1,50 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/request/system/ledctrl.schema.json",
"title": "LedctrlRequest",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ledctrl" },
"led_node": { "$ref": "../../common/led_node.schema.json" }
},
"required": ["led_node"]
},
{
"oneOf": [
{
"type": "object",
"properties": {
"led_mode": {
"type": "string",
"enum": ["on", "off", "ON", "OFF"]
}
},
"required": ["led_mode"]
},
{
"type": "object",
"properties": {
"led_mode": {
"type": "string",
"enum": ["flashing", "FLASHING"]
},
"led_on_time": { "type": "integer", "minimum": 1 },
"led_off_time": { "type": "integer", "minimum": 1 },
"loop_times": { "type": "integer", "minimum": 1 },
"interval_time": { "type": "integer", "minimum": 1 }
},
"required": [
"led_mode",
"led_on_time",
"led_off_time",
"loop_times",
"interval_time"
]
}
]
}
]
}
@@ -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/common/ams/ams_mapping.schema.json",
"title": "AmsMapping",
"description": "AMS Mapping is a God forsaken hell. And it's CRUCIAL for multi-color. LOL. The ams_mapping array uses a reverse indexing system where:\n- Array positions represent color indices in your print file (starting from 0)\n- Array values represent AMS slot numbers (0-3 for typical 4-slot AMS)\n- -1 indicates unused color slots. ALWAYS - and I say ALWAYS - pad the array so it's length is equal to the sum of all AMS trays (slots) + virtual trays (external spools), ie. a P1P with one AMS would have `ams_mapping` array of length 5 - but H2C with 2x AMS 2 Pro and 1x AMS HT would have `ams_mapping` array of length 11 (printers with two nozzles in the toolhead have two external spools)",
"type": "array",
"items": { "type": "integer", "minimum": -1, "minItems": 1 }
}
@@ -0,0 +1,10 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/common/bed_type.schema.json",
"title": "BedType",
"description": "Common schema for bed type. TODO: Add more bed types",
"type": "string",
"enum": [
"auto"
]
}
@@ -10,7 +10,7 @@
}, },
"color": { "color": {
"type": "array", "type": "array",
"items": { "type": "string" } "items": { "$ref": "../../../common/color_hex.schema.json" }
}, },
"diameter": { "diameter": {
"type": "array", "type": "array",
@@ -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/led_node.schema.json",
"title": "LedNode",
"type": "string",
"enum": [
"chamber_light",
"work_light",
"chamber_light2"
]
}
@@ -13,17 +13,12 @@
"on", "on",
"off", "off",
"ON", "ON",
"OFF" "OFF",
"flashing",
"FLASHING"
] ]
}, },
"node": { "node": { "$ref": "./led_node.schema.json" }
"type": "string",
"enum": [
"chamber_light",
"work_light",
"chamber_light2"
]
}
} }
} }
} }
@@ -18,7 +18,7 @@
"remain": { "type": "integer", "minimum": 0 }, "remain": { "type": "integer", "minimum": 0 },
"tag_uid": { "type": "string" }, "tag_uid": { "type": "string" },
"total_len": { "type": "integer" }, "total_len": { "type": "integer" },
"tray_color": { "type": "string" }, "tray_color": { "$ref": "../../common/color_hex.schema.json" },
"tray_diameter": { "type": "string" }, "tray_diameter": { "type": "string" },
"tray_id_name": { "type": "string" }, "tray_id_name": { "type": "string" },
"tray_info_idx": { "type": "string" }, "tray_info_idx": { "type": "string" },
+1 -1
View File
@@ -14,7 +14,7 @@
}, },
"print": { "print": {
"oneOf": [ "oneOf": [
{ "$ref": "report/print/print.schema.json" } { "$ref": "report/print/push_status.schema.json" }
] ]
} }
}, },
@@ -22,7 +22,7 @@
"tool_info": { "tool_info": {
"type": "object", "type": "object",
"properties": { "properties": {
"color": { "type": "string" }, "color": { "$ref": "../../../common/color_hex.schema.json" },
"diameter": { "type": "number", "minimum": 0 }, "diameter": { "type": "number", "minimum": 0 },
"id": { "type": "integer" } "id": { "type": "integer" }
}, },
@@ -0,0 +1,31 @@
{
"$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/ams_change_filament.schema.json",
"title": "AmsChangeFilamentReport",
"description": "Perform filament change using AMS",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_change_filament" },
"target": {
"type": "integer",
"description": "Filament tray ID",
"minimum": 0
},
"curr_temp": {
"type": "integer",
"description": "Old print temperature",
"minimum": 0
},
"tar_temp": {
"type": "integer",
"description": "New print temperature",
"minimum": 0
}
},
"required": ["target", "curr_temp", "tar_temp"]
}
]
}
@@ -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/report/print/ams_control.schema.json",
"title": "AmsControlReport",
"description": "Control AMS Unit",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_control" },
"param": { "type": "string", "enum": ["resume", "reset", "pause"] }
},
"required": ["param"]
}
]
}
@@ -0,0 +1,26 @@
{
"$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/ams_filament_setting.schema.json",
"title": "AmsFilamentSettingReport",
"description": "Change AMS settings of the given unit",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_filament_setting" },
"ams_id": { "type": "integer", "minimum": 0 },
"tray_id": { "type": "integer", "minimum": 0 },
"tray_info_idx": { "type": "string" },
"tray_color": { "$ref": "../../../common/color_hex.schema.json" },
"nozzle_temp_min": { "type": "integer", "minimum": 0 },
"nozzle_temp_max": { "type": "integer", "minimum": 0 },
"tray_type": { "type": "string" }
},
"required": [
"ams_id", "tray_id", "tray_info_idx", "tray_color",
"nozzle_temp_min", "nozzle_temp_max", "tray_type"
]
}
]
}
@@ -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/report/print/ams_get_rfid.schema.json",
"title": "AmsGetRfidReport",
"description": "Read RFID info of filament",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_get_rfid" },
"ams_id": { "type": "integer", "minimum": 0 },
"ams_slot": { "type": "integer", "minimum": 0 }
},
"required": ["ams_id", "ams_slot"]
}
]
}
@@ -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/report/print/ams_user_setting.schema.json",
"title": "AmsUserSettingReport",
"description": "Change AMS settings of the given unit",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_user_setting" },
"ams_id": { "type": "integer", "minimum": 0 },
"startup_read_option": { "type": "boolean" },
"tray_read_option": { "type": "boolean" }
},
"required": ["ams_id", "startup_read_option", "tray_read_option"]
}
]
}
@@ -1,6 +1,6 @@
{ {
"$schema": "https://json-schema.org/draft/2020-12/schema", "$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/pause.schema.json", "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/report/print/pause.schema.json",
"title": "PausePrintReport", "title": "PausePrintReport",
"allOf": [ "allOf": [
{ "$ref": "../../../common/envelope.schema.json" }, { "$ref": "../../../common/envelope.schema.json" },
@@ -0,0 +1,16 @@
{
"$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_option.schema.json",
"title": "PrintOptionReport",
"description": "Modifies printer's print mode.",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "print_option" },
"auto_recovery": { "type": "boolean" }
}
}
]
}
@@ -0,0 +1,58 @@
{
"$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/project_file.schema.json",
"title": "PrintProjectFileReport",
"description": "Print project file",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "project_file" },
"param": { "type": "string" },
"project_id": { "type": "string", "description": "\"0\" for local prints" },
"profile_id": { "type": "string", "description": "\"0\" for local prints" },
"task_id": { "type": "string", "description": "\"0\" for local prints" },
"subtask_id": { "type": "string", "description": "\"0\" for local prints" },
"subtask_name": { "type": "string", "description": "Empty string for local prints" },
"file": { "type": "string", "description": "File name to print - may be empty string if `url` field already contains the file name" },
"url": { "$ref": "../../../common/file_url.schema.json" },
"md5": { "type": "string", "description": "MD5 hash of the project file. Can be empty" },
"timelapse": { "type": "boolean" },
"bed_type": { "$ref": "../../common/bed_type.schema.json" },
"bed_levelling": { "type": "boolean" },
"flow_cali": { "type": "boolean" },
"vibration_cali": { "type": "boolean" },
"layer_inspect": { "type": "boolean" },
"ams_mapping": {
"oneOf": [
{ "$ref": "../../common/ams/ams_mapping.schema.json" },
{ "type": "string" }
]
},
"use_ams": { "type": "boolean" }
},
"required": ["param"],
"anyOf": [{ "required": ["file"] }, { "required": ["url"] }]
},
{
"oneOf": [
{
"type": "object",
"properties": {
"ams_mapping": { "$ref": "../../common/ams/ams_mapping.schema.json" },
"use_ams": true
},
"required": ["ams_mapping", "use_ams"]
},
{
"type": "object",
"properties": {
"ams_mapping": { "type": "string", "const": "" },
"use_ams": false
}
}
]
}
]
}
@@ -1,7 +1,7 @@
{ {
"$schema": "https://json-schema.org/draft/2020-12/schema", "$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", "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/report/print/push_status.schema.json",
"title": "PrintReport", "title": "PushStatusReport",
"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'.", "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": [ "allOf": [
{ "$ref": "../../../common/envelope.schema.json" }, { "$ref": "../../../common/envelope.schema.json" },
@@ -107,7 +107,7 @@
"queue_total": { "type": "integer" }, "queue_total": { "type": "integer" },
"remain_time": { "type": "integer" }, "remain_time": { "type": "integer" },
"s_obj": { "type": "array", "items": {} }, "s_obj": { "type": "array", "items": { "type": "number" } },
"sdcard": { "type": "boolean" }, "sdcard": { "type": "boolean" },
"sequence_id": { "type": "string" }, "sequence_id": { "type": "string" },
@@ -1,6 +1,6 @@
{ {
"$schema": "https://json-schema.org/draft/2020-12/schema", "$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/resume.schema.json", "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/report/print/resume.schema.json",
"title": "ResumePrintReport", "title": "ResumePrintReport",
"allOf": [ "allOf": [
{ "$ref": "../../../common/envelope.schema.json" }, { "$ref": "../../../common/envelope.schema.json" },
@@ -1,7 +1,7 @@
{ {
"$schema": "https://json-schema.org/draft/2020-12/schema", "$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/request/print/stop.schema.json", "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/report/print/stop.schema.json",
"title": "StopPrintRequest", "title": "StopPrintReport",
"allOf": [ "allOf": [
{ "$ref": "../../../common/envelope.schema.json" }, { "$ref": "../../../common/envelope.schema.json" },
{ {
@@ -0,0 +1,50 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/report/system/ledctrl.schema.json",
"title": "LedctrlReport",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ledctrl" },
"led_node": { "$ref": "../../common/led_node.schema.json" }
},
"required": ["led_node"]
},
{
"oneOf": [
{
"type": "object",
"properties": {
"led_mode": {
"type": "string",
"enum": ["on", "off", "ON", "OFF"]
}
},
"required": ["led_mode"]
},
{
"type": "object",
"properties": {
"led_mode": {
"type": "string",
"enum": ["flashing", "FLASHING"]
},
"led_on_time": { "type": "integer", "minimum": 1 },
"led_off_time": { "type": "integer", "minimum": 1 },
"loop_times": { "type": "integer", "minimum": 1 },
"interval_time": { "type": "integer", "minimum": 1 }
},
"required": [
"led_mode",
"led_on_time",
"led_off_time",
"loop_times",
"interval_time"
]
}
]
}
]
}
@@ -0,0 +1,31 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/request/print/ams_change_filament.schema.json",
"title": "AmsChangeFilamentRequest",
"description": "Perform filament change using AMS",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_change_filament" },
"target": {
"type": "integer",
"description": "Filament tray ID",
"minimum": 0
},
"curr_temp": {
"type": "integer",
"description": "Old print temperature",
"minimum": 0
},
"tar_temp": {
"type": "integer",
"description": "New print temperature",
"minimum": 0
}
},
"required": ["target", "curr_temp", "tar_temp"]
}
]
}
@@ -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/request/print/ams_control.schema.json",
"title": "AmsControlRequest",
"description": "Control AMS Unit",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_control" },
"param": { "type": "string", "enum": ["resume", "reset", "pause"] }
},
"required": ["param"]
}
]
}
@@ -0,0 +1,26 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/request/print/ams_filament_setting.schema.json",
"title": "AmsFilamentSettingRequest",
"description": "Change AMS settings of the given unit",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_filament_setting" },
"ams_id": { "type": "integer", "minimum": 0 },
"tray_id": { "type": "integer", "minimum": 0 },
"tray_info_idx": { "type": "string" },
"tray_color": { "$ref": "../../../common/color_hex.schema.json" },
"nozzle_temp_min": { "type": "integer", "minimum": 0 },
"nozzle_temp_max": { "type": "integer", "minimum": 0 },
"tray_type": { "type": "string" }
},
"required": [
"ams_id", "tray_id", "tray_info_idx", "tray_color",
"nozzle_temp_min", "nozzle_temp_max", "tray_type"
]
}
]
}
@@ -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/request/print/ams_get_rfid.schema.json",
"title": "AmsGetRfidRequest",
"description": "Read RFID info of filament",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_get_rfid" },
"ams_id": { "type": "integer", "minimum": 0 },
"ams_slot": { "type": "integer", "minimum": 0 }
},
"required": ["ams_id", "ams_slot"]
}
]
}
@@ -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/request/print/ams_user_setting.schema.json",
"title": "AmsUserSettingRequest",
"description": "Change AMS settings of the given unit",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ams_user_setting" },
"ams_id": { "type": "integer", "minimum": 0 },
"startup_read_option": { "type": "boolean" },
"tray_read_option": { "type": "boolean" }
},
"required": ["ams_id", "startup_read_option", "tray_read_option"]
}
]
}
@@ -1,7 +1,7 @@
{ {
"$schema": "https://json-schema.org/draft/2020-12/schema", "$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/pause.schema.json", "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/request/print/pause.schema.json",
"title": "PausePrintReport", "title": "PausePrintRequest",
"allOf": [ "allOf": [
{ "$ref": "../../../common/envelope.schema.json" }, { "$ref": "../../../common/envelope.schema.json" },
{ {
@@ -0,0 +1,16 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/request/print/print_option.schema.json",
"title": "PrintOptionRequest",
"description": "Modifies printer's print mode.",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "print_option" },
"auto_recovery": { "type": "boolean" }
}
}
]
}
@@ -0,0 +1,58 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/request/print/project_file.schema.json",
"title": "PrintProjectFileRequest",
"description": "Print project file",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "project_file" },
"param": { "type": "string" },
"project_id": { "type": "string", "description": "\"0\" for local prints" },
"profile_id": { "type": "string", "description": "\"0\" for local prints" },
"task_id": { "type": "string", "description": "\"0\" for local prints" },
"subtask_id": { "type": "string", "description": "\"0\" for local prints" },
"subtask_name": { "type": "string", "description": "Empty string for local prints" },
"file": { "type": "string", "description": "File name to print - may be empty string if `url` field already contains the file name" },
"url": { "$ref": "../../../common/file_url.schema.json" },
"md5": { "type": "string", "description": "MD5 hash of the project file. Can be empty" },
"timelapse": { "type": "boolean" },
"bed_type": { "$ref": "../../common/bed_type.schema.json" },
"bed_levelling": { "type": "boolean" },
"flow_cali": { "type": "boolean" },
"vibration_cali": { "type": "boolean" },
"layer_inspect": { "type": "boolean" },
"ams_mapping": {
"oneOf": [
{ "$ref": "../../common/ams/ams_mapping.schema.json" },
{ "type": "string" }
]
},
"use_ams": { "type": "boolean" }
},
"required": ["param"],
"anyOf": [{ "required": ["file"] }, { "required": ["url"] }]
},
{
"oneOf": [
{
"type": "object",
"properties": {
"ams_mapping": { "$ref": "../../common/ams/ams_mapping.schema.json" },
"use_ams": true
},
"required": ["ams_mapping", "use_ams"]
},
{
"type": "object",
"properties": {
"ams_mapping": { "type": "string", "const": "" },
"use_ams": false
}
}
]
}
]
}
@@ -1,7 +1,7 @@
{ {
"$schema": "https://json-schema.org/draft/2020-12/schema", "$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/resume.schema.json", "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/request/print/resume.schema.json",
"title": "ResumePrintReport", "title": "ResumePrintRequest",
"allOf": [ "allOf": [
{ "$ref": "../../../common/envelope.schema.json" }, { "$ref": "../../../common/envelope.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/request/print/skip_objects.schema.json",
"title": "SkipObjectsRequest",
"description": "Skip objects based on IDs in slice_info.config. Updates `pushing.pushall` -> `print.push_status` - field `s_obj` with IDs of skipped objects.",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "skip_objects" },
"obj_list": {
"type": "array",
"items": { "type": "integer", "minimum": 0 },
"minItems": 1
}
},
"required": ["param"]
}
]
}
@@ -1,6 +1,6 @@
{ {
"$schema": "https://json-schema.org/draft/2020-12/schema", "$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v1/request/print/stop.schema.json", "$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/request/print/stop.schema.json",
"title": "StopPrintRequest", "title": "StopPrintRequest",
"allOf": [ "allOf": [
{ "$ref": "../../../common/envelope.schema.json" }, { "$ref": "../../../common/envelope.schema.json" },
@@ -0,0 +1,50 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://git.octoturge.com/Continuum/continuum-schemas/raw/branch/main/schemas/bambulab/v2/request/system/ledctrl.schema.json",
"title": "LedctrlRequest",
"allOf": [
{ "$ref": "../../../common/envelope.schema.json" },
{
"type": "object",
"properties": {
"command": { "const": "ledctrl" },
"led_node": { "$ref": "../../common/led_node.schema.json" }
},
"required": ["led_node"]
},
{
"oneOf": [
{
"type": "object",
"properties": {
"led_mode": {
"type": "string",
"enum": ["on", "off", "ON", "OFF"]
}
},
"required": ["led_mode"]
},
{
"type": "object",
"properties": {
"led_mode": {
"type": "string",
"enum": ["flashing", "FLASHING"]
},
"led_on_time": { "type": "integer", "minimum": 1 },
"led_off_time": { "type": "integer", "minimum": 1 },
"loop_times": { "type": "integer", "minimum": 1 },
"interval_time": { "type": "integer", "minimum": 1 }
},
"required": [
"led_mode",
"led_on_time",
"led_off_time",
"loop_times",
"interval_time"
]
}
]
}
]
}