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:
@@ -49,6 +49,12 @@ pub struct CommandEnvelope {
|
||||
/// category can have more than one possible request shape - if that ever
|
||||
/// happens here, that variant's payload becomes its own small
|
||||
/// `#[serde(tag = "command")]` enum instead of a single struct.
|
||||
///
|
||||
/// The "print" category isn't a variant here at all: unlike `info`/
|
||||
/// `pushing`, it has many possible request shapes (`gcode_line`, `pause`,
|
||||
/// `resume`, ...) in continuum-schemas' own `oneOf`, so
|
||||
/// `bambu.rs`'s `send_gcode_line_impl` builds that one directly via
|
||||
/// `continuum-schema-instance` instead of adding it here.
|
||||
#[derive(serde::Serialize, Debug)]
|
||||
#[serde(rename_all = "snake_case")]
|
||||
pub enum BambuRequest {
|
||||
|
||||
Reference in New Issue
Block a user