/*
* BuiltInTest.c
*
* Created on: jAN 5 2021
* Author: shlomo
* This file includes the BuiltInTest indication handling functions:
* Motors, heaters, temperature sensors,pressure sensors,dancers
*/
#include "drivers/Motors/Motor.h"
#include "drivers/Heater/TemperatureSensor.h"
#include "drivers/FPGA/FPGA_SPI_Comm.h"
#include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h"
#include "drivers/FPGA/FPGA.h"
#include "drivers/I2C_Communication/Dispenser_Card/IO_Ports/Dispenser_IO.h"
#include <PMR/Diagnostics/EventType.pb-c.h>
#include "Modules/General/GeneralHardware.h"
#include "modules/control/control.h"
#include "modules/AlarmHandling/AlarmHandling.h"
#include "modules/thread/thread_ex.h"
#include "modules/heaters/heaters_ex.h"
#include "modules/ids/ids_ex.h"
uint32_t BuiltInTestControlId;
uint32_t BuiltInTest_VoltageMeter(uint32_t IfIndex)
{
return OK;
}
uint32_t BuiltInTest_I2C_Comm(uint32_t IfIndex)
{
return OK;
}
uint32_t BuiltInTest_UART_Comm(uint32_t IfIndex)
{
return OK;
}
uint32_t BuiltInTest_Blower(uint32_t IfIndex)
{
return OK;
}
uint32_t BuiltInTest_Fan(uint32_t IfIndex)
{
return OK;
}
uint32_t BuiltInTest_Encoders(uint32_t IfIndex)
{
return OK;
}
uint32_t BuiltInTest_Heater(uint32_t IfIndex)
{
return OK;
}
uint32_t BuiltInTest_Dispenser(uint32_t IfIndex)
{
return OK;
}
uint32_t BuiltInTest_PressureSensor(uint32_t IfIndex)
{
return OK;
}
uint32_t BuiltInTest_PT_Sensor(uint32_t IfIndex)
{
return OK;
}
uint32_t BuiltInTest_Motor(uint32_t IfIndex)
{
return OK;
}
uint32_t BuiltInTest_Main_State(uint32_t IfIndex, uint32_t BusyFlag)
{
uint8_t Motor_i,Heater_i,PT_Sensor_i,Dispenser_i;
uint32_t Status = OK;
/*
*
*Test motors (configured, used(4x,arc,flat, btsr)),
*Test heaters (if cold, current)
*Test pt100,
*Test pressure sensors (dispensers, head, whs)
*Test ???
One report on init, define a way to report multiple failures.
*/
BuiltInTest_VoltageMeter(0);
BuiltInTest_I2C_Comm(I2C2_BASE);
BuiltInTest_I2C_Comm(I2C3_BASE);
BuiltInTest_I2C_Comm(I2C4_BASE);
BuiltInTest_UART_Comm(0);
for (Motor_i = 0; Motor_i<NUM_OF_MOTORS;Motor_i++)
{
if (isMotorConfigured(Motor_i))
{
Status |= BuiltInTest_Motor(Motor_i);
}
}
for (Heater_i = 0; Heater_i<HEATER_TYPE_MAX_HEATERS;Heater_i++)
{
//if (isHeaterConfigured(Heater_i))
{
Status |= BuiltInTest_Heater(Heater_i);
}
}
for (PT_Sensor_i = 0; PT_Sensor_i<MAX_HEAD_CARD_TEMP_SENS_ID_1;PT_Sensor_i++)
{
//if (isHeaterConfigured(PT_Sensor_i))
{
Status |= BuiltInTest_PT_Sensor(PT_Sensor_i);
}
}
for (Dispenser_i = 0; Dispenser_i<MAX_SYSTEM_DISPENSERS;Dispenser_i++)
{
//if (isDispenserConfigured(Dispenser_i))
{
Status |= BuiltInTest_Dispenser(Dispenser_i);
}
}
//Status |= BuiltInTest_PressureSensor(HEAD_FLOW_METER);
//Status |= BuiltInTest_PressureSensor(NU_FLOW_METER);
//Status |= BuiltInTest_PressureSensor(DRIER_FLOW_METER);
//Status |= BuiltInTest_PressureSensor(TUNNEL_SENSOR_IN);
//Status |= BuiltInTest_PressureSensor(TUNNEL_SENSOR_OUT);
//Test motors
return OK;
}
void BuiltInTest_Start(void)
{
BuiltInTestControlId = AddControlCallback("BuiltInTest", BuiltInTest_Main_State, eOneSecond, TemplateDataReadCBFunction,0,0, 0 );
//return;
}