Add upload_project_file/send_gcode_line, real Marlin serial, Bambu protocol auto-detect
- GenericPrinter grows upload_project_file, send_gcode_line, and a generic upload_gcode<P> driver that streams a whole gcode file line by line through any vendor's send_gcode_line. - PrusaSerialPrinter's connect/send_gcode_line are real (not stubs): a held-open MarlinSerialConnection (src/printer/marlin_serial.rs) writes each line and waits for Marlin's "ok" before sending the next. Config changed from com_port: i16 to port: String + baud_rate: u32 to hold a real device path. - Bambu: BambuGenericPrinter + BambuV1Printer/BambuV2Printer collapsed into one BambuPrinter, since which MQTT/BambuMQTT version (v3.1.1/v1 vs v5/v2) a printer speaks is discovered at connect() time (or forced), not something config should pick a type for - the same physical printer can change after a firmware update. printers.toml gets a new "bambu" vendor (auto-detect, the default) alongside bambu_v1/bambu_v2 (force a specific one). - Bambu's gcode_line request is now built for real via continuum-schema-instance against continuum-schemas' JSON Schema, picking the v1 or v2 schema directory based on the detected protocol version, instead of a hand-written serde struct. - Added rumqttc as a dependency (not wired up yet - the real MQTT v5-then-v3.1.1 fallback connect and the publish/receive plumbing are still stubs).
This commit is contained in:
+14
-7
@@ -34,6 +34,18 @@ name = "bambu_commands_demo"
|
||||
path = "examples/bambu_commands_demo.rs"
|
||||
|
||||
[dependencies]
|
||||
# Real printer protocol clients (MQTT for Bambu, HTTP for PrusaLink/
|
||||
# Moonraker, FTPS for gcode transfer) go here once you're ready to build
|
||||
# past the stubs in src/printer/ - see that module's doc comment.
|
||||
continuum-rust-types = { path = "../continuum-schemas/packages/rust-types" }
|
||||
# FOR NON-LOCAL DEV
|
||||
# continuum-rust-types = { git = "https://git.octoturge.com/Continuum/continuum-schemas.git" }
|
||||
|
||||
# Builds a JSON instance straight from the schema files in
|
||||
# continuum-schemas/schemas/ - used for Bambu's raw MQTT JSON messages
|
||||
# instead of hand-written serde structs (see bambu.rs).
|
||||
continuum-schema-instance = { path = "../continuum-common/packages/rust-schema-instance" }
|
||||
|
||||
tokio = { version = "1.40", features = ["full"] }
|
||||
tokio-tungstenite = { version = "0.24", features = ["native-tls"] }
|
||||
futures-util = "0.3"
|
||||
@@ -47,10 +59,5 @@ tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
|
||||
anyhow = "1"
|
||||
thiserror = "1"
|
||||
dotenvy = "0.15"
|
||||
|
||||
# Real printer protocol clients (MQTT for Bambu, HTTP for PrusaLink/
|
||||
# Moonraker, FTPS for gcode transfer) go here once you're ready to build
|
||||
# past the stubs in src/printer/ - see that module's doc comment.
|
||||
continuum-rust-types = { path = "../continuum-schemas/packages/rust-types" }
|
||||
# FOR NON-LOCAL DEV
|
||||
# continuum-rust-types = { git = "https://git.octoturge.com/Continuum/continuum-schemas.git" }
|
||||
tokio-serial = { version = "5.5.0", default-features = false }
|
||||
rumqttc = "0.25.1"
|
||||
|
||||
Reference in New Issue
Block a user