diff options
| author | Avi Levkovich <avi@twine-s.com> | 2020-03-25 17:46:56 +0200 |
|---|---|---|
| committer | Avi Levkovich <avi@twine-s.com> | 2020-03-25 17:46:56 +0200 |
| commit | aa732a33f7c63ce4438ec2b79fedb641ffd22b05 (patch) | |
| tree | 86ccf57c1dfb6801de16f15d681539c02b007508 /Software/Embedded_SW/Embedded | |
| parent | d29da53d6f71f45749c0ede5b4cd7281ed3a270e (diff) | |
| parent | 8f57d4962fa84499c8a153ebfff6e7766434ee1c (diff) | |
| download | Tango-aa732a33f7c63ce4438ec2b79fedb641ffd22b05.tar.gz Tango-aa732a33f7c63ce4438ec2b79fedb641ffd22b05.zip | |
merge conflicts -take remote
Diffstat (limited to 'Software/Embedded_SW/Embedded')
13 files changed, 96 insertions, 41 deletions
diff --git a/Software/Embedded_SW/Embedded/.cproject b/Software/Embedded_SW/Embedded/.cproject index e2a02d701..43a3b15aa 100644 --- a/Software/Embedded_SW/Embedded/.cproject +++ b/Software/Embedded_SW/Embedded/.cproject @@ -441,7 +441,7 @@ </toolChain> </folderInfo> <sourceEntries> - <entry excluding="Drivers/I2C_Communication/RFID_NFC/NFC_I2C|Drivers/I2C_Communication/RFID_NFC/PN7150|Drivers/I2C_Communication/Head_Card/ADC/Head_ADC_old.c|EmbParam.cfg|JigCommands.c|PWM.c|USBCDCD.c|Message.c|Pin_config.c|src|Configuration.c|SlowMotors.c|Timer.c|Communication.c|FastMotors.c|ADCUtils.c|Drivers/L6470|Pin.c|ADCLogger.c|Flashstore.c|Profile.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> + <entry excluding="EmbParam.cfg|Drivers/Uart_Comm/Uart.c|JigCommands.c|PWM.c|USBCDCD.c|Message.c|Pin_config.c|src|Configuration.c|SlowMotors.c|Timer.c|Communication.c|FastMotors.c|ADCUtils.c|Drivers/L6470|Pin.c|ADCLogger.c|Flashstore.c|Profile.c" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/> </sourceEntries> </configuration> </storageModule> diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c index 6715e8e42..feac91829 100644 --- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c +++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c @@ -140,7 +140,7 @@ uint32_t FileUploadRequestFunc(MessageContainer* requestContainer) { responseContainer.has_error = true; responseContainer.error = getErrorCode(Fresult); - responseContainer.errormessage = "File operation error"; + responseContainer.errormessage = "File operation upload request error"; } responseContainer.continuous = false; uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); @@ -226,7 +226,7 @@ uint32_t FileChunkUploadRequestFunc(MessageContainer* requestContainer) { responseContainer.has_error = true; responseContainer.error = getErrorCode(Fresult); - responseContainer.errormessage = "File operation error"; + responseContainer.errormessage = "File operation chunk upload error"; } responseContainer.continuous = false; uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); @@ -316,7 +316,7 @@ uint32_t FileDownloadRequestFunc(MessageContainer* requestContainer) { responseContainer.has_error = true; responseContainer.error = getErrorCode(Fresult); - responseContainer.errormessage = "File operation error"; + responseContainer.errormessage = "File operation download request error"; } responseContainer.continuous = false; uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); @@ -381,7 +381,7 @@ uint32_t FileChunkDownloadRequestFunc(MessageContainer* requestContainer) { responseContainer.has_error = true; responseContainer.error = getErrorCode(Fresult); - responseContainer.errormessage = "File operation error"; + responseContainer.errormessage = "File operation chunk download error"; } responseContainer.continuous = false; uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); @@ -409,7 +409,7 @@ uint32_t ExecuteProcessRequestFunc(MessageContainer* requestContainer) { responseContainer.has_error = true; responseContainer.error = ERROR_CODE__GENERAL_ERROR;//getErrorCode(Fresult); - responseContainer.errormessage = "File operation error"; + responseContainer.errormessage = "File operation execute error"; } responseContainer.continuous = false; uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); @@ -436,7 +436,7 @@ uint32_t KillProcessRequestFunc(MessageContainer* requestContainer) { responseContainer.has_error = true; responseContainer.error = ERROR_CODE__GENERAL_ERROR;//getErrorCode(Fresult); - responseContainer.errormessage = "File operation error"; + responseContainer.errormessage = "File operation kill error"; } responseContainer.continuous = false; uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); @@ -460,6 +460,8 @@ uint32_t CreateRequestFunc(MessageContainer* requestContainer) if (isDirectory(request->attribute)) { Fresult = f_mkdir(request->path); + if (Fresult == FR_EXIST) + Fresult = FR_OK; //ingnore f_exist in directory create } else { @@ -470,7 +472,7 @@ uint32_t CreateRequestFunc(MessageContainer* requestContainer) { if (Semaphore_pend(FFS_Sem, BIOS_NO_WAIT)) { - Fresult = f_open(UploadFileHandle,request->path,FA_CREATE_NEW); + Fresult = f_open(UploadFileHandle,request->path,FA_READ | FA_WRITE | FA_OPEN_ALWAYS | FA_CREATE_ALWAYS); if (Fresult == FR_OK) { if (f_close (UploadFileHandle)!= FR_OK) @@ -490,7 +492,8 @@ uint32_t CreateRequestFunc(MessageContainer* requestContainer) if (Fresult != FR_OK) { //status = ERROR_CODE__FILE_NOT_FOUND; - usnprintf(ErrorMsg, 100, "File Operation failed error code %d",Fresult); + //usnprintf(ErrorMsg, 100, "File Operation failed error code %d",Fresult); + Report("File Operation failed error code", __FILE__, __LINE__, Fresult, RpWarning, (int)0, 0); } free (UploadFileHandle); @@ -500,7 +503,7 @@ uint32_t CreateRequestFunc(MessageContainer* requestContainer) { responseContainer.has_error = true; responseContainer.error = getErrorCode(Fresult); - responseContainer.errormessage = "File operation error"; + responseContainer.errormessage = "File operation create error"; } responseContainer.continuous = false; uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); @@ -540,10 +543,10 @@ uint32_t DeleteRequestFunc(MessageContainer* requestContainer) responseContainer = createContainer(MESSAGE_TYPE__DeleteResponse, requestContainer->token, false, &response, &delete_response__pack, &delete_response__get_packed_size); if (Fresult!= OK) { - usnprintf(ErrorMsg, 100, "File Operation failed error code %d",Fresult); + //usnprintf(ErrorMsg, 100, "File Operation failed error code %d",Fresult); responseContainer.has_error = true; responseContainer.error = getErrorCode(Fresult); - responseContainer.errormessage = ErrorMsg; + responseContainer.errormessage = "File operation delete error"; } responseContainer.continuous = false; uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); @@ -590,7 +593,7 @@ uint32_t GetStorageInfoRequestFunc(MessageContainer* requestContainer) { responseContainer.has_error = true; responseContainer.error = getErrorCode(Fresult); - responseContainer.errormessage = "File operation error"; + responseContainer.errormessage = "File operation get storage info error"; } responseContainer.continuous = false; uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); @@ -719,7 +722,7 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer) { responseContainer.has_error = true; responseContainer.error = getErrorCode(Fresult); - responseContainer.errormessage = "File operation error"; + responseContainer.errormessage = "File operation get files error"; } responseContainer.continuous = false; uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer)); diff --git a/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c b/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c index 6c2e35f76..e2c5d2171 100644 --- a/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c +++ b/Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c @@ -20,7 +20,7 @@ typedef struct } TangoVersion_t; -TangoVersion_t _gTangoVersion = {1,4,6,16}; +TangoVersion_t _gTangoVersion = {1,4,6,18}; #define BUILD_DATE __DATE__ char Dat[50] = BUILD_DATE; char _gTangoName [MAX_STRING_LEN] = "Tango01 ";//d diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c index d9a25aa61..00b48d3d8 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c @@ -422,6 +422,12 @@ bool FPGA_Read_limit_Switches(FPGA_GPI_ENUM Limit_Switch) case GPI_LS_DH_CLEAN_DOWN: LM_Status = Ls_Dryer_Dh.bits.F1_LS_DH_CLEAN_DOWN; break; + case GPI_LS_LSPARE1: + LM_Status = LS_Left.bits.F1_LS_LSPARE1; + break; + case GPI_LS_LSPARE2: + LM_Status = LS_Left.bits.F1_LS_LSPARE2; + break; case I2C_HEADCARD_COVER_LS_FRONT: if(Head_Type == HEAD_TYPE_SYLKO) LM_Status = !(Head_I2C_EXP4_0x46.bits.INPUT_LS_FRONT); diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/Full_Vme/FPGA_Programming_Up.c b/Software/Embedded_SW/Embedded/Drivers/FPGA/Full_Vme/FPGA_Programming_Up.c index 04a52a6af..aa645baa6 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/Full_Vme/FPGA_Programming_Up.c +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/Full_Vme/FPGA_Programming_Up.c @@ -23,6 +23,7 @@ extern short int main_vme(); +bool FPGABurningActive = false; FPGA_JTAG_GPIO FPGA_JTAG; FIL *FileHandlevme = 0; @@ -96,13 +97,14 @@ FRESULT FPGA_Programming_Up(FPGA_ID FPGA_Id, char * FullPath, bool IncludeReboot { return(fresult); } + FPGABurningActive = true; Report(FullPath,__FILE__,__LINE__,CurrentFileSize,RpWarning,0,0); StopInitSequence(); HeatersEnd(); fresult = main_vme(); CurrentRunningFile++; Report(FullPath,__FILE__,__LINE__,CurrentRunningFile,RpWarning,1,0); - + FPGABurningActive = false; } diff --git a/Software/Embedded_SW/Embedded/Drivers/FPGA/Full_Vme/FPGA_Programming_Up.h b/Software/Embedded_SW/Embedded/Drivers/FPGA/Full_Vme/FPGA_Programming_Up.h index b752f24b3..75e712497 100644 --- a/Software/Embedded_SW/Embedded/Drivers/FPGA/Full_Vme/FPGA_Programming_Up.h +++ b/Software/Embedded_SW/Embedded/Drivers/FPGA/Full_Vme/FPGA_Programming_Up.h @@ -36,6 +36,7 @@ typedef struct FRESULT FPGA_Programming_Request(FPGA_ID FPGA_Id, char * FullPath, bool IncludeReboot); //direct blocking call FRESULT FPGA_Programming_Up(FPGA_ID FPGA_Id, char * FullPath, bool IncludeReboot); +extern bool FPGABurningActive; #endif /* DRIVERS_FPGA_FULL_VME_FPGA_PROGRAMMING_UP_H_ */ diff --git a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c index 9d7cdbe4c..0b5d8ebc2 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c +++ b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c @@ -202,6 +202,14 @@ int TemperatureListString(char* str) ,TempSensorResponse[MIXER_PT100].Temperature_C_mult_by_100/100); //Prepare H1: 78 H2: 111 H3: 137 H4: 135 H5: 144 H6: 75 D1: 120 D2: 167 D3: 158 M: 129 } + if(Head_Type == HEAD_TYPE_STAPLE_SPUN) + { + len = usnprintf(str, 160, "Prepare H1: ,%d, H2: ,%d, H3: ,%d, AL1: AR1: M: ,%d, D: ,%d,", + TempSensorResponse[HEAD_PT100_ZONE_1_0X80_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_ZONE_2_0X80_1].Temperature_C_mult_by_100/100, + TempSensorResponse[HEAD_PT100_ZONE_3_0X82_0].Temperature_C_mult_by_100/100, + TempSensorResponse[HEAD_PT100_AIR_HEATER_1_0X8C_0].Temperature_C_mult_by_100/100, TempSensorResponse[HEAD_PT100_AIR_HEATER_2_0X8C_1].Temperature_C_mult_by_100/100, + TempSensorResponse[HEAD_PT100_MIXER_0X8E_0].Temperature_C_mult_by_100/100, TempSensorResponse[TEMP_SENSE_ANALOG_DRYER_TEMP1].Temperature_C_mult_by_100/100); + } else { len = usnprintf(str, 150, "Unknown head type"); diff --git a/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c b/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c index d679cbb01..b7b54455d 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c +++ b/Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c @@ -70,7 +70,7 @@ FPGA_GPI_ENUM Motor_Id_to_LS_IdDown[NUM_OF_MOTORS] = { // limit switch for n GPI_LS_SCREW_RIGHT, //MOTO_SCREW = 14, MAX_GPI, //MOTO_WINDER = 15, GPI_LS_LDANCER1_DOWN, //MOTO_LDANCER1 = 16, - GPI_LS_LDANCER2_DOWN, //MOTO_LDANCER2 = 17, + GPI_LS_LSPARE2, //MOTO_LDANCER2 = 17, MAX_GPI, //MOTO_LDRIVING = 18, GPI_LS_LLOADMOTOR_DOWN, //MOTO_LLOADING = 19, GPI_LS_LPIVOT_DOWN, //MOTO_LPIVOT1 = 20, @@ -97,7 +97,7 @@ FPGA_GPI_ENUM Motor_Id_to_LS_IdUp[NUM_OF_MOTORS] = { // limit switch for nor GPI_LS_SCREW_LEFT, //MOTO_SCREW = 14, MAX_GPI, //MOTO_WINDER = 15, GPI_LS_LDANCER1_UP, //MOTO_LDANCER1 = 16, - GPI_LS_LDANCER2_UP, //MOTO_LDANCER2 = 17, + GPI_LS_LSPARE1, //MOTO_LDANCER2 = 17, MAX_GPI, //MOTO_LDRIVING = 18, GPI_LS_LLOADMOTOR_UP, //MOTO_LLOADING = 19, GPI_LS_LPIVOT_UP, //MOTO_LPIVOT1 = 20, @@ -845,8 +845,8 @@ void MotorActionsInit(void) } if (Head_Type == HEAD_TYPE_SYLKO)//adjust the limit switches { - Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DH_LID] = I2C_HEADCARD_COVER_LS_REAR; - Motor_Id_to_LS_IdUp [HARDWARE_MOTOR_TYPE__MOTO_DH_LID] = I2C_HEADCARD_COVER_LS_FRONT; + Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DH_LID] = I2C_HEADCARD_COVER_LS_FRONT; + Motor_Id_to_LS_IdUp [HARDWARE_MOTOR_TYPE__MOTO_DH_LID] = I2C_HEADCARD_COVER_LS_REAR ; } } diff --git a/Software/Embedded_SW/Embedded/Modules/Control/control.c b/Software/Embedded_SW/Embedded/Modules/Control/control.c index bea68e314..0f9848ba1 100644 --- a/Software/Embedded_SW/Embedded/Modules/Control/control.c +++ b/Software/Embedded_SW/Embedded/Modules/Control/control.c @@ -51,6 +51,7 @@ #include <PMR/Diagnostics/EventType.pb-c.h> +#include "drivers/FPGA/Full_Vme/FPGA_Programming_Up.h" #include "drivers/adc_sampling/adc.h" #include "drivers/FPGA/FPGA_GPIO/FPGA_GPIO.h" #include "drivers/FPGA/FPGA_SPI_Comm.h" @@ -181,19 +182,22 @@ uint32_t ControlActivityLed( uint32_t Parameter1) ACTIVITY_RED_LED_OFF; // Heaters indication - all the Heaters OFF if(FPGA_WD_Occurred == true) { - FPGA_WD_Occurred = false; - AlarmHandlingSetAlarm(EVENT_TYPE__FPGA_WATCHDOG_ACTIVATED,true); - if (JobIsActive()) + if (FPGABurningActive == false) { - JobEndReason = JOB_MOTOR_ALARM; - SendJobProgress(0.0,0,false, "Hardware Failure Error"); - AbortJob("FPGA Watchdog Error"); - } - ReportWithPackageFilter(FPGAFilter, "FPGA Watchdog Error",__FILE__,__LINE__,0,RpError, 0,0); + FPGA_WD_Occurred = false; + AlarmHandlingSetAlarm(EVENT_TYPE__FPGA_WATCHDOG_ACTIVATED,true); + if (JobIsActive()) + { + JobEndReason = JOB_MOTOR_ALARM; + SendJobProgress(0.0,0,false, "Hardware Failure Error"); + AbortJob("FPGA Watchdog Error"); + } + ReportWithPackageFilter(FPGAFilter, "FPGA Watchdog Error",__FILE__,__LINE__,0,RpError, 0,0); - ACTIVITY_GREEN_LED_ON; - FPGA_SetMotorsInit(); - Motor_ReconfigAllMotors(); + ACTIVITY_GREEN_LED_ON; + FPGA_SetMotorsInit(); + Motor_ReconfigAllMotors(); + } } else ACTIVITY_GREEN_LED_OFF; diff --git a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c index 685542722..1f596ba56 100644 --- a/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c +++ b/Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c @@ -39,7 +39,7 @@ char HomingToken[NUM_OF_MOTORS][36+1]={0}; /******************************************************************************** * Motor Homing ********************************************************************************/ -int32_t keepkvalright,keepkvalleft; +//int32_t keepkvalright,keepkvalleft; uint32_t MotorHomingRequestCallback(uint32_t deviceID, uint32_t ReadValue) { @@ -48,11 +48,11 @@ uint32_t MotorHomingRequestCallback(uint32_t deviceID, uint32_t ReadValue) if(deviceID == HARDWARE_MOTOR_TYPE__MOTO_RLOADING) { - MotorSetKvalRun(HARDWARE_MOTOR_TYPE__MOTO_RLOADING, keepkvalright); + MotorSetKvalRun(HARDWARE_MOTOR_TYPE__MOTO_RLOADING, 24); } if(deviceID == HARDWARE_MOTOR_TYPE__MOTO_LLOADING) { - MotorSetKvalRun(HARDWARE_MOTOR_TYPE__MOTO_LLOADING, keepkvalleft); + MotorSetKvalRun(HARDWARE_MOTOR_TYPE__MOTO_LLOADING, 24); } responseContainer = createContainer(MESSAGE_TYPE__MotorHomingResponse, HomingToken[deviceID], true, &response, &motor_homing_response__pack, &motor_homing_response__get_packed_size); responseContainer.has_continuous = true; @@ -119,12 +119,12 @@ uint32_t MotorHomingRequestFunc(MessageContainer* requestContainer) { if(MotorId == HARDWARE_MOTOR_TYPE__MOTO_RLOADING) { - keepkvalright = MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RLOADING].kvalrun; + //keepkvalright = MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RLOADING].kvalrun; MotorSetKvalRun(HARDWARE_MOTOR_TYPE__MOTO_RLOADING, 70); } if(MotorId == HARDWARE_MOTOR_TYPE__MOTO_LLOADING) { - keepkvalleft = MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LLOADING].kvalrun; + //keepkvalleft = MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LLOADING].kvalrun; MotorSetKvalRun(HARDWARE_MOTOR_TYPE__MOTO_LLOADING, 70); } MotorMovetoLimitSwitch (MotorId,1-MotorsCfg[MotorId].directionthreadwize, speed, Motor_Id_to_LS_IdUp[MotorId], MotorHomingRequestCallback,30000); @@ -166,6 +166,16 @@ uint32_t MotorHomingRequestFunc(MessageContainer* requestContainer) } if ( Motor_Id_to_LS_IdUp[MotorId] != MAX_GPI) { + if(MotorId == HARDWARE_MOTOR_TYPE__MOTO_RLOADING) + { + //keepkvalright = MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RLOADING].kvalrun; + MotorSetKvalRun(HARDWARE_MOTOR_TYPE__MOTO_RLOADING, 70); + } + if(MotorId == HARDWARE_MOTOR_TYPE__MOTO_LLOADING) + { + //keepkvalleft = MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LLOADING].kvalrun; + MotorSetKvalRun(HARDWARE_MOTOR_TYPE__MOTO_LLOADING, 70); + } MotorMovetoLimitSwitch (MotorId,MotorsCfg[MotorId].directionthreadwize, speed, Motor_Id_to_LS_IdDown[MotorId], MotorHomingRequestCallback,10000); return OK; } diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c index 946eae0ec..698852f00 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c @@ -415,7 +415,8 @@ CallbackCounter++; //MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID].directionthreadwize, 200, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, 0, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); - Trigger_Head_Actuators_Control(ACTOT, LOW,true); + Trigger_Head_Actuators_Control(ACTOT, LOW,false); + Trigger_Head_Actuators_Control(ACTIN, LOW,false); return OK; } uint32_t Thread_Load_Lift_Dancers(void) @@ -427,6 +428,8 @@ MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_RDANCER,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDANCER].directionthreadwize, 15, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_RDANCER], Thread_Load_HomingCallback,15000);*/ CallbackCounter++; MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_LDANCER1,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].directionthreadwize, 500, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1], Thread_Load_HomingCallback,25000); + CallbackCounter++; + MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_LDANCER2,1-MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2].directionthreadwize, 500, Motor_Id_to_LS_IdUp[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2], Thread_Load_HomingCallback,25000); return OK; } @@ -509,6 +512,11 @@ // MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_LDANCER1,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].directionthreadwize, 500, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1], Thread_Load_HomingCallback,25000); MotorMoveWithCallback (HARDWARE_MOTOR_TYPE__MOTO_LDANCER1, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].directionthreadwize, (5000*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].microstep), Thread_Load_HomingCallback,20000); + CallbackCounter++; + MotorSetMaxSpeed (HARDWARE_MOTOR_TYPE__MOTO_LDANCER2, 500); + +// MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_LDANCER1,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1].directionthreadwize, 500, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_LDANCER1], Thread_Load_HomingCallback,25000); + MotorMoveWithCallback (HARDWARE_MOTOR_TYPE__MOTO_LDANCER2, MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2].directionthreadwize, (5000*MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LDANCER2].microstep), Thread_Load_HomingCallback,20000); return OK; } @@ -523,7 +531,8 @@ CallbackCounter++; // MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID].directionthreadwize, 200, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); MotorGotoWithCallback(HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID, 2, Motor_Id_to_LS_IdDown[HARDWARE_MOTOR_TYPE__MOTO_DRYER_LID], Thread_Load_HomingCallback,10000); - Trigger_Head_Actuators_Control(ACTOT, LOW,false); + Trigger_Head_Actuators_Control(ACTOT, LOW,true); + Trigger_Head_Actuators_Control(ACTIN, LOW,true); return OK; } uint32_t Thread_Load_Resume_Heating(void) diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index 26d7ea854..be6644067 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -868,10 +868,10 @@ uint32_t HandleJobThreadControlParameters(ThreadParameters* ThreadParams) ////////////////////////////////////////////////// for (i = 0;i < (int)MotorsControl[Motor_i].pvinputfilterfactormode; i++) { - if (Motor_i == DRYER_MOTOR) // dryer motor is speed controlled. later a speed sensor will be utilized, but for now it will not be controlled + //if (Motor_i == DRYER_MOTOR) // dryer motor is speed controlled. later a speed sensor will be utilized, but for now it will not be controlled MotorSamples[Motor_i][i] = Control_Read_Dancer_Position(ThreadMotorIdToDancerId[Motor_i],0); //reset the samples value for control beginning - else if ((Motor_i == POOLER_MOTOR)||(Motor_i == FEEDER_MOTOR)) - MotorSamples[Motor_i][i] = DancersCfg[ThreadMotorIdToDancerId[Motor_i]].zeropoint; + // else if ((Motor_i == POOLER_MOTOR)||(Motor_i == FEEDER_MOTOR)) + // MotorSamples[Motor_i][i] = DancersCfg[ThreadMotorIdToDancerId[Motor_i]].zeropoint; //MotorSpeedSamples[Motor_i][i] = 0; } MotorSamplePointer[Motor_i] = 0; diff --git a/Software/Embedded_SW/Embedded/Software Release Notes.txt b/Software/Embedded_SW/Embedded/Software Release Notes.txt index 4ce158426..7640e88de 100644 --- a/Software/Embedded_SW/Embedded/Software Release Notes.txt +++ b/Software/Embedded_SW/Embedded/Software Release Notes.txt @@ -1,3 +1,15 @@ +Embedded SW Release note - Version 1.4.6.17 - Pack 1 +============================================================= +fixed file system bug that caused disconnection. +fixed error messages bug +RML - thread PID parameters added +RML - arc head support +RML - blower head flow control. +Power control. +preparation for waste tank calibration. +basic support for new LTFU (not for loading, yet) + + Embedded SW Release note - Version 1.4.6.12 - Pack 1 Urgent ============================================================= Main features: support new head and new WHS, support Powerstep01 motor drivers |
