diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2021-01-04 23:40:17 +0200 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2021-01-04 23:40:17 +0200 |
| commit | 4070df75dc74431946374f00d0570ea3776f2d32 (patch) | |
| tree | 3a26fcb6b63236f9ac8325f7bb39db40b37e060c | |
| parent | 23f536059dd646d60097134579b8c523ad2855e2 (diff) | |
| download | Tango-4070df75dc74431946374f00d0570ea3776f2d32.tar.gz Tango-4070df75dc74431946374f00d0570ea3776f2d32.zip | |
improve BTSR keeping
7 files changed, 130 insertions, 43 deletions
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) { diff --git a/Software/Stubs Collection/stubs/EvalBoardLedsTest.cs b/Software/Stubs Collection/stubs/EvalBoardLedsTest.cs new file mode 100644 index 000000000..7cd0b6818 --- /dev/null +++ b/Software/Stubs Collection/stubs/EvalBoardLedsTest.cs @@ -0,0 +1,76 @@ +using System; +using System.Text; +using System.Linq; +using System.Drawing; +using System.Diagnostics; +using System.Windows.Forms; +using System.Threading; +using System.Threading.Tasks; +using System.Collections.Generic; +using Tango.PMR.Stubs; +using Tango.Stubs; + +public void OnExecute(StubManager stubManager) +{ + +StubGPIOWriteBitRequest speed = new StubGPIOWriteBitRequest(); +speed.PortId = "F"; +speed.PinId = 1; +speed.BitToWrite = false; +StubGPIOWriteBitRequest link = new StubGPIOWriteBitRequest(); +link.PortId = "K"; +link.PinId = 4; +link.BitToWrite = false; +StubGPIOWriteBitRequest Activity = new StubGPIOWriteBitRequest(); +Activity.PortId = "K"; +Activity.PinId = 6; +Activity.BitToWrite = false; +StubGPIOWriteBitRequest Q7 = new StubGPIOWriteBitRequest(); +Q7.PortId = "Q"; +Q7.PinId = 7; +Q7.BitToWrite = false; +StubGPIOWriteBitRequest N5 = new StubGPIOWriteBitRequest(); +N5.PortId = "N"; +N5.PinId = 5; +N5.BitToWrite = false; + +var response = stubManager.Run<StubGPIOWriteBitRequest>(speed); +response = stubManager.Run<StubGPIOWriteBitRequest>(link); +response = stubManager.Run<StubGPIOWriteBitRequest>(Activity); +Thread.Sleep(2000); + for (int i = 1; i<100000000; i++) + { + speed.BitToWrite = (i%3>0)?true:false; + link.BitToWrite = (i%4>0)?true:false; + Activity.BitToWrite = (i%5>0)?true:false; + response = stubManager.Run<StubGPIOWriteBitRequest>(speed); + Thread.Sleep(10); + response = stubManager.Run<StubGPIOWriteBitRequest>(link); + Thread.Sleep(10); + response = stubManager.Run<StubGPIOWriteBitRequest>(Activity); + Thread.Sleep(10); + Q7.BitToWrite = (i%7>3)?true:false; + response = stubManager.Run<StubGPIOWriteBitRequest>(Q7); + Thread.Sleep(10); + N5.BitToWrite = (i%11>4)?true:false; + response = stubManager.Run<StubGPIOWriteBitRequest>(N5); + Thread.Sleep(10); + Thread.Sleep(100); + } + speed.BitToWrite = true; + link.BitToWrite = true; + Activity.BitToWrite = true; + response = stubManager.Run<StubGPIOWriteBitRequest>(speed); + Thread.Sleep(10); + response = stubManager.Run<StubGPIOWriteBitRequest>(link); + Thread.Sleep(10); + response = stubManager.Run<StubGPIOWriteBitRequest>(Activity); + Thread.Sleep(10); + Q7.BitToWrite = false; + response = stubManager.Run<StubGPIOWriteBitRequest>(Q7); + Thread.Sleep(10); + N5.BitToWrite = false; + response = stubManager.Run<StubGPIOWriteBitRequest>(N5); + Thread.Sleep(10); + +}
\ No newline at end of file |
