ENH: add support for chamber_temp and exhaust_fan

Support controlling chamebr temperature and exhaust fan for air filtration

Signed-off-by: xun.zhang <xun.zhang@bambulab.com>
Change-Id: I31627ce4f8acce99e132b0436ab7dcd0bcebf81d
This commit is contained in:
xun.zhang 2023-08-01 10:14:22 +08:00 committed by Lane.Wei
parent be19c137fe
commit 9b20cad55e
11 changed files with 232 additions and 10 deletions

View file

@ -253,7 +253,8 @@ namespace Slic3r {
First_Line_M73_Placeholder,
Last_Line_M73_Placeholder,
Estimated_Printing_Time_Placeholder,
Total_Layer_Number_Placeholder
Total_Layer_Number_Placeholder,
During_Print_Exhaust_Fan
};
static const std::string& reserved_tag(ETags tag) { return Reserved_Tags[static_cast<unsigned char>(tag)]; }
@ -353,6 +354,12 @@ namespace Slic3r {
float time() const;
};
struct ExhaustFanInfo {
bool activate{ false };
int print_end_exhaust_fan_speed{0};
int print_end_exhaust_fan_time{0};
};
private:
struct TimeMachine
{
@ -448,6 +455,11 @@ namespace Slic3r {
// Additional load / unload times for a filament exchange sequence.
float filament_load_times;
float filament_unload_times;
// start fan x second before print complete
ExhaustFanInfo exhaust_fan_info;
mutable bool insert_fan_control_flag{false};
std::array<TimeMachine, static_cast<size_t>(PrintEstimatedStatistics::ETimeMode::Count)> machines;
void reset();
@ -613,7 +625,7 @@ namespace Slic3r {
private:
GCodeReader m_parser;
ExhaustFanInfo m_exhaust_fan_info;
EUnits m_units;
EPositioningType m_global_positioning_type;
EPositioningType m_e_local_positioning_type;