/*
* AlarmHandling.h
*
* Created on: 24 ���� 2018
* Author: shlomo
*/
#ifndef MODULES_ALARMHANDLING_ALARMHANDLING_H_
#define MODULES_ALARMHANDLING_ALARMHANDLING_H_
#include "StateMachines/Printing/PrintingSTM.h"
#include <PMR/Diagnostics/EventType.pb-c.h>
extern int MotorConfiguredTimeout;
uint32_t AlarmHandlingFlashLoad(void);
uint32_t AlarmHandlingLoadFile(void);
void AlarmHandlingInit(void);
uint32_t AlarmHandling_ControlTrigger(uint32_t IfIndex, uint32_t ReadValue);
//uint32_t AlarmHandling_CalculateTemperatures(uint32_t SensorId, uint32_t Data);
uint32_t AlarmHandlingEmptyCBFunction(uint32_t IfIndex, uint32_t ReadValue);
uint32_t AlarmHandlingStart(void);
uint32_t AlarmHandlingStop(void);
void AlarmHandlingSetAlarm(uint32_t AlarmId, bool Value);
JobEndReasonEnum AlarmHandlingPrepareJob(void *CurrentJob);
bool FileAnalysisGetState(void);
extern char AlarmReasonStr[100];
uint32_t StartEventsNotificationRequestFunc(MessageContainer* requestContainer);
uint32_t StopEventsNotificationRequestFunc(MessageContainer* requestContainer);
uint32_t ResolveEventRequestFunc(MessageContainer* requestContainer);
void AlarmHandlingSetFlags(bool checkHardLimitAlarms,bool checkCurrentAlarms, bool checkTamperAlarms, bool checkMotorAlarms);
void AlarmHandlingSetCurrentLimits(double currentalarmhighlimit,double currentalarmlowlimit);
#endif /* MODULES_ALARMHANDLING_ALARMHANDLING_H_ */