48 lines
1.3 KiB
C
48 lines
1.3 KiB
C
|
#ifndef DVT_FILAMENTCLASS_H
|
||
|
#define DVT_FILAMENTCLASS_H
|
||
|
|
||
|
|
||
|
#include "DVT_Types.h"
|
||
|
#include "DVT_MainClass.h"
|
||
|
|
||
|
class Filament {
|
||
|
private:
|
||
|
DVT_State_t CurState;
|
||
|
bool Heat = false;
|
||
|
public:
|
||
|
Filament(bool State) {
|
||
|
this->CurState.State = State;
|
||
|
FILAMENT_SWITCH.SetState(State);
|
||
|
}
|
||
|
void SetFilamentState(bool State) {
|
||
|
if (State != this->CurState.State) {
|
||
|
this->CurState.State = State;
|
||
|
this->CurState.Time = millis();
|
||
|
FILAMENT_SWITCH.SetState(State);
|
||
|
debugMSG("New State : " + String(this->CurState.State) + " Time: " + String(this->CurState.Time));
|
||
|
} else {
|
||
|
debugMSG("Same as Old State : " + String(this->CurState.State) + " Time: " + String(this->CurState.Time));
|
||
|
}
|
||
|
}
|
||
|
bool GetFilamentState() {
|
||
|
return FILAMENT_SWITCH.GetState();
|
||
|
}
|
||
|
bool Heated() {
|
||
|
if (this->CurState.State == HIGH && this->CurState.Time + PreHeatTime <= millis() && Heat == false) {
|
||
|
Heat = true;
|
||
|
sysMSG("SYSTEM: Heated");
|
||
|
return true;
|
||
|
}
|
||
|
if (Heat && this->CurState.State == LOW && this->CurState.Time + CoolDownTime <= millis() && Heat == true) {
|
||
|
Heat = false;
|
||
|
sysMSG("SYSTEM: Cold");
|
||
|
}
|
||
|
return Heat;
|
||
|
}
|
||
|
};
|
||
|
|
||
|
Filament FILAMENT = Filament(false);
|
||
|
|
||
|
|
||
|
#endif
|