Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions machines/src/extruder1/act.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
#[cfg(not(feature = "mock-machine"))]
use crate::extruder1::ExtruderV2;
use crate::extruder1::ExtruderV1;
#[cfg(not(feature = "mock-machine"))]
use crate::{MachineAct, MachineMessage};
#[cfg(not(feature = "mock-machine"))]
use std::time::{Duration, Instant};

#[cfg(not(feature = "mock-machine"))]
impl MachineAct for ExtruderV2 {
impl MachineAct for ExtruderV1 {
fn act(&mut self, now: Instant) {
let msg = self.api_receiver.try_recv();
match msg {
Expand All @@ -21,17 +21,17 @@ impl MachineAct for ExtruderV2 {
self.temperature_controller_front.update(now);
self.temperature_controller_middle.update(now);

if self.mode == super::ExtruderV2Mode::Extrude {
if self.mode == super::ExtruderV1Mode::Extrude {
self.screw_speed_controller.update(now, true);
} else {
self.screw_speed_controller.update(now, false);
}

if self.mode == super::ExtruderV2Mode::Standby {
if self.mode == super::ExtruderV1Mode::Standby {
self.turn_heating_off();
}

if self.mode == super::ExtruderV2Mode::Extrude
if self.mode == super::ExtruderV1Mode::Extrude
&& !self.screw_speed_controller.get_motor_enabled()
{
self.switch_to_heat();
Expand Down
20 changes: 10 additions & 10 deletions machines/src/extruder1/api.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use super::{ExtruderV2Mode, mitsubishi_cs80::MotorStatus};
use super::{ExtruderV1Mode, mitsubishi_cs80::MotorStatus};

#[cfg(not(feature = "mock-machine"))]
use super::ExtruderV2;
use super::ExtruderV1;

#[cfg(not(feature = "mock-machine"))]
use crate::{MachineMessage, extruder1::HeatingType};
Expand Down Expand Up @@ -115,7 +115,7 @@ pub struct RotationState {

#[derive(Serialize, Debug, Clone, PartialEq, Eq)]
pub struct ModeState {
pub mode: ExtruderV2Mode,
pub mode: ExtruderV1Mode,
}

#[derive(Serialize, Debug, Clone, PartialEq, Eq)]
Expand Down Expand Up @@ -205,7 +205,7 @@ pub struct PidSettingsStates {
pub pressure: PidSettings,
}

pub enum ExtruderV2Events {
pub enum ExtruderV1Events {
LiveValues(Event<LiveValuesEvent>),
State(Event<StateEvent>),
}
Expand All @@ -221,7 +221,7 @@ pub enum Mutation {
SetInverterRegulation(bool),

//Mode
SetExtruderMode(ExtruderV2Mode),
SetExtruderMode(ExtruderV1Mode),
SetFrontHeatingTargetTemperature(f64),
SetBackHeatingTargetTemperature(f64),
SetMiddleHeatingTemperature(f64),
Expand All @@ -240,13 +240,13 @@ pub enum Mutation {
}

#[derive(Debug)]
pub struct ExtruderV2Namespace {
pub struct ExtruderV1Namespace {
pub namespace: Option<Namespace>,
}

impl NamespaceCacheingLogic<ExtruderV2Events> for ExtruderV2Namespace {
impl NamespaceCacheingLogic<ExtruderV1Events> for ExtruderV1Namespace {
#[instrument(skip_all)]
fn emit(&mut self, events: ExtruderV2Events) {
fn emit(&mut self, events: ExtruderV1Events) {
let event = Arc::new(events.event_value());
let buffer_fn = events.event_cache_fn();

Expand All @@ -257,7 +257,7 @@ impl NamespaceCacheingLogic<ExtruderV2Events> for ExtruderV2Namespace {
}
}

impl CacheableEvents<Self> for ExtruderV2Events {
impl CacheableEvents<Self> for ExtruderV1Events {
fn event_value(&self) -> GenericEvent {
match self {
Self::LiveValues(event) => event.into(),
Expand All @@ -275,7 +275,7 @@ impl CacheableEvents<Self> for ExtruderV2Events {
}

#[cfg(not(feature = "mock-machine"))]
impl MachineApi for ExtruderV2 {
impl MachineApi for ExtruderV1 {
fn api_get_sender(&self) -> Sender<MachineMessage> {
self.api_sender.clone()
}
Expand Down
14 changes: 7 additions & 7 deletions machines/src/extruder1/emit.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#[cfg(not(feature = "mock-machine"))]
// Contains Implementations for All functions that use emit_state
use crate::extruder1::{
ExtruderV2, ExtruderV2Mode, HeatingType,
ExtruderV1, ExtruderV1Mode, HeatingType,
api::{
ExtruderSettingsState, ExtruderV2Events, HeatingState, HeatingStates, InverterStatusState,
ExtruderSettingsState, ExtruderV1Events, HeatingState, HeatingStates, InverterStatusState,
LiveValuesEvent, ModeState, PidSettings, PidSettingsStates, PressureState, RegulationState,
RotationState, ScrewState, StateEvent, TemperaturePid,
},
Expand All @@ -24,7 +24,7 @@ use units::thermodynamic_temperature::ThermodynamicTemperature;
use units::{angular_velocity::revolution_per_minute, thermodynamic_temperature::degree_celsius};

#[cfg(not(feature = "mock-machine"))]
impl ExtruderV2 {
impl ExtruderV1 {
pub fn build_state_event(&mut self) -> StateEvent {
use crate::extruder1::api::{TemperaturePid, TemperaturePidStates};

Expand Down Expand Up @@ -144,13 +144,13 @@ impl ExtruderV2 {
}

#[cfg(not(feature = "mock-machine"))]
impl ExtruderV2 {
impl ExtruderV1 {
pub fn emit_state(&mut self) {
let state = self.build_state_event();
let hash = hash_with_serde_model(self.screw_speed_controller.get_inverter_status());
self.last_status_hash = Some(hash);
let event = state.build();
self.namespace.emit(ExtruderV2Events::State(event));
self.namespace.emit(ExtruderV1Events::State(event));
}

pub fn maybe_emit_state_event(&mut self) {
Expand Down Expand Up @@ -214,7 +214,7 @@ impl ExtruderV2 {
};

let event = live_values.build();
self.namespace.emit(ExtruderV2Events::LiveValues(event));
self.namespace.emit(ExtruderV1Events::LiveValues(event));
}

// === Steuerungsfunktionen mit emit_state ===
Expand Down Expand Up @@ -244,7 +244,7 @@ impl ExtruderV2 {
self.emit_state();
}

pub fn set_mode_state(&mut self, mode: ExtruderV2Mode) {
pub fn set_mode_state(&mut self, mode: ExtruderV1Mode) {
self.switch_mode(mode);
self.emit_state();
}
Expand Down
4 changes: 2 additions & 2 deletions machines/src/extruder1/mock/act.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
use super::ExtruderV2;
use super::ExtruderV1;
use crate::MachineAct;
use crate::MachineMessage;
use std::time::{Duration, Instant};

impl MachineAct for ExtruderV2 {
impl MachineAct for ExtruderV1 {
fn act(&mut self, now: Instant) {
let msg = self.api_receiver.try_recv();
match msg {
Expand Down
4 changes: 2 additions & 2 deletions machines/src/extruder1/mock/api.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
use super::ExtruderV2;
use super::ExtruderV1;
use crate::{
MachineApi,
extruder1::{HeatingType, api::Mutation},
};

impl MachineApi for ExtruderV2 {
impl MachineApi for ExtruderV1 {
fn api_mutate(&mut self, request_body: serde_json::Value) -> Result<(), anyhow::Error> {
// there are multiple Modbus Frames that are "prebuilt"
let control: Mutation = serde_json::from_value(request_body)?;
Expand Down
16 changes: 8 additions & 8 deletions machines/src/extruder1/mock/mock_emit.rs
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
use crate::extruder1::{
ExtruderV2Mode, HeatingType,
api::{ExtruderV2Events, LiveValuesEvent, ModeState, PidSettings, StateEvent, TemperaturePid},
mock::ExtruderV2,
ExtruderV1Mode, HeatingType,
api::{ExtruderV1Events, LiveValuesEvent, ModeState, PidSettings, StateEvent, TemperaturePid},
mock::ExtruderV1,
};

use control_core::{
helpers::hasher_serializer::hash_with_serde_model,
socketio::{event::BuildEvent, namespace::NamespaceCacheingLogic},
};

impl ExtruderV2 {
impl ExtruderV1 {
pub fn build_state_event(&mut self) -> StateEvent {
// bad performance wise, but doesnt matter its only a mock machine
StateEvent {
Expand All @@ -27,13 +27,13 @@ impl ExtruderV2 {
}
}

impl ExtruderV2 {
impl ExtruderV1 {
pub fn emit_state(&mut self) {
let state = self.build_state_event();
let hash = hash_with_serde_model(self.inverter_status_state.clone());
self.last_status_hash = Some(hash);
let event = state.build();
self.namespace.emit(ExtruderV2Events::State(event));
self.namespace.emit(ExtruderV1Events::State(event));
}

pub fn maybe_emit_state_event(&mut self) {
Expand Down Expand Up @@ -68,7 +68,7 @@ impl ExtruderV2 {
};

let event = live_values.build();
self.namespace.emit(ExtruderV2Events::LiveValues(event));
self.namespace.emit(ExtruderV1Events::LiveValues(event));
}

pub fn set_nozzle_pressure_limit_is_enabled(&mut self, enabled: bool) {
Expand All @@ -94,7 +94,7 @@ impl ExtruderV2 {
self.emit_state();
}

pub fn set_mode_state(&mut self, mode: ExtruderV2Mode) {
pub fn set_mode_state(&mut self, mode: ExtruderV1Mode) {
self.mode_state = ModeState { mode };
self.emit_state();
}
Expand Down
14 changes: 7 additions & 7 deletions machines/src/extruder1/mock/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ use std::time::Instant;
use crate::{
MACHINE_EXTRUDER_V1, VENDOR_QITECH,
extruder1::{
ExtruderV2Mode,
ExtruderV1Mode,
api::{
ExtruderSettingsState, ExtruderV2Namespace, HeatingStates, InverterStatusState,
ExtruderSettingsState, ExtruderV1Namespace, HeatingStates, InverterStatusState,
ModeState, MotorStatusValues, PidSettingsStates, PressureState, RegulationState,
RotationState, ScrewState,
},
Expand All @@ -38,7 +38,7 @@ pub mod mock_emit;
pub mod new;

#[cfg(feature = "mock-machine")]
impl Machine for ExtruderV2 {
impl Machine for ExtruderV1 {
fn get_machine_identification_unique(&self) -> MachineIdentificationUnique {
self.machine_identification_unique.clone()
}
Expand All @@ -50,17 +50,17 @@ impl Machine for ExtruderV2 {

#[cfg(feature = "mock-machine")]
#[derive(Debug)]
pub struct ExtruderV2 {
pub struct ExtruderV1 {
api_receiver: Receiver<MachineMessage>,
api_sender: Sender<MachineMessage>,
main_sender: Option<Sender<AsyncThreadMessage>>,

machine_identification_unique: MachineIdentificationUnique,

namespace: ExtruderV2Namespace,
namespace: ExtruderV1Namespace,
last_measurement_emit: Instant,
last_status_hash: Option<u64>,
mode: ExtruderV2Mode,
mode: ExtruderV1Mode,
/// Energy tracking for total consumption calculation
pub total_energy_kwh: f64,
pub last_energy_calculation_time: Option<Instant>,
Expand Down Expand Up @@ -121,7 +121,7 @@ pub struct ExtruderV2 {
}

#[cfg(feature = "mock-machine")]
impl ExtruderV2 {
impl ExtruderV1 {
pub const MACHINE_IDENTIFICATION: MachineIdentification = MachineIdentification {
vendor: VENDOR_QITECH,
machine: MACHINE_EXTRUDER_V1,
Expand Down
14 changes: 7 additions & 7 deletions machines/src/extruder1/mock/new.rs
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
use crate::{
MachineNewHardware, MachineNewParams, MachineNewTrait,
extruder1::{
ExtruderV2Mode,
ExtruderV1Mode,
api::{
ExtruderSettingsState, ExtruderV2Namespace, HeatingState, HeatingStates,
ExtruderSettingsState, ExtruderV1Namespace, HeatingState, HeatingStates,
InverterStatusState, ModeState, MotorStatusValues, PidSettings, PidSettingsStates,
PressureState, RegulationState, RotationState, ScrewState, TemperaturePid,
TemperaturePidStates,
},
mock::ExtruderV2,
mock::ExtruderV1,
},
};

impl MachineNewTrait for ExtruderV2 {
impl MachineNewTrait for ExtruderV1 {
fn new(params: &MachineNewParams<'_, '_, '_, '_, '_, '_, '_>) -> Result<Self, anyhow::Error>
where
Self: Sized,
Expand All @@ -39,20 +39,20 @@ impl MachineNewTrait for ExtruderV2 {
api_receiver: receiver,
api_sender: sender,
machine_identification_unique: params.get_machine_identification_unique(),
namespace: ExtruderV2Namespace {
namespace: ExtruderV1Namespace {
namespace: params.namespace.clone(),
},
last_measurement_emit: now,

mode: ExtruderV2Mode::Standby, // Start in standby mode
mode: ExtruderV1Mode::Standby, // Start in standby mode
emitted_default_state: false,
last_status_hash: None,
total_energy_kwh: 0.0,
last_energy_calculation_time: None,
is_default_state: false,
rotation_state: RotationState { forward: false },
mode_state: ModeState {
mode: ExtruderV2Mode::Standby,
mode: ExtruderV1Mode::Standby,
},
regulation_state: RegulationState { uses_rpm: true },
pressure_state: PressureState {
Expand Down
Loading
Loading