/*
* MillisecTask.h
*
* Created on: 15 ���� 2018
* Author: shlomo
*/
#ifndef MODULES_CONTROL_MILLISECTASK_H_
#define MODULES_CONTROL_MILLISECTASK_H_
#include "drivers/adc_sampling/adc.h"
#include "control.h"
#include "drivers/Motors/Motor.h"
#include "drivers/Heater/TemperatureSensor.h"
typedef uint32_t (* MSecFptr)(uint32_t deviceID, uint32_t ReadValue);
int32_t MillisecWriteToMotor(TimerMotors_t MotorId, unsigned long Data, int Length, MSecFptr Callback);
int32_t MillisecMoveScrew(unsigned long Data, int Length, MSecFptr Callback);
int32_t MillisecSetScrewSpeed(unsigned long Data, int Length, MSecFptr Callback);
int32_t MillisecSetMotorSpeed(TimerMotors_t MotorId, unsigned long Data, int Length, MSecFptr Callback);
int32_t MillisecReadFromMotor(TimerMotors_t MotorId, unsigned long Data, int Length, MSecFptr Callback);
int MillisecFlushMsgQ(TimerMotors_t MotorId);
int32_t MillisecReadFromTempSensor(uint32_t TempSensorId, MSecFptr Callback);
int MillisecFlushMsgQ(TimerMotors_t MotorId);
/*
uint32_t getMotorStatusData(int MotorId);
uint32_t getMotorSpeedData(int MotorId);
uint32_t getTemperatureSensorData(int SensorId);
uint32_t getADCData(int DeviceId);
*/
float getSensorSpeedData(void);
uint32_t getDrawerFansStatus(void);
uint32_t getSystemFansStatus(void);
uint8_t getGasReading(void);
int MillisecGetTemperatures (TEMPERATURE_SENSOR_ID_ENUM SensorId);
float MillisecGetPressures (int SensorId);
void setRapidPressureRead(bool value);
void MillisecInit(void);
void MillisecStop(void);
void MillisecStart(void);
#ifdef HUNDRED_MICROSECONDS_DANCER_READ
void SaveLogData(void);
void MillisecLogInit(void);
void MillisecLogClose(void);
#endif
extern bool watchdogCriticalAlarm;
extern Task_Handle Millisecond_Task_Handle;
#endif /* MODULES_CONTROL_MILLISECTASK_H_ */