aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2020-03-25 17:46:56 +0200
committerAvi Levkovich <avi@twine-s.com>2020-03-25 17:46:56 +0200
commitaa732a33f7c63ce4438ec2b79fedb641ffd22b05 (patch)
tree86ccf57c1dfb6801de16f15d681539c02b007508 /Software/Embedded_SW/Embedded
parentd29da53d6f71f45749c0ede5b4cd7281ed3a270e (diff)
parent8f57d4962fa84499c8a153ebfff6e7766434ee1c (diff)
downloadTango-aa732a33f7c63ce4438ec2b79fedb641ffd22b05.tar.gz
Tango-aa732a33f7c63ce4438ec2b79fedb641ffd22b05.zip
merge conflicts -take remote
Diffstat (limited to 'Software/Embedded_SW/Embedded')
-rw-r--r--Software/Embedded_SW/Embedded/.cproject2
-rw-r--r--Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c29
-rw-r--r--Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c6
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/FPGA/Full_Vme/FPGA_Programming_Up.c4
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/FPGA/Full_Vme/FPGA_Programming_Up.h1
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.c8
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/Motors/MotorActions.c8
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Control/control.c26
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Diagnostics/DiagnosticsHoming.c20
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/ThreadLoad.c13
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c6
-rw-r--r--Software/Embedded_SW/Embedded/Software Release Notes.txt12
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