#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);