diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2019-10-31 10:16:10 +0200 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2019-10-31 10:16:10 +0200 |
| commit | cd18fb27a2499072f18cb0320ddeb85a0500a93e (patch) | |
| tree | b1bf1984813bc70ea4784e0e956497fd4fd35805 /Software/Embedded_SW/Embedded/Modules/Diagnostics | |
| parent | 4aca8247565596d6c12ba73242d599dc42887625 (diff) | |
| download | Tango-cd18fb27a2499072f18cb0320ddeb85a0500a93e.tar.gz Tango-cd18fb27a2499072f18cb0320ddeb85a0500a93e.zip | |
version 1.4.6.0 - going forward
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Diagnostics')
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; |
