aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Diagnostics
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2019-10-31 10:16:10 +0200
committerShlomo Hecht <shlomo@twine-s.com>2019-10-31 10:16:10 +0200
commitcd18fb27a2499072f18cb0320ddeb85a0500a93e (patch)
treeb1bf1984813bc70ea4784e0e956497fd4fd35805 /Software/Embedded_SW/Embedded/Modules/Diagnostics
parent4aca8247565596d6c12ba73242d599dc42887625 (diff)
downloadTango-cd18fb27a2499072f18cb0320ddeb85a0500a93e.tar.gz
Tango-cd18fb27a2499072f18cb0320ddeb85a0500a93e.zip
version 1.4.6.0 - going forward
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Diagnostics')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c6
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c225
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c9
3 files changed, 178 insertions, 62 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c
index 4597efa93..9a81854e6 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticActions.c
@@ -271,6 +271,12 @@ uint32_t SetDigitalOutRequestRequestFunc(MessageContainer* requestContainer)
case INTERFACE_IOS__GPO_TFEED_BREAK_1:
Pumps_Control(WASTECH_PUMP2, request->value);
break;
+ case INTERFACE_IOS__GPO_BUZZER:
+ if (request->value == true)
+ Buzzer(MODE_ON);//use START or STOP, 0 - 100%();
+ else
+ Buzzer(MODE_OFF);//use START or STOP, 0 - 100%();
+ break;
default:
responseContainer.has_error = true;
responseContainer.error = ERROR_CODE__GENERAL_ERROR;
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
index 6db76e842..d4e1636a5 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/Diagnostics.c
@@ -63,7 +63,7 @@ uint32_t DiagnosticsStop(void);
uint32_t Diagnostics_ControlTrigger(uint32_t IfIndex, uint32_t ReadValue);
uint32_t Diagnostics_TenMiliControlTrigger(uint32_t IfIndex, uint32_t ReadValue);
uint32_t Diagnostics_OneSecControlTrigger(uint32_t IfIndex, uint32_t ReadValue);
-uint32_t DispensersCollection(uint32_t IfIndex, uint32_t ReadValue);
+uint32_t Diagnostics_OneMinControlTrigger(uint32_t IfIndex, uint32_t ReadValue);
DiagnosticsMonitors DiagnosticsMonitor = DIAGNOSTICS_MONITORS__INIT;
@@ -100,12 +100,16 @@ double dryerzone3temperature[DIAGNOSTICS_LIMIT+1];
double dispensermotorfrequency[MAX_SYSTEM_DISPENSERS][DIAGNOSTICS_LIMIT+1];
double dispenserspressure[MAX_SYSTEM_DISPENSERS][DIAGNOSTICS_LIMIT+1];
+double dispenserinklevel[MAX_SYSTEM_DISPENSERS][1];
+double midtankinklevel[MAX_SYSTEM_DISPENSERS][1];
double MidTankpressure[MAX_SYSTEM_DISPENSERS][1];
double HeatersCurrent[NUM_OF_CURRENT_HEATERS][1];
double VOC_Sensor;
DoubleArray DispenserFreq[MAX_SYSTEM_DISPENSERS];
DoubleArray DiagnosticsDispenserPressure[MAX_SYSTEM_DISPENSERS];
+DoubleArray DispenserInkLevel[MAX_SYSTEM_DISPENSERS];
+DoubleArray DiagnosticsMidTankInkLevel[MAX_SYSTEM_DISPENSERS];
HeaterState **heatersstates;
HeaterState HeaterInfo[HEATER_TYPE__MixerHeater+1];
@@ -136,6 +140,7 @@ typedef enum
DiagnosticsTrigger,
DiagnosticsTenMiliTrigger,
DiagnosticsOneSecTrigger,
+ DiagnosticsOneMinuteTrigger
}DiagnosticsMessages;
typedef struct DiagnosticsMessage{
@@ -164,14 +169,16 @@ void DiagnosticsInit(void)
DiagnosticsMsgQ = Mailbox_create(sizeof(DiagnosticsMessageStruc), 40, NULL,&eb);
- DiagnosticsMonitor.dispensersmotorsfrequency = (DoubleArray**)my_malloc(sizeof(DoubleArray *)*8);
- DiagnosticsMonitor.dispenserspressure = (DoubleArray**)my_malloc(sizeof(DoubleArray)*8);
- DiagnosticsMonitor.dispenserslinearpositions = (DoubleArray**)my_malloc(sizeof(DoubleArray)*8);
- DiagnosticsMonitor.dispensersangularencoders = (DoubleArray**)my_malloc(sizeof(DoubleArray)*8);
+ DiagnosticsMonitor.dispensersmotorsfrequency = (DoubleArray**)my_malloc(sizeof(DoubleArray *)*MAX_SYSTEM_DISPENSERS);
+ DiagnosticsMonitor.dispenserspressure = (DoubleArray**)my_malloc(sizeof(DoubleArray)*MAX_SYSTEM_DISPENSERS);
+ DiagnosticsMonitor.midtanksinklevel = (DoubleArray**)my_malloc(sizeof(DoubleArray)*MAX_SYSTEM_DISPENSERS);
+ DiagnosticsMonitor.dispensersinklevel = (DoubleArray**)my_malloc(sizeof(DoubleArray)*MAX_SYSTEM_DISPENSERS);
for (i = 0; i<MAX_SYSTEM_DISPENSERS;i++)
{
double_array__init(&DispenserFreq[i]);
double_array__init(&DiagnosticsDispenserPressure[i]);
+ double_array__init(&DiagnosticsMidTankInkLevel[i]);
+ double_array__init(&DispenserInkLevel[i]);
}
heatersstates = (HeaterState**)my_malloc(sizeof(HeaterState *)*(HEATER_TYPE__MixerHeater+1));
for(i=0;i<=HEATER_TYPE__MixerHeater;i++)
@@ -366,6 +373,7 @@ void DiagnosticTenMsecCollection(void)
return;
/*if (JobIsActive()== false)
return;*/
+
DiagnosticLoadDancer(WINDER_DANCER,Control_Read_Dancer_Position(WINDER_DANCER, 0,0));
DiagnosticLoadDancer(POOLER_DANCER,Control_Read_Dancer_Position(POOLER_DANCER, 0,0));
DiagnosticLoadDancer(FEEDER_DANCER,Control_Read_Dancer_Position(FEEDER_DANCER, 0,0));
@@ -376,6 +384,105 @@ void DiagnosticTenMsecCollection(void)
//DiagnosticLoadSpeedSensor(getSensorSpeedData());
}
+void DiagnosticOneMinuteCollection(void)
+{
+ int i;
+
+ DiagnosticsMonitor.n_dispensersinklevel = 0;
+ DiagnosticsMonitor.n_midtanksinklevel = 0;
+ for (i=0;i<MAX_SYSTEM_DISPENSERS;i++)
+ {
+ MidTankpressure[i][0] = Get_MidTank_Pressure_Sensor(i);
+ dispenserinklevel[i][0] = 1.00-(IDS_Dispenser_Data[i].consumedinnanolitter/5800000);
+ midtankinklevel[i][0] = Get_MidTank_Pressure_Sensor(i);
+ if (DiagnosticsMonitor.dispensersinklevel)
+ {
+ DiagnosticsMonitor.n_dispensersinklevel = MAX_SYSTEM_DISPENSERS;
+ //DiagnosticsDispenserPressure[i] = dispenserspressure[i];
+ //double_array__init(&DiagnosticsDispenserPressure[i]);
+ DispenserInkLevel[i].data = dispenserinklevel[i];
+ DispenserInkLevel[i].n_data = 1;
+ DiagnosticsMonitor.dispensersinklevel[i] = &DispenserInkLevel[i];
+ }
+ if (DiagnosticsMonitor.midtanksinklevel)
+ {
+ DiagnosticsMonitor.n_midtanksinklevel = MAX_SYSTEM_DISPENSERS;
+ //DiagnosticsDispenserPressure[i] = dispenserspressure[i];
+ //double_array__init(&DiagnosticsDispenserPressure[i]);
+ DiagnosticsMidTankInkLevel[i].data = midtankinklevel[i];
+ DiagnosticsMidTankInkLevel[i].n_data = 1;
+ DiagnosticsMonitor.midtanksinklevel[i] = &DiagnosticsMidTankInkLevel[i];
+ }
+
+ }
+
+ DiagnosticsMonitor.n_midtank1level = 1;
+ DiagnosticsMonitor.midtank1level = MidTankpressure[0];
+ DiagnosticsMonitor.n_midtank2level = 1;
+ DiagnosticsMonitor.midtank2level = MidTankpressure[1];
+ DiagnosticsMonitor.n_midtank3level = 1;
+ DiagnosticsMonitor.midtank3level = MidTankpressure[2];
+ DiagnosticsMonitor.n_midtank4level = 1;
+ DiagnosticsMonitor.midtank4level = MidTankpressure[3];
+ DiagnosticsMonitor.n_midtank5level = 1;
+ DiagnosticsMonitor.midtank5level = MidTankpressure[4];
+ DiagnosticsMonitor.n_midtank6level = 1;
+ DiagnosticsMonitor.midtank6level = MidTankpressure[5];
+ DiagnosticsMonitor.n_midtank7level = 1;
+ DiagnosticsMonitor.midtank7level = MidTankpressure[6];
+ DiagnosticsMonitor.n_midtank8level = 1;
+ DiagnosticsMonitor.midtank8level = MidTankpressure[7];
+
+ for (i=0;i<NUM_OF_CURRENT_HEATERS;i++)
+ {
+ if (Read_Head_MixChip_Heaters_Current(i) == true)
+ {
+ HeatersCurrent[i][0] = Get_Heaters_Current(i);
+ switch(i)
+ {
+ case HEATER_DRYER_CURRENT_1:
+ DiagnosticsMonitor.n_drierzone1heatercurrent = 1;
+ DiagnosticsMonitor.drierzone1heatercurrent = HeatersCurrent[HEATER_DRYER_CURRENT_1];
+ break;
+ case HEATER_DRYER_CURRENT_2:
+ DiagnosticsMonitor.n_drierzone2heatercurrent = 1;
+ DiagnosticsMonitor.drierzone2heatercurrent = HeatersCurrent[HEATER_DRYER_CURRENT_2];
+ break;
+ case HEATER_MIXCHIP_CURRENT:
+ DiagnosticsMonitor.n_mixer1heatercurrent = 1;
+ DiagnosticsMonitor.mixer1heatercurrent = HeatersCurrent[HEATER_MIXCHIP_CURRENT];
+ break;
+ case HEATER_HEAD_CURRENT_ZONE_1:
+ DiagnosticsMonitor.n_headzone1heatercurrent = 1;
+ DiagnosticsMonitor.headzone1heatercurrent = HeatersCurrent[HEATER_HEAD_CURRENT_ZONE_1];
+ break;
+ case HEATER_HEAD_CURRENT_ZONE_2:
+ DiagnosticsMonitor.n_headzone2heatercurrent = 1;
+ DiagnosticsMonitor.headzone2heatercurrent = HeatersCurrent[HEATER_HEAD_CURRENT_ZONE_2];
+ break;
+ case HEATER_HEAD_CURRENT_ZONE_3:
+ DiagnosticsMonitor.n_headzone3heatercurrent = 1;
+ DiagnosticsMonitor.headzone3heatercurrent = HeatersCurrent[HEATER_HEAD_CURRENT_ZONE_3];
+ break;
+ case HEATER_HEAD_CURRENT_ZONE_4:
+ DiagnosticsMonitor.n_headzone4heatercurrent = 1;
+ DiagnosticsMonitor.headzone4heatercurrent = HeatersCurrent[HEATER_HEAD_CURRENT_ZONE_4];
+ break;
+ case HEATER_HEAD_CURRENT_ZONE_5_6:
+ DiagnosticsMonitor.n_headzone5_6heatercurrent = 1;
+ DiagnosticsMonitor.headzone5_6heatercurrent = HeatersCurrent[HEATER_HEAD_CURRENT_ZONE_5_6];
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+ VOC_Sensor = (double) getGasReading();
+ DiagnosticsMonitor.n_filterdeltapressure = 1;
+ DiagnosticsMonitor.filterdeltapressure = &VOC_Sensor;
+
+}
void DiagnosticOneSecCollection(void)
{
int i;
@@ -396,11 +503,7 @@ void DiagnosticOneSecCollection(void)
//dispensermotorfrequency[i][DiagnosticsIndex] = IDS_Dispenser_Data[i].consumedinnanolitter;
dispenserspressure[i][DiagnosticsIndex] = GetDispenserPressure(i); //Read_MidTank_Pressure_Sensor
- //if (midtankDisplay)
- MidTankpressure[i][0] = Get_MidTank_Pressure_Sensor(i);
- //else
- // MidTankpressure[i][0] = 1.00-(IDS_Dispenser_Data[i].consumedinnanolitter/5800000);
- //double dispcapacity = (1.00-(IDS_Dispenser_Data[i].consumedinnanolitter/5800000))*130*1000*1000;
+
}
}
void Diagnostic100msecCollection(void)
@@ -410,7 +513,7 @@ void Diagnostic100msecCollection(void)
return;
//DiagnosticLoadSpeedSensor(getSensorSpeedData());
- if (DiagnosticMode == Diagnostic_Extreme_Mode)
+ if (DiagnosticMode == Diagnostic_Extended_Mode)
DiagnosticTenMsecCollection(); //call the 10msec function every 100 msec to reduce transport
if (DiagnosticMode >= Diagnostic_Extended_Mode)
@@ -448,13 +551,7 @@ void Diagnostic100msecCollection(void)
MidTankpressure[i][0] = 1.00-(IDS_Dispenser_Data[i].consumedinnanolitter/5800000);
}
*/
- if (DiagnosticMode == Diagnostic_Extreme_Mode)
- {
- for (i=0;i<NUM_OF_CURRENT_HEATERS;i++)
- {
- HeatersCurrent[i][0] = Get_Heaters_Current(i);
- }
- }
+
/*dispenser1motorfrequency[DiagnosticsIndex] = MotorGetSpeed(HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1);
dispenser2motorfrequency[DiagnosticsIndex] = MotorGetSpeed(HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_2);
dispenser3motorfrequency[DiagnosticsIndex] = MotorGetSpeed(HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_3);
@@ -620,6 +717,7 @@ void SendDiagnostics(void)
DiagnosticsMonitor.dispenserspressure[i] = &DiagnosticsDispenserPressure[i];
}
}
+
/**/
DiagnosticsMonitor.n_dispenserslinearpositions = 0;
DiagnosticsMonitor.n_dispensersangularencoders = 0;
@@ -642,43 +740,6 @@ void SendDiagnostics(void)
DiagnosticsMonitor.dispenser8pressure = dispenserspressure[7];
- DiagnosticsMonitor.n_midtank1level = 1;
- DiagnosticsMonitor.midtank1level = MidTankpressure[0];
- DiagnosticsMonitor.n_midtank2level = 1;
- DiagnosticsMonitor.midtank2level = MidTankpressure[1];
- DiagnosticsMonitor.n_midtank3level = 1;
- DiagnosticsMonitor.midtank3level = MidTankpressure[2];
- DiagnosticsMonitor.n_midtank4level = 1;
- DiagnosticsMonitor.midtank4level = MidTankpressure[3];
- DiagnosticsMonitor.n_midtank5level = 1;
- DiagnosticsMonitor.midtank5level = MidTankpressure[4];
- DiagnosticsMonitor.n_midtank6level = 1;
- DiagnosticsMonitor.midtank6level = MidTankpressure[5];
- DiagnosticsMonitor.n_midtank7level = 1;
- DiagnosticsMonitor.midtank7level = MidTankpressure[6];
- DiagnosticsMonitor.n_midtank8level = 1;
- DiagnosticsMonitor.midtank8level = MidTankpressure[7];
-
- DiagnosticsMonitor.n_drierzone1heatercurrent = 1;
- DiagnosticsMonitor.drierzone1heatercurrent = HeatersCurrent[HEATER_DRYER_CURRENT_1];
- DiagnosticsMonitor.n_drierzone2heatercurrent = 1;
- DiagnosticsMonitor.drierzone2heatercurrent = HeatersCurrent[HEATER_DRYER_CURRENT_2];
- DiagnosticsMonitor.n_mixer1heatercurrent = 1;
- DiagnosticsMonitor.mixer1heatercurrent = HeatersCurrent[HEATER_MIXCHIP_CURRENT];
- DiagnosticsMonitor.n_headzone1heatercurrent = 1;
- DiagnosticsMonitor.headzone1heatercurrent = HeatersCurrent[HEATER_HEAD_CURRENT_ZONE_1];
- DiagnosticsMonitor.n_headzone2heatercurrent = 1;
- DiagnosticsMonitor.headzone2heatercurrent = HeatersCurrent[HEATER_HEAD_CURRENT_ZONE_2];
- DiagnosticsMonitor.n_headzone3heatercurrent = 1;
- DiagnosticsMonitor.headzone3heatercurrent = HeatersCurrent[HEATER_HEAD_CURRENT_ZONE_3];
- DiagnosticsMonitor.n_headzone4heatercurrent = 1;
- DiagnosticsMonitor.headzone4heatercurrent = HeatersCurrent[HEATER_HEAD_CURRENT_ZONE_4];
- DiagnosticsMonitor.n_headzone5_6heatercurrent = 1;
- DiagnosticsMonitor.headzone5_6heatercurrent = HeatersCurrent[HEATER_HEAD_CURRENT_ZONE_5_6];
-
- VOC_Sensor = (double) getGasReading();
- DiagnosticsMonitor.n_filterdeltapressure = 1;
- DiagnosticsMonitor.filterdeltapressure = &VOC_Sensor;
response.monitors = &DiagnosticsMonitor;
//response.digitalpins = DigitalPinArray;
@@ -742,10 +803,31 @@ void SendDiagnostics(void)
DiagnosticsStop();
}
DiagnosticsReset();
+/* DiagnosticsMonitor.n_drierzone1heatercurrent = 0;
+ DiagnosticsMonitor.n_drierzone2heatercurrent = 0;
+ DiagnosticsMonitor.n_mixer1heatercurrent = 0;
+ DiagnosticsMonitor.n_headzone1heatercurrent = 0;
+ DiagnosticsMonitor.n_headzone2heatercurrent = 0;
+ DiagnosticsMonitor.n_headzone3heatercurrent = 0;
+ DiagnosticsMonitor.n_headzone4heatercurrent = 0;
+ DiagnosticsMonitor.n_headzone5_6heatercurrent = 0;
+ DiagnosticsMonitor.n_filterdeltapressure = 0;
+ DiagnosticsMonitor.n_midtank1level = 0;
+ DiagnosticsMonitor.n_midtank2level = 0;
+ DiagnosticsMonitor.n_midtank3level = 0;
+ DiagnosticsMonitor.n_midtank4level = 0;
+ DiagnosticsMonitor.n_midtank5level = 0;
+ DiagnosticsMonitor.n_midtank6level = 0;
+ DiagnosticsMonitor.n_midtank7level = 0;
+ DiagnosticsMonitor.n_midtank8level = 0;
+ DiagnosticsMonitor.n_dispensersinklevel = 0;
+ DiagnosticsMonitor.n_midtanksinklevel = 0;
+*/
}
uint32_t DiagnosticsControlId = 0xff;
uint32_t Diagnostics10MSControlId = 0xff;
uint32_t Diagnostics1SecControlId = 0xff;
+uint32_t Diagnostics1MinControlId = 0xFF;
bool DiagnosticRequestAccepted = false;
uint32_t DiagnosticsStart(void)
{
@@ -756,17 +838,21 @@ uint32_t DiagnosticsStart(void)
{
DiagnosticsActive = true;
if (DiagnosticsControlId == 0xFF)
- DiagnosticsControlId = AddControlCallback(Diagnostics_ControlTrigger,DiagnosticLimit,TemplateDataReadCBFunction,0,0,0);
+ DiagnosticsControlId = AddControlCallback(NULL,Diagnostics_ControlTrigger,DiagnosticLimit,TemplateDataReadCBFunction,0,0,0);
else
LOG_ERROR(DiagnosticsControlId,"Diagnostics restarted");
if (Diagnostics10MSControlId == 0xFF)
- Diagnostics10MSControlId = AddControlCallback(Diagnostics_TenMiliControlTrigger,DiagnosticFastLimit,TemplateDataReadCBFunction,0,0,0);
+ Diagnostics10MSControlId = AddControlCallback(NULL,Diagnostics_TenMiliControlTrigger,DiagnosticFastLimit,TemplateDataReadCBFunction,0,0,0);
else
LOG_ERROR(DiagnosticsControlId,"Diagnostics restarted");
if (Diagnostics1SecControlId == 0xFF)
- Diagnostics1SecControlId = AddControlCallback(Diagnostics_OneSecControlTrigger,eOneSecond,TemplateDataReadCBFunction,0,0,0);
+ Diagnostics1SecControlId = AddControlCallback(NULL,Diagnostics_OneSecControlTrigger,eOneSecond,TemplateDataReadCBFunction,0,0,0);
else
LOG_ERROR(Diagnostics1SecControlId,"Diagnostics restarted");
+ if (Diagnostics1MinControlId == 0xFF)
+ Diagnostics1MinControlId = AddControlCallback(NULL,Diagnostics_OneMinControlTrigger,eOneMinute,TemplateDataReadCBFunction,0,0,0);
+ else
+ LOG_ERROR(Diagnostics1MinControlId,"Diagnostics restarted");
}
}
@@ -783,10 +869,13 @@ uint32_t DiagnosticsStop(void)
RemoveControlCallback(Diagnostics10MSControlId,Diagnostics_TenMiliControlTrigger);
if (Diagnostics1SecControlId != 0xFF)
RemoveControlCallback(Diagnostics1SecControlId,Diagnostics_OneSecControlTrigger);
+ if (Diagnostics1MinControlId != 0xFF)
+ RemoveControlCallback(Diagnostics1MinControlId,Diagnostics_OneMinControlTrigger);
DiagnosticsControlId = 0xFF;
Diagnostics10MSControlId = 0xFF;
Diagnostics1SecControlId = 0xFF;
+ Diagnostics1MinControlId = 0xFF;
}
return OK;
@@ -848,7 +937,6 @@ uint32_t Diagnostics_TenMiliControlTrigger(uint32_t IfIndex, uint32_t ReadValue)
if (DiagnosticMode == Diagnostic_Extreme_Mode)
{
- //send message to the Millisec task
Message.messageId = DiagnosticsTenMiliTrigger;
Message.msglen = sizeof(DiagnosticsMessageStruc);
if (DiagnosticsMsgQ != NULL)
@@ -861,7 +949,6 @@ uint32_t Diagnostics_OneSecControlTrigger(uint32_t IfIndex, uint32_t ReadValue)
{
DiagnosticsMessageStruc Message;
- //send message to the Millisec task
Message.messageId = DiagnosticsOneSecTrigger;
Message.msglen = sizeof(DiagnosticsMessageStruc);
if (DiagnosticsMsgQ != NULL)
@@ -870,6 +957,18 @@ uint32_t Diagnostics_OneSecControlTrigger(uint32_t IfIndex, uint32_t ReadValue)
return OK;
}
+uint32_t Diagnostics_OneMinControlTrigger(uint32_t IfIndex, uint32_t ReadValue)
+{
+ DiagnosticsMessageStruc Message;
+
+ Message.messageId = DiagnosticsOneMinuteTrigger;
+ Message.msglen = sizeof(DiagnosticsMessageStruc);
+ if (DiagnosticsMsgQ != NULL)
+ Mailbox_post(DiagnosticsMsgQ , &Message, BIOS_NO_WAIT);
+
+
+ return OK;
+}
/******************************************************************************
* ======== messageTsk ========
* Task for this function is created statically. See the project's .cfg file.
@@ -893,11 +992,15 @@ void DiagnosticsTask(UArg arg0, UArg arg1)
Diagnostic100msecCollection();
break;
case DiagnosticsTenMiliTrigger:
- DiagnosticTenMsecCollection();
+ if (DiagnosticMode >= Diagnostic_Extreme_Mode)
+ DiagnosticTenMsecCollection();
break;
case DiagnosticsOneSecTrigger:
DiagnosticOneSecCollection();
break;
+ case DiagnosticsOneMinuteTrigger:
+ DiagnosticOneMinuteCollection();
+ break;
default:
break;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c
index 14c083b4d..497556878 100644
--- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c
+++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c
@@ -27,6 +27,7 @@
#include "drivers/Motors/Motor.h"
#include "drivers/Valves/Valve.h"
#include "Drivers/I2C_Communication/DAC/blower.h"
+#include "drivers/Flash_ram/MCU_E2Prom.h"
#include "ids/ids_ex.h"
#include "General/process.h"
@@ -57,7 +58,7 @@ return OK;
uint32_t MotorHomingRequestFunc(MessageContainer* requestContainer)
{
uint32_t numberOfSteps = 0;
- uint32_t LoadArmRounds = (int)dryerbufferlength;
+ uint32_t LoadArmRounds = 0;
MessageContainer responseContainer;
@@ -66,6 +67,12 @@ uint32_t MotorHomingRequestFunc(MessageContainer* requestContainer)
MotorHomingResponse response = MOTOR_HOMING_RESPONSE__INIT;
TimerMotors_t MotorId = (TimerMotors_t)request->motortype;
+
+ if (dryerbufferlength)
+ LoadArmRounds = (int)dryerbufferlength;
+ else
+ MCU_E2PromRead(EEPROM_STORAGE_DRYER_CYCLES,&LoadArmRounds);
+
if (LoadArmRounds <= 2)
LoadArmRounds = 20;