From 4070df75dc74431946374f00d0570ea3776f2d32 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Mon, 4 Jan 2021 23:40:17 +0200 Subject: improve BTSR keeping --- .../Embedded/Drivers/Motors/MotorActions.c | 2 +- .../Embedded/Drivers/flash_ram/MCU_E2Prom.c | 45 +++++++++++++++++++++- .../Embedded/Drivers/flash_ram/MCU_E2Prom.h | 3 ++ .../Embedded_SW/Embedded/Modules/IDS/IDS_print.c | 5 +++ .../StateMachines/Initialization/PowerIdle.c | 2 +- .../Embedded/StateMachines/Printing/JobSTM.c | 40 ------------------- 6 files changed, 54 insertions(+), 43 deletions(-) (limited to 'Software/Embedded_SW') diff --git a/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c b/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c index e90f0622e..00fd2b440 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c +++ b/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c @@ -317,7 +317,7 @@ uint32_t MotorRunCallBackFunction(uint32_t IfIndex, uint32_t ReadValue) //TODO if (failCounter>=8) { Report("arm stopped",__FILE__,failCounter,encoder,RpWarning,temp,0); - MotorStop(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM,Hard_Hiz); + MotorStop(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LOADARM,Hard_Stop); RunningContinues = false; } } diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c index cfa8c2382..91d04872e 100644 --- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c +++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.c @@ -22,7 +22,7 @@ #include "PMR/EmbeddedParameters/MainCardStoredDataResponse.pb-c.h" #include "PMR/EmbeddedParameters/MainCardStoredDataRequest.pb-c.h" #include "PMR/EmbeddedParameters/MainCardStoredItem.pb-c.h" - +#include "PMR/Printing/BTSRParameters.pb-c.h" uint32_t E2Prom_Data[MAX_EEPROM_STORAGE] = {0,0,0,0,0,0}; uint32_t MCU_E2PromProgram(int Address,uint32_t Data) @@ -362,4 +362,47 @@ void MainCardEEpromWriteRequestFunc(MessageContainer* requestContainer) stub_main_card_eeprom_write_request__free_unpacked(request,NULL); } +uint32_t BtsrSaveParamsToEeprom(void *Data) +{ + BTSRParameters* BtsrPrameters = Data; + uint32_t status = 0; + float data; + data = BtsrPrameters->feedingtension; + status |= MCU_E2PromProgram(EEPROM_BTSR_FEEDING_TENSION, data); + status |= MCU_E2PromProgram(EEPROM_BTSR_TYPE, BtsrPrameters->btsryarntype); + status |= MCU_E2PromProgram(EEPROM_BTSR_APPLICATION, BtsrPrameters->btsrapplicationtype); + data = BtsrPrameters->threadlengthfactor; + status |= MCU_E2PromProgram(EEPROM_BTSR_LENGTH_OFFSET, data); + data = BtsrPrameters->tensionerror; + status |= MCU_E2PromProgram(EEPROM_BTSR_TENSION_ERROR, data); + data = BtsrPrameters->spooltension; + status |= MCU_E2PromProgram(EEPROM_BTSR_SPOOL_TENSION, data); + data = BtsrPrameters->exittension; + status |= MCU_E2PromProgram(EEPROM_BTSR_EXIT_TENSION, data); + return status; +} + +uint32_t BtsrReadParamsFromEeprom(void *Data) +{ + BTSRParameters* BtsrPrameters = Data; + uint32_t status = 0; + float data; + status |= MCU_E2PromRead(EEPROM_BTSR_FEEDING_TENSION, &data); + BtsrPrameters->feedingtension = data; + status |= MCU_E2PromRead(EEPROM_BTSR_TYPE, &data); + BtsrPrameters->btsryarntype = data; + status |= MCU_E2PromRead(EEPROM_BTSR_APPLICATION, &data); + BtsrPrameters->btsrapplicationtype = data; + status |= MCU_E2PromRead(EEPROM_BTSR_LENGTH_OFFSET, &data); + BtsrPrameters->threadlengthfactor = data; + status |= MCU_E2PromRead(EEPROM_BTSR_TENSION_ERROR, &data); + BtsrPrameters->tensionerror = data; + status |= MCU_E2PromRead(EEPROM_BTSR_SPOOL_TENSION, &data); + BtsrPrameters->spooltension = data; + status |= MCU_E2PromRead(EEPROM_BTSR_EXIT_TENSION, &data); + BtsrPrameters->exittension = data; + Report("BtsrReadParamsFromEeprom",__FILE__,__LINE__,(int)(BtsrPrameters->feedingtension*1000),RpWarning,(int)(BtsrPrameters->tensionerror*1000),(int)(BtsrPrameters->exittension*1000)); + Report("BtsrReadParamsFromEeprom",__FILE__,__LINE__,(int)(BtsrPrameters->btsrapplicationtype),RpWarning,(int)(BtsrPrameters->btsryarntype),(int)(BtsrPrameters->threadlengthfactor*1000)); + return status; +} diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h index cffdea68b..24f229b2c 100644 --- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h +++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/MCU_E2Prom.h @@ -96,6 +96,9 @@ void MainCardEEpromReadRequestFunc(MessageContainer* requestContainer); uint32_t MCU_E2PromEmbeddedVersionProgram(void); uint32_t MCU_E2PromEmbeddedVersionRead(); +uint32_t BtsrReadParamsFromEeprom(void *); +uint32_t BtsrSaveParamsToEeprom(void *); + extern char Serial[21]; diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c index 71bae1f40..eb5f12136 100644 --- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c +++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c @@ -859,6 +859,11 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl TargetNumberOfStepsPreRun = InitialDispenserTimeout; MaximalPressurePreRun = InitialDispenserPressure; + if(Head_Type == HEAD_TYPE_ARC) + { + MotorMovetoLimitSwitch(HARDWARE_MOTOR_TYPE__MOTO_DH_LID,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DH_LID].directionthreadwize, 30, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DH_LID], NULL,30000); + } + for (Motor_i = 0;Motor_i < MAX_SYSTEM_DISPENSERS;Motor_i++) { TimerMotors_t HW_Motor_Id = DispenserIdToMotorId[Motor_i]; diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c index 17166a095..4ab177244 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerIdle.c @@ -115,7 +115,7 @@ void PowerIdleSetIdle(void) if (HandleProcessParameters(&ProcessParametersClear,false)!= OK) { LOG_ERROR (1, "Turn Heaters idle failed"); - return; + //return; } if (BlowerCfg.enabled == true) { diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c index ab5e68b46..9f5151117 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c @@ -134,8 +134,6 @@ static ReturnCode ExitState(void *JobDetails); //static ReturnCode (* state[])(void *JobDetails) = { IdleState, ValidateState, PrepareState, PrintState, CleanState}; void AbortJob(char *Msg); void HandleJobEnd(JobEndReasonEnum JobEndReason); -uint32_t BtsrSaveParamsToEeprom(BTSRParameters *BtsrPrameters); -uint32_t BtsrReadParamsFromEeprom(BTSRParameters *BtsrPrameters); typedef enum { @@ -1448,44 +1446,6 @@ uint32_t ResumeCurrentJobRequestFunc(MessageContainer* requestContainer) return OK; } -uint32_t BtsrSaveParamsToEeprom(BTSRParameters *BtsrPrameters) -{ - uint32_t status = 0; - - status |= MCU_E2PromProgram(EEPROM_BTSR_FEEDING_TENSION, (uint32_t)(BtsrPrameters->feedingtension*10)); - status |= MCU_E2PromProgram(EEPROM_BTSR_TYPE, (uint32_t)(BtsrPrameters->btsryarntype)); - status |= MCU_E2PromProgram(EEPROM_BTSR_APPLICATION, (uint32_t)(BtsrPrameters->btsrapplicationtype)); - status |= MCU_E2PromProgram(EEPROM_BTSR_LENGTH_OFFSET, (uint32_t)(BtsrPrameters->threadlengthfactor)); - status |= MCU_E2PromProgram(EEPROM_BTSR_TENSION_ERROR, (uint32_t)(BtsrPrameters->tensionerror*10)); - status |= MCU_E2PromProgram(EEPROM_BTSR_SPOOL_TENSION, (uint32_t)(BtsrPrameters->spooltension)); - status |= MCU_E2PromProgram(EEPROM_BTSR_EXIT_TENSION, (uint32_t)(BtsrPrameters->exittension)); - return status; -} - -uint32_t BtsrReadParamsFromEeprom(BTSRParameters *BtsrPrameters) -{ - uint32_t status = 0; - uint32_t feedingtension, type, application, lengthoffset; - uint32_t tensionerror, spooltension, exittension; - - status |= MCU_E2PromRead(EEPROM_BTSR_FEEDING_TENSION, &feedingtension); - BtsrPrameters->feedingtension = ((double)feedingtension)/10; - status |= MCU_E2PromRead(EEPROM_BTSR_TYPE, &type); - BtsrPrameters->btsryarntype = type; - status |= MCU_E2PromRead(EEPROM_BTSR_APPLICATION, &application); - BtsrPrameters->btsrapplicationtype = application; - status |= MCU_E2PromRead(EEPROM_BTSR_LENGTH_OFFSET, &lengthoffset); - BtsrPrameters->threadlengthfactor = lengthoffset; - status |= MCU_E2PromRead(EEPROM_BTSR_TENSION_ERROR, &tensionerror); - BtsrPrameters->tensionerror = ((double)tensionerror)/10; - status |= MCU_E2PromRead(EEPROM_BTSR_SPOOL_TENSION, &spooltension); - BtsrPrameters->spooltension = spooltension; - status |= MCU_E2PromRead(EEPROM_BTSR_EXIT_TENSION, &exittension); - BtsrPrameters->exittension = exittension; - Report("BtsrReadParamsFromEeprom",__FILE__,__LINE__,(int)(feedingtension),RpWarning,(int)(tensionerror),(int)exittension); - Report("BtsrReadParamsFromEeprom",__FILE__,__LINE__,(int)(application),RpWarning,(int)(type),(int)lengthoffset); - return status; -} void StartJob(void *JobDetails) { -- cgit v1.3.1