Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Heat.h - github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/Heat.h
blob: 78188af612e119e96e7b82314b48ea608f70aead (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/****************************************************************************************************

RepRapFirmware - Heat

This is all the code to deal with heat and temperature.

-----------------------------------------------------------------------------------------------------

Version 0.1

18 November 2012

Adrian Bowyer
RepRap Professional Ltd
http://reprappro.com

Licence: GPL

****************************************************************************************************/

#ifndef HEAT_H
#define HEAT_H

class PID
{
  public:
  
    PID(Platform* p, int8_t h);
    void Init();
    void Spin();
    void SetActiveTemperature(const float& t);
    void SetStandbyTemperature(const float& t);
    void Activate();
    void Standby();
    float GetTemperature();
  
  private:
  
    Platform* platform;
    float activeTemperature;
    float standbyTemperature;
    float temperature;
    float lastTemperature;
    float temp_iState;
    float temp_dState;
    bool active;
    int8_t heater;
};

class Heat
{
    
  public:
  
    Heat(Platform* p, GCodes* g);
    void Spin();
    void Init();
    void Exit();
    void SetActiveTemperature(int8_t heater, const float& t);
    void SetStandbyTemperature(int8_t heater, const float& t);
    void Activate(int8_t heater);
    void Standby(int8_t heater);
    float GetTemperature(int8_t heater);
    void Diagnostics();
    
  private:
  
    Platform* platform;
    GCodes* gCodes;
    bool active;
    PID* pids[HEATERS];
    float lastTime;
};


//***********************************************************************************************************

inline void PID::SetActiveTemperature(const float& t)
{
  activeTemperature = t;
}

inline void PID::SetStandbyTemperature(const float& t)
{
  standbyTemperature = t;
}

inline float PID::GetTemperature()
{
  return temperature;
}

inline void PID::Activate()
{
  active = true;
}

inline void PID::Standby()
{
  active = false;
}

inline void Heat::SetActiveTemperature(int8_t heater, const float& t)
{
  pids[heater]->SetActiveTemperature(t);
}

inline void Heat::SetStandbyTemperature(int8_t heater, const float& t)
{
  pids[heater]->SetStandbyTemperature(t);
}

inline float Heat::GetTemperature(int8_t heater)
{
  return pids[heater]->GetTemperature();
}

inline void Heat::Activate(int8_t heater)
{
  pids[heater]->Activate();
}

inline void Heat::Standby(int8_t heater)
{
  pids[heater]->Standby();
}

#endif