gcode_serial/models/
action.rs1use crate::models::file::{FinishedPrint, GcodeFile};
2use crate::models::temperature::Temperature;
3use serde::{Deserialize, Serialize};
4use strum::Display;
5
6#[derive(Clone, Serialize, Deserialize)]
8pub enum Action {
9 Telemetry(TelemetryData),
11 StateChange(PrinterStatus),
13 PrinterAction(PrinterAction),
15 Command(Command),
17}
18
19#[derive(Clone, Serialize, Deserialize, PartialEq, Eq, Display)]
20pub enum PrinterStatus {
21 Disconnected,
22 Active,
23 Idle,
24 Errored,
25}
26
27#[derive(Clone, Serialize, Deserialize, Display)]
29pub enum PrinterAction {
30 Cancel,
31 Pause,
32 Resume,
33}
34
35#[derive(Clone, Serialize, Deserialize)]
36pub enum TelemetryData {
37 Temps(Temperature),
39 Progress(u32),
41 PercentDone(u32),
43 MinsRemaining(u32),
45 TotalCommandCount(u32),
47 TargetExtruderTemp(u32),
49 TargetBedTemp(u32),
51 ZHeight(f32),
53 MaxZHeight(f32),
55 FanSpeed(f32),
57 ActiveFileChange(Option<GcodeFile>),
59 PrintFinished(FinishedPrint),
61}
62
63#[derive(Clone, Serialize, Deserialize)]
65pub enum Command {
66 SetTemps(u16, u16),
68 StartPrint(String),
70 StopPrint,
72}