aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h
blob: 7e3f6252f01abb1af6d64405eb8096deb35033d9 (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
#include "Drivers/Heater/Heater.h"

#include "PMR/common/MessageContainer.pb-c.h"
#include "PMR/Hardware/HardwarePidControl.pb-c.h"
#include "PMR/Diagnostics/HeaterType.pb-c.h"
#include "PMR/Diagnostics/HeaterState.pb-c.h"
#include "PMR/Diagnostics/EventType.pb-c.h"

#define MAX_HEATERS_NUM  HARDWARE_PID_CONTROL_TYPE__MixerHeater+1

extern EventType HeaterEventType[HEATER_TYPE_MAX_HEATERS];
extern EventType HeaterUnderEventType[HEATER_TYPE_MAX_HEATERS];
extern EventType HeaterUnderEventType_B[HEATER_TYPE_MAX_HEATERS];
extern bool specialHeaterState;

extern uint32_t stub_heating_limit;
//uint32_t HeaterCommandRequestMessage(MessageContainer* requestContainer);
uint32_t HeaterConfigRequestMessage(HardwarePidControl* request);
uint32_t HeaterConfigSetSharedHeatersParams (uint32_t outputproportionalcycletime, uint32_t outputproportionalsinglestep);
void HeatingTestSendResonse(uint32_t status, bool last,bool heater1Active,bool heater2Active, int temperature1, int temperature2,int Heater1Percentage,int Heater2Percentage, char* Message);

uint32_t  HeaterCommandRequestMessage(int HeaterId, bool OnOff, int Temperature);
void HeatingTestRequest(MessageContainer* requestContainer);
void HeatingTestPollRequest(MessageContainer* requestContainer);
void SetHeaterStateRequestFunc(MessageContainer* requestContainer);


bool HeaterCheckReady(void);
bool isHeaterReady(uint8_t HeaterId);
void HeaterPrepareFailureCheck(void);

bool HeaterGetOverTemperatureState(uint8_t HeaterId);
void Set_Voltage_Hysteresis (double Hysteresis);

void LoadHeaterState(HeaterType HeaterType,HeaterState *HeaterState);

uint32_t LoadHeaterSetPoint(HeaterType HeaterType);

void Heaters_SetOverHeatTimeOutValues(uint32_t OverHeatTimeout, uint32_t UnderHeatTimeout);
void  Heaters_SetOperationLimits(int acheatersloweroperationlimit,int acheatersupperoperationlimit,int dcheatersloweroperationlimit,int dcheatersupperoperationlimit);

uint32_t DrierHeaterVoltageSetup(void);
//this function returns preparation ratio for the most cool heater (current temperature/ target temerature)
double HeatersPrepareProgress(void);

uint32_t HeatersEnd(void);
void HeatersControlStart(void);
void HeatersControlStop(void);
uint32_t Heaters_Init(void);
double PressureSensorGetPressure(uint8_t FanId);
int HeadBlowersGetRPM(uint8_t fanId);
uint32_t PressureSensorInit();
void HeadBlowersInit();
uint32_t HeadBlowerPidRequestMessage(void* request, int BlowerId);
void HeadBlowersCfg();
void HeadBlowersControlLoop ();
void FlatHeadAlarms(void);
uint32_t  HeadBlowerCommandRequestMessage(int blowerId, float flow);
void HeadBlowersOff(int off);
uint32_t HeadBlowersOffGet();
uint32_t HeadBlowersV0Init(void);
void Set_Head_Blowers_Parameters(float cp,float b);