finished BambuMQTT schemas
This commit is contained in:
Vendored
+2
@@ -0,0 +1,2 @@
|
|||||||
|
export * from "./schemas";
|
||||||
|
export * as proto from "./generated";
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
export * from "./schemas";
|
||||||
|
// `src/generated/**` is produced by `npm run build:ts` (protoc + ts-proto)
|
||||||
|
// from the .proto sources in /proto and is not committed. Re-export it
|
||||||
|
// here once generated so consumers get both the TypeBox runtime schemas
|
||||||
|
// and the proto-derived TS types from a single package entry point.
|
||||||
|
export * as proto from "./generated";
|
||||||
+4
@@ -0,0 +1,4 @@
|
|||||||
|
export * from "./material";
|
||||||
|
export * from "./print-params";
|
||||||
|
export * from "./template";
|
||||||
|
export * from "./print-job";
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
export * from "./material";
|
||||||
|
export * from "./print-params";
|
||||||
|
export * from "./template";
|
||||||
|
export * from "./print-job";
|
||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
import { type Static } from "@sinclair/typebox";
|
||||||
|
export declare const MaterialProfileSchema: import("@sinclair/typebox").TObject<{
|
||||||
|
id: import("@sinclair/typebox").TString;
|
||||||
|
name: import("@sinclair/typebox").TString;
|
||||||
|
filamentType: import("@sinclair/typebox").TString;
|
||||||
|
nozzleTempC: import("@sinclair/typebox").TNumber;
|
||||||
|
bedTempC: import("@sinclair/typebox").TNumber;
|
||||||
|
densityGCm3: import("@sinclair/typebox").TNumber;
|
||||||
|
colorHex: import("@sinclair/typebox").TString;
|
||||||
|
}>;
|
||||||
|
export type MaterialProfile = Static<typeof MaterialProfileSchema>;
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
import { Type } from "@sinclair/typebox";
|
||||||
|
export const MaterialProfileSchema = Type.Object({
|
||||||
|
id: Type.String({ format: "uuid" }),
|
||||||
|
name: Type.String({ minLength: 1 }),
|
||||||
|
filamentType: Type.String({ minLength: 1 }),
|
||||||
|
nozzleTempC: Type.Number(),
|
||||||
|
bedTempC: Type.Number(),
|
||||||
|
densityGCm3: Type.Number(),
|
||||||
|
colorHex: Type.String({ pattern: "^#[0-9a-fA-F]{6}$" }),
|
||||||
|
});
|
||||||
+15
@@ -0,0 +1,15 @@
|
|||||||
|
import { type Static } from "@sinclair/typebox";
|
||||||
|
export declare const PrintJobStatusSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"PRINT_JOB_STATUS_UNSPECIFIED">, import("@sinclair/typebox").TLiteral<"PRINT_JOB_STATUS_QUEUED">, import("@sinclair/typebox").TLiteral<"PRINT_JOB_STATUS_PRINTING">, import("@sinclair/typebox").TLiteral<"PRINT_JOB_STATUS_PAUSED">, import("@sinclair/typebox").TLiteral<"PRINT_JOB_STATUS_COMPLETED">, import("@sinclair/typebox").TLiteral<"PRINT_JOB_STATUS_FAILED">, import("@sinclair/typebox").TLiteral<"PRINT_JOB_STATUS_CANCELLED">]>;
|
||||||
|
export type PrintJobStatus = Static<typeof PrintJobStatusSchema>;
|
||||||
|
export declare const PrintJobSchema: import("@sinclair/typebox").TObject<{
|
||||||
|
id: import("@sinclair/typebox").TString;
|
||||||
|
farmId: import("@sinclair/typebox").TString;
|
||||||
|
printerId: import("@sinclair/typebox").TString;
|
||||||
|
templateId: import("@sinclair/typebox").TString;
|
||||||
|
status: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"PRINT_JOB_STATUS_UNSPECIFIED">, import("@sinclair/typebox").TLiteral<"PRINT_JOB_STATUS_QUEUED">, import("@sinclair/typebox").TLiteral<"PRINT_JOB_STATUS_PRINTING">, import("@sinclair/typebox").TLiteral<"PRINT_JOB_STATUS_PAUSED">, import("@sinclair/typebox").TLiteral<"PRINT_JOB_STATUS_COMPLETED">, import("@sinclair/typebox").TLiteral<"PRINT_JOB_STATUS_FAILED">, import("@sinclair/typebox").TLiteral<"PRINT_JOB_STATUS_CANCELLED">]>;
|
||||||
|
progressPercent: import("@sinclair/typebox").TNumber;
|
||||||
|
startedAtUnix: import("@sinclair/typebox").TInteger;
|
||||||
|
completedAtUnix: import("@sinclair/typebox").TInteger;
|
||||||
|
gcodeFileKey: import("@sinclair/typebox").TString;
|
||||||
|
}>;
|
||||||
|
export type PrintJob = Static<typeof PrintJobSchema>;
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
import { Type } from "@sinclair/typebox";
|
||||||
|
export const PrintJobStatusSchema = Type.Union([
|
||||||
|
Type.Literal("PRINT_JOB_STATUS_UNSPECIFIED"),
|
||||||
|
Type.Literal("PRINT_JOB_STATUS_QUEUED"),
|
||||||
|
Type.Literal("PRINT_JOB_STATUS_PRINTING"),
|
||||||
|
Type.Literal("PRINT_JOB_STATUS_PAUSED"),
|
||||||
|
Type.Literal("PRINT_JOB_STATUS_COMPLETED"),
|
||||||
|
Type.Literal("PRINT_JOB_STATUS_FAILED"),
|
||||||
|
Type.Literal("PRINT_JOB_STATUS_CANCELLED"),
|
||||||
|
]);
|
||||||
|
export const PrintJobSchema = Type.Object({
|
||||||
|
id: Type.String({ format: "uuid" }),
|
||||||
|
farmId: Type.String({ format: "uuid" }),
|
||||||
|
printerId: Type.String({ format: "uuid" }),
|
||||||
|
templateId: Type.String({ format: "uuid" }),
|
||||||
|
status: PrintJobStatusSchema,
|
||||||
|
progressPercent: Type.Number({ minimum: 0, maximum: 100 }),
|
||||||
|
startedAtUnix: Type.Integer(),
|
||||||
|
completedAtUnix: Type.Integer(),
|
||||||
|
gcodeFileKey: Type.String({ minLength: 1 }),
|
||||||
|
});
|
||||||
+10
@@ -0,0 +1,10 @@
|
|||||||
|
import { type Static } from "@sinclair/typebox";
|
||||||
|
export declare const PrintParametersSchema: import("@sinclair/typebox").TObject<{
|
||||||
|
layerHeightMm: import("@sinclair/typebox").TNumber;
|
||||||
|
infillPercent: import("@sinclair/typebox").TInteger;
|
||||||
|
infillPattern: import("@sinclair/typebox").TString;
|
||||||
|
printSpeedMmS: import("@sinclair/typebox").TNumber;
|
||||||
|
supportsEnabled: import("@sinclair/typebox").TBoolean;
|
||||||
|
wallCount: import("@sinclair/typebox").TInteger;
|
||||||
|
}>;
|
||||||
|
export type PrintParameters = Static<typeof PrintParametersSchema>;
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
import { Type } from "@sinclair/typebox";
|
||||||
|
export const PrintParametersSchema = Type.Object({
|
||||||
|
layerHeightMm: Type.Number({ minimum: 0.04, maximum: 1.0 }),
|
||||||
|
infillPercent: Type.Integer({ minimum: 0, maximum: 100 }),
|
||||||
|
infillPattern: Type.String({ minLength: 1 }),
|
||||||
|
printSpeedMmS: Type.Number({ minimum: 0 }),
|
||||||
|
supportsEnabled: Type.Boolean(),
|
||||||
|
wallCount: Type.Integer({ minimum: 0 }),
|
||||||
|
});
|
||||||
+29
@@ -0,0 +1,29 @@
|
|||||||
|
import { type Static } from "@sinclair/typebox";
|
||||||
|
export declare const TemplateSchema: import("@sinclair/typebox").TObject<{
|
||||||
|
id: import("@sinclair/typebox").TString;
|
||||||
|
name: import("@sinclair/typebox").TString;
|
||||||
|
description: import("@sinclair/typebox").TString;
|
||||||
|
ownerId: import("@sinclair/typebox").TString;
|
||||||
|
modelFileKey: import("@sinclair/typebox").TString;
|
||||||
|
material: import("@sinclair/typebox").TObject<{
|
||||||
|
id: import("@sinclair/typebox").TString;
|
||||||
|
name: import("@sinclair/typebox").TString;
|
||||||
|
filamentType: import("@sinclair/typebox").TString;
|
||||||
|
nozzleTempC: import("@sinclair/typebox").TNumber;
|
||||||
|
bedTempC: import("@sinclair/typebox").TNumber;
|
||||||
|
densityGCm3: import("@sinclair/typebox").TNumber;
|
||||||
|
colorHex: import("@sinclair/typebox").TString;
|
||||||
|
}>;
|
||||||
|
printParameters: import("@sinclair/typebox").TObject<{
|
||||||
|
layerHeightMm: import("@sinclair/typebox").TNumber;
|
||||||
|
infillPercent: import("@sinclair/typebox").TInteger;
|
||||||
|
infillPattern: import("@sinclair/typebox").TString;
|
||||||
|
printSpeedMmS: import("@sinclair/typebox").TNumber;
|
||||||
|
supportsEnabled: import("@sinclair/typebox").TBoolean;
|
||||||
|
wallCount: import("@sinclair/typebox").TInteger;
|
||||||
|
}>;
|
||||||
|
createdAtUnix: import("@sinclair/typebox").TInteger;
|
||||||
|
updatedAtUnix: import("@sinclair/typebox").TInteger;
|
||||||
|
tags: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
|
||||||
|
}>;
|
||||||
|
export type Template = Static<typeof TemplateSchema>;
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
import { Type } from "@sinclair/typebox";
|
||||||
|
import { MaterialProfileSchema } from "./material";
|
||||||
|
import { PrintParametersSchema } from "./print-params";
|
||||||
|
export const TemplateSchema = Type.Object({
|
||||||
|
id: Type.String({ format: "uuid" }),
|
||||||
|
name: Type.String({ minLength: 1 }),
|
||||||
|
description: Type.String(),
|
||||||
|
ownerId: Type.String({ format: "uuid" }),
|
||||||
|
modelFileKey: Type.String({ minLength: 1 }),
|
||||||
|
material: MaterialProfileSchema,
|
||||||
|
printParameters: PrintParametersSchema,
|
||||||
|
createdAtUnix: Type.Integer(),
|
||||||
|
updatedAtUnix: Type.Integer(),
|
||||||
|
tags: Type.Array(Type.String()),
|
||||||
|
});
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||||
|
"name": "Bambu Lab MQTT Wire Schemas",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "JSON Schemas for Bambu Lab 3D Printers (X1/P1/A1 series)",
|
||||||
|
"default_topics": [
|
||||||
|
{
|
||||||
|
"topic": "device/{{DEVICE_ID}}/report",
|
||||||
|
"qos": 1,
|
||||||
|
"color": "#22c55e",
|
||||||
|
"description": "Printer real-time telemetry report stream"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"topic": "device/{{DEVICE_ID}}/request",
|
||||||
|
"qos": 1,
|
||||||
|
"color": "#6366f1",
|
||||||
|
"description": "Control requests sent to printer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"topic_groups": [
|
||||||
|
{
|
||||||
|
"name": "Printer Telemetry (v1)",
|
||||||
|
"topic_pattern": "device/{{DEVICE_ID}}/report",
|
||||||
|
"schema": "v1/report.schema.json",
|
||||||
|
"description": "BambuReport dispatcher for push_status and print state pushes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Command Requests (v1)",
|
||||||
|
"topic_pattern": "device/{{DEVICE_ID}}/request",
|
||||||
|
"schema": "v1/request.schema.json",
|
||||||
|
"description": "BambuRequest dispatcher for info, pushing, etc."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Printer Telemetry (v2)",
|
||||||
|
"topic_pattern": "device/{{DEVICE_ID}}/report",
|
||||||
|
"schema": "v2/report.schema.json",
|
||||||
|
"description": "BambuReport v2 dispatcher"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Command Requests (v2)",
|
||||||
|
"topic_pattern": "device/{{DEVICE_ID}}/request",
|
||||||
|
"schema": "v2/request.schema.json",
|
||||||
|
"description": "BambuRequest v2 dispatcher"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hidden_schemas": [
|
||||||
|
"common/**",
|
||||||
|
"v1/common/**",
|
||||||
|
"v2/common/**",
|
||||||
|
"**/_*.schema.json"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -7,14 +7,59 @@
|
|||||||
"minProperties": 1,
|
"minProperties": 1,
|
||||||
"maxProperties": 1,
|
"maxProperties": 1,
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"camera": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "report/camera/ipcam_record_set.schema.json" },
|
||||||
|
{ "$ref": "report/camera/ipcam_timelapse.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
"info": {
|
"info": {
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{ "$ref": "report/info/get_version.schema.json" }
|
{ "$ref": "report/info/get_version.schema.json" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"mc_print": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "report/mc_print/push_info.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
"print": {
|
"print": {
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{ "$ref": "report/print/push_status.schema.json" }
|
{ "$ref": "report/print/ams_change_filament.schema.json" },
|
||||||
|
{ "$ref": "report/print/ams_control.schema.json" },
|
||||||
|
{ "$ref": "report/print/ams_filament_setting.schema.json" },
|
||||||
|
{ "$ref": "report/print/ams_get_rfid.schema.json" },
|
||||||
|
{ "$ref": "report/print/ams_user_setting.schema.json" },
|
||||||
|
{ "$ref": "report/print/gcode_file.schema.json" },
|
||||||
|
{ "$ref": "report/print/gcode_line.schema.json" },
|
||||||
|
{ "$ref": "report/print/pause.schema.json" },
|
||||||
|
{ "$ref": "report/print/print_option.schema.json" },
|
||||||
|
{ "$ref": "report/print/print_speed.schema.json" },
|
||||||
|
{ "$ref": "report/print/project_file.schema.json" },
|
||||||
|
{ "$ref": "report/print/push_status.schema.json" },
|
||||||
|
{ "$ref": "report/print/resume.schema.json" },
|
||||||
|
{ "$ref": "report/print/stop.schema.json" },
|
||||||
|
{ "$ref": "report/print/unload_filament.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"system": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "report/system/get_access_code.schema.json" },
|
||||||
|
{ "$ref": "report/system/ledctrl.schema.json" },
|
||||||
|
{ "$ref": "report/system/set_accessories.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upgrade": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "report/upgrade/consistency_confirm.schema.json" },
|
||||||
|
{ "$ref": "report/upgrade/get_history.schema.json" },
|
||||||
|
{ "$ref": "report/upgrade/start.schema.json" },
|
||||||
|
{ "$ref": "report/upgrade/upgrade_confirm.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"xcam": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "report/xcam/xcam_control_set.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/v1/report/mc_print/push_info.schema.json",
|
||||||
|
"title": "McPrintPushInfoReport",
|
||||||
|
"description": "This message can't be requested - it's set automatically by the printer. [LINK] is for logs, [BMC] is for reported pressure advance calculated by lidar and [AMS][TASK] is per-AMS raw humidity",
|
||||||
|
"allOf": [
|
||||||
|
{ "$ref": "../../../common/envelope.schema.json" },
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"command": { "const": "push_info" },
|
||||||
|
"param": {
|
||||||
|
"type": "string",
|
||||||
|
"anyOf": [
|
||||||
|
{ "pattern": "^\\[LINK\\] ?(?<log>.+)$" },
|
||||||
|
{ "pattern": "^\\[BMC\\] ?M900 K(?<k>\\d+\\.\\d+), L(?<l>\\d+\\.\\d+), M(?<m>\\d+\\.\\d+)$" },
|
||||||
|
{ "pattern": "^\\[AMS\\]\\[TASK\\] ?ams(?<ams_idx>\\d+) temp:(?<temp>\\d+\\.\\d+);humidity:(?<humidity_perc>\\d+)%;humidity_idx:(?<humidity_idx>[0-4]+)$" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["param"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -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/v1/report/system/xcam_control_set.schema.json",
|
||||||
|
"title": "XcamControlSetReport",
|
||||||
|
"allOf": [
|
||||||
|
{ "$ref": "../../../common/envelope.schema.json" },
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"command": { "const": "xcam_control_set" },
|
||||||
|
"control": { "type": "boolean" },
|
||||||
|
"print_halt": { "type": "boolean" },
|
||||||
|
"module_name": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"first_layer_inspector", "buildplate_marker_detector", "printing_monitor",
|
||||||
|
"pileup_detector", "airprint_detector", "clump_detector", "spaghetti_detector"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["module_name", "control", "print_halt"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -7,14 +7,55 @@
|
|||||||
"minProperties": 1,
|
"minProperties": 1,
|
||||||
"maxProperties": 1,
|
"maxProperties": 1,
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"camera": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "request/camera/ipcam_record_set.schema.json" },
|
||||||
|
{ "$ref": "request/camera/ipcam_timelapse.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
"info": {
|
"info": {
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{ "$ref": "request/info/get_version.schema.json" }
|
{ "$ref": "request/info/get_version.schema.json" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"pushing": {
|
"print": {
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{ "$ref": "request/pushing/pushall.schema.json" }
|
{ "$ref": "request/print/ams_change_filament.schema.json" },
|
||||||
|
{ "$ref": "request/print/ams_control.schema.json" },
|
||||||
|
{ "$ref": "request/print/ams_filament_setting.schema.json" },
|
||||||
|
{ "$ref": "request/print/ams_get_rfid.schema.json" },
|
||||||
|
{ "$ref": "request/print/ams_user_setting.schema.json" },
|
||||||
|
{ "$ref": "request/print/calibration.schema.json" },
|
||||||
|
{ "$ref": "request/print/gcode_file.schema.json" },
|
||||||
|
{ "$ref": "request/print/gcode_line.schema.json" },
|
||||||
|
{ "$ref": "request/print/pause.schema.json" },
|
||||||
|
{ "$ref": "request/print/print_option.schema.json" },
|
||||||
|
{ "$ref": "request/print/print_speed.schema.json" },
|
||||||
|
{ "$ref": "request/print/project_file.schema.json" },
|
||||||
|
{ "$ref": "request/print/resume.schema.json" },
|
||||||
|
{ "$ref": "request/print/skip_objects.schema.json" },
|
||||||
|
{ "$ref": "request/print/stop.schema.json" },
|
||||||
|
{ "$ref": "request/print/unload_filament.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"system": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "request/system/get_access_code.schema.json" },
|
||||||
|
{ "$ref": "request/system/ledctrl.schema.json" },
|
||||||
|
{ "$ref": "request/system/set_accessories.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upgrade": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "request/upgrade/consistency_confirm.schema.json" },
|
||||||
|
{ "$ref": "request/upgrade/get_history.schema.json" },
|
||||||
|
{ "$ref": "request/upgrade/start.schema.json" },
|
||||||
|
{ "$ref": "request/upgrade/upgrade_confirm.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"xcam": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "request/xcam/xcam_control_set.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/v1/request/system/xcam_control_set.schema.json",
|
||||||
|
"title": "XcamControlSetRequest",
|
||||||
|
"allOf": [
|
||||||
|
{ "$ref": "../../../common/envelope.schema.json" },
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"command": { "const": "xcam_control_set" },
|
||||||
|
"control": { "type": "boolean" },
|
||||||
|
"print_halt": { "type": "boolean" },
|
||||||
|
"module_name": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"first_layer_inspector", "buildplate_marker_detector", "printing_monitor",
|
||||||
|
"pileup_detector", "airprint_detector", "clump_detector", "spaghetti_detector"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["module_name", "control", "print_halt"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -7,14 +7,60 @@
|
|||||||
"minProperties": 1,
|
"minProperties": 1,
|
||||||
"maxProperties": 1,
|
"maxProperties": 1,
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"camera": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "report/camera/ipcam_record_set.schema.json" },
|
||||||
|
{ "$ref": "report/camera/ipcam_timelapse.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
"info": {
|
"info": {
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{ "$ref": "report/info/get_version.schema.json" }
|
{ "$ref": "report/info/get_version.schema.json" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"mc_print": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "report/mc_print/push_info.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
"print": {
|
"print": {
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{ "$ref": "report/print/push_status.schema.json" }
|
{ "$ref": "report/print/ams_change_filament.schema.json" },
|
||||||
|
{ "$ref": "report/print/ams_control.schema.json" },
|
||||||
|
{ "$ref": "report/print/ams_filament_setting.schema.json" },
|
||||||
|
{ "$ref": "report/print/ams_get_rfid.schema.json" },
|
||||||
|
{ "$ref": "report/print/ams_user_setting.schema.json" },
|
||||||
|
{ "$ref": "report/print/calibration.schema.json" },
|
||||||
|
{ "$ref": "report/print/gcode_file.schema.json" },
|
||||||
|
{ "$ref": "report/print/gcode_line.schema.json" },
|
||||||
|
{ "$ref": "report/print/pause.schema.json" },
|
||||||
|
{ "$ref": "report/print/print_option.schema.json" },
|
||||||
|
{ "$ref": "report/print/print_speed.schema.json" },
|
||||||
|
{ "$ref": "report/print/project_file.schema.json" },
|
||||||
|
{ "$ref": "report/print/push_status.schema.json" },
|
||||||
|
{ "$ref": "report/print/resume.schema.json" },
|
||||||
|
{ "$ref": "report/print/stop.schema.json" },
|
||||||
|
{ "$ref": "report/print/unload_filament.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"system": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "report/system/get_access_code.schema.json" },
|
||||||
|
{ "$ref": "report/system/ledctrl.schema.json" },
|
||||||
|
{ "$ref": "report/system/set_accessories.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upgrade": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "report/upgrade/consistency_confirm.schema.json" },
|
||||||
|
{ "$ref": "report/upgrade/get_history.schema.json" },
|
||||||
|
{ "$ref": "report/upgrade/start.schema.json" },
|
||||||
|
{ "$ref": "report/upgrade/upgrade_confirm.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"xcam": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "report/xcam/xcam_control_set.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/report/mc_print/push_info.schema.json",
|
||||||
|
"title": "McPrintPushInfoReport",
|
||||||
|
"description": "This message can't be requested - it's set automatically by the printer. [LINK] is for logs, [BMC] is for reported pressure advance calculated by lidar and [AMS][TASK] is per-AMS raw humidity",
|
||||||
|
"allOf": [
|
||||||
|
{ "$ref": "../../../common/envelope.schema.json" },
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"command": { "const": "push_info" },
|
||||||
|
"param": {
|
||||||
|
"type": "string",
|
||||||
|
"anyOf": [
|
||||||
|
{ "pattern": "^\\[LINK\\] ?(?<log>.+)$" },
|
||||||
|
{ "pattern": "^\\[BMC\\] ?M900 K(?<k>\\d+\\.\\d+), L(?<l>\\d+\\.\\d+), M(?<m>\\d+\\.\\d+)$" },
|
||||||
|
{ "pattern": "^\\[AMS\\]\\[TASK\\] ?ams(?<ams_idx>\\d+) temp:(?<temp>\\d+\\.\\d+);humidity:(?<humidity_perc>\\d+)%;humidity_idx:(?<humidity_idx>[0-4]+)$" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["param"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -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/report/system/xcam_control_set.schema.json",
|
||||||
|
"title": "XcamControlSetReport",
|
||||||
|
"allOf": [
|
||||||
|
{ "$ref": "../../../common/envelope.schema.json" },
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"command": { "const": "xcam_control_set" },
|
||||||
|
"control": { "type": "boolean" },
|
||||||
|
"print_halt": { "type": "boolean" },
|
||||||
|
"module_name": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"first_layer_inspector", "buildplate_marker_detector", "printing_monitor",
|
||||||
|
"pileup_detector", "airprint_detector", "clump_detector", "spaghetti_detector"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["module_name", "control", "print_halt"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -7,10 +7,56 @@
|
|||||||
"minProperties": 1,
|
"minProperties": 1,
|
||||||
"maxProperties": 1,
|
"maxProperties": 1,
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"camera": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "request/camera/ipcam_record_set.schema.json" },
|
||||||
|
{ "$ref": "request/camera/ipcam_timelapse.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
"info": {
|
"info": {
|
||||||
"oneOf": [
|
"oneOf": [
|
||||||
{ "$ref": "request/info/get_version.schema.json" }
|
{ "$ref": "request/info/get_version.schema.json" }
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"print": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "request/print/ams_change_filament.schema.json" },
|
||||||
|
{ "$ref": "request/print/ams_control.schema.json" },
|
||||||
|
{ "$ref": "request/print/ams_filament_setting.schema.json" },
|
||||||
|
{ "$ref": "request/print/ams_get_rfid.schema.json" },
|
||||||
|
{ "$ref": "request/print/ams_user_setting.schema.json" },
|
||||||
|
{ "$ref": "request/print/calibration.schema.json" },
|
||||||
|
{ "$ref": "request/print/gcode_file.schema.json" },
|
||||||
|
{ "$ref": "request/print/gcode_line.schema.json" },
|
||||||
|
{ "$ref": "request/print/pause.schema.json" },
|
||||||
|
{ "$ref": "request/print/print_option.schema.json" },
|
||||||
|
{ "$ref": "request/print/print_speed.schema.json" },
|
||||||
|
{ "$ref": "request/print/project_file.schema.json" },
|
||||||
|
{ "$ref": "request/print/resume.schema.json" },
|
||||||
|
{ "$ref": "request/print/skip_objects.schema.json" },
|
||||||
|
{ "$ref": "request/print/stop.schema.json" },
|
||||||
|
{ "$ref": "request/print/unload_filament.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"system": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "request/system/get_access_code.schema.json" },
|
||||||
|
{ "$ref": "request/system/ledctrl.schema.json" },
|
||||||
|
{ "$ref": "request/system/set_accessories.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"upgrade": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "request/upgrade/consistency_confirm.schema.json" },
|
||||||
|
{ "$ref": "request/upgrade/get_history.schema.json" },
|
||||||
|
{ "$ref": "request/upgrade/start.schema.json" },
|
||||||
|
{ "$ref": "request/upgrade/upgrade_confirm.schema.json" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"xcam": {
|
||||||
|
"oneOf": [
|
||||||
|
{ "$ref": "request/xcam/xcam_control_set.json" }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"additionalProperties": false
|
"additionalProperties": false
|
||||||
|
|||||||
@@ -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/request/system/xcam_control_set.schema.json",
|
||||||
|
"title": "XcamControlSetRequest",
|
||||||
|
"allOf": [
|
||||||
|
{ "$ref": "../../../common/envelope.schema.json" },
|
||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"command": { "const": "xcam_control_set" },
|
||||||
|
"control": { "type": "boolean" },
|
||||||
|
"print_halt": { "type": "boolean" },
|
||||||
|
"module_name": {
|
||||||
|
"type": "string",
|
||||||
|
"enum": [
|
||||||
|
"first_layer_inspector", "buildplate_marker_detector", "printing_monitor",
|
||||||
|
"pileup_detector", "airprint_detector", "clump_detector", "spaghetti_detector"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": ["module_name", "control", "print_halt"]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
+2
-1
@@ -11,5 +11,6 @@
|
|||||||
"skipLibCheck": true,
|
"skipLibCheck": true,
|
||||||
"forceConsistentCasingInFileNames": true,
|
"forceConsistentCasingInFileNames": true,
|
||||||
"resolveJsonModule": true
|
"resolveJsonModule": true
|
||||||
}
|
},
|
||||||
|
"exclude": ["examples", "node_modules"]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user