aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c2
-rw-r--r--Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c2
-rw-r--r--Software/Embedded_SW/Embedded/Common/Utilities/ustdlib.c2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/FPGA/FPGA_GPIO/FPGA_GPIO.c3
-rw-r--r--Software/Embedded_SW/Embedded/Main.c5
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c56
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/process.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c7
-rw-r--r--Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c4
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c4
-rw-r--r--Software/Stubs Collection/stubs/reload main card EEPROM.cs48
12 files changed, 79 insertions, 62 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
index 77efa1cfd..f3d42b01a 100644
--- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
+++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
@@ -119,7 +119,7 @@ uint32_t FileUploadRequestFunc(MessageContainer* requestContainer)
CommRxTaskHandle = Task_self();
CommRxpri = Task_getPri(CommRxTaskHandle);
Task_setPri(CommRxTaskHandle, 11);
- Report("Task_setPri", __FILE__, __LINE__, 4, RpWarning, (int)CommRxTaskHandle, 0);
+ Report("Task_setPri", __FILE__, __LINE__, 11, RpWarning, (int)CommRxTaskHandle, 0);
//Report("FileUploadRequestFunc 2", __FILE__, __LINE__, msec_millisecondCounter, RpWarning, (int)0, 0);
Fresult = f_open(UploadFileHandle,request->path,FA_READ | FA_WRITE | FA_OPEN_ALWAYS | FA_CREATE_ALWAYS);
if (Fresult == FR_OK)
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 8d2d9462a..da4b66b4e 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,5,3,0};
+TangoVersion_t _gTangoVersion = {1,5,3,1};
#define BUILD_DATE __DATE__
char Dat[50] = BUILD_DATE;
diff --git a/Software/Embedded_SW/Embedded/Common/Utilities/ustdlib.c b/Software/Embedded_SW/Embedded/Common/Utilities/ustdlib.c
index 749152b2e..420e1dbc3 100644
--- a/Software/Embedded_SW/Embedded/Common/Utilities/ustdlib.c
+++ b/Software/Embedded_SW/Embedded/Common/Utilities/ustdlib.c
@@ -819,7 +819,7 @@ usnprintf(char * restrict s, size_t n, const char * restrict format, ...)
//
// Call vsnprintf to perform the conversion.
//
- ret = vsnprintf(s, n, format, arg);
+ ret = uvsnprintf(s, n, format, arg);
//
// End the varargs processing.
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 080522d0d..c37bbc437 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
@@ -1136,9 +1136,10 @@ uint8_t Init_Machine_Leds()
bool Is_AnyCartridge_presence()
{
bool IsAnyCartPresent = true;
+ uint16_t cartridgesPresence = BIT5 | BIT6 | BIT7;
#ifndef EVALUATION_BOARD
- if(F3_CARTx_PRES_02_Direct & (BIT5 | BIT6 | BIT7))
+ if(F3_CARTx_PRES_02_Direct & (cartridgesPresence)==cartridgesPresence)
IsAnyCartPresent = false;
#endif
diff --git a/Software/Embedded_SW/Embedded/Main.c b/Software/Embedded_SW/Embedded/Main.c
index e6455e46c..3485a1de2 100644
--- a/Software/Embedded_SW/Embedded/Main.c
+++ b/Software/Embedded_SW/Embedded/Main.c
@@ -25,6 +25,7 @@
#include "drivers/Motors/Motor.h"
#include "Communication/CommunicationTask.h"
+#include "Drivers/I2C_Communication/Head_Card/IO_Ports/Head_IO.h"
#include <xdc/runtime/Error.h>
#include <xdc/runtime/System.h>
@@ -148,6 +149,10 @@ Void errHook(Error_Block *eb)
STATUS_GREEN_LED_OFF;
ACTIVITY_GREEN_LED_OFF;
COMM_GREEN_LED_OFF;
+ Head_I2C_EXP1_0x40.ushort = 0;
+ Head_I2C_EXP2_0x42.ushort = 0;
+ Head_Write_IO_Reg(0x40,LOW_AND_HIGH);
+ Head_Write_IO_Reg(0x42,LOW);
STATUS_RED_LED_ON;
ACTIVITY_RED_LED_ON;
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index eceb92d63..0086d6934 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -671,7 +671,7 @@ JobEndReasonEnum getEndReason(uint32_t AlarmId)
return JOB_OTHER_ALARM;
}
case ALARM_SOURCE_TYPE__FluidLevelAlarm:
- usnprintf(AlarmReasonStr, 100, "Midtank %d is empty",AlarmItem[AlarmId].DeviceId);
+ usnprintf(AlarmReasonStr, 100, "Midtank %d is empty",AlarmItem[AlarmId].DeviceId+1);
return JOB_OUT_OF_DYE;
default:
usnprintf(AlarmReasonStr, 100, "Alarm %d type %d caused a job stop",AlarmId,AlarmItem[AlarmId].EventType);
@@ -1112,32 +1112,36 @@ void AlarmHandlingInternalSetAlarm(uint32_t AlarmId, bool value)
if (AlarmItem[Alarm_i].EventType == AlarmId)
{
//if (0) // PERSISTENT ALARM
- if ((AlarmItem[Alarm_i].isPersistent == true)&&(value == true)) // PERSISTENT ALARM simulate Currently looking for "true" value, otherwise the currently existing OFF event appears
+ if (AlarmItem[Alarm_i].isPersistent == true) // PERSISTENT ALARM simulate Currently looking for "true" value, otherwise the currently existing OFF event appears
{
- if (PersistentEventsResponse.events == NULL)
- PersistentEventsResponse.events = (Event **)my_malloc(sizeof(Event*)*(PersistentEventsResponse.n_events+1));
- else
- {
- re_events = (Event **)my_malloc(sizeof(Event*)*(PersistentEventsResponse.n_events+1));
- for (Event_i = 0;Event_i < (PersistentEventsResponse.n_events);Event_i++)
- {
- re_events[Event_i] = PersistentEventsResponse.events[Event_i];
- }
- my_free(PersistentEventsResponse.events);
- PersistentEventsResponse.events = re_events;
- }
- AlarmState[Alarm_i].EventPtr = my_malloc (sizeof(Event));
- if (AlarmState[Alarm_i].EventPtr)
- {
- event__init(AlarmState[Alarm_i].EventPtr);
- AlarmState[Alarm_i].EventPtr->has_type = true;
- AlarmState[Alarm_i].EventPtr->type = AlarmItem[Alarm_i].EventType;
- AlarmState[Alarm_i].EventPtr->message = NULL;//AlarmItem[Alarm_i].EventName;
- }
- //AlarmState[Alarm_i].Status = true;
- PersistentEventsResponse.events[PersistentEventsResponse.n_events] = AlarmState[Alarm_i].EventPtr;
- PersistentEventsResponse.n_events++;
- ReportWithPackageFilter(AlarmFilter,"Persistent Alarm ", __FILE__,PersistentEventsResponse.n_events,AlarmItem[Alarm_i].EventType, RpMessage, value, Alarm_i);
+ if (value == true) // PERSISTENT ALARM simulate Currently looking for "true" value, otherwise the currently existing OFF event appears
+ {
+ if (PersistentEventsResponse.events == NULL)
+ PersistentEventsResponse.events = (Event **)my_malloc(sizeof(Event*)*(PersistentEventsResponse.n_events+1));
+ else
+ {
+ re_events = (Event **)my_malloc(sizeof(Event*)*(PersistentEventsResponse.n_events+1));
+ for (Event_i = 0;Event_i < (PersistentEventsResponse.n_events);Event_i++)
+ {
+ re_events[Event_i] = PersistentEventsResponse.events[Event_i];
+ }
+ my_free(PersistentEventsResponse.events);
+ PersistentEventsResponse.events = re_events;
+ }
+ AlarmState[Alarm_i].EventPtr = my_malloc (sizeof(Event));
+ if (AlarmState[Alarm_i].EventPtr)
+ {
+ event__init(AlarmState[Alarm_i].EventPtr);
+ AlarmState[Alarm_i].EventPtr->has_type = true;
+ AlarmState[Alarm_i].EventPtr->type = AlarmItem[Alarm_i].EventType;
+ AlarmState[Alarm_i].EventPtr->message = NULL;//AlarmItem[Alarm_i].EventName;
+ }
+ //AlarmState[Alarm_i].Status = true;
+ PersistentEventsResponse.events[PersistentEventsResponse.n_events] = AlarmState[Alarm_i].EventPtr;
+ PersistentEventsResponse.n_events++;
+ ReportWithPackageFilter(AlarmFilter,"Persistent Alarm ", __FILE__,PersistentEventsResponse.n_events,AlarmItem[Alarm_i].EventType, RpMessage, value, Alarm_i);
+ }
+ else return;
}
else
{
diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.c b/Software/Embedded_SW/Embedded/Modules/General/process.c
index 872f772e2..807e9f8e9 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/process.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/process.c
@@ -120,7 +120,7 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData)
}
if (saveData == true)
{
- if ((ProcessParams->dryerzone1temp > 0.1)&&(ProcessParams->headzone2temp > 0.1)&&(ProcessParams->headzone3temp > 0.1)&&(ProcessParams->headzone1temp > 0.1))//NOT turning off heaters
+ if ((ProcessParams->dryerzone1temp > 0.1)||(ProcessParams->headzone2temp > 0.1)||(ProcessParams->headzone3temp > 0.1)||(ProcessParams->headzone1temp > 0.1))//NOT turning off heaters
{
Bytes = sizeof(ProcessParameters);
FileWrite(ProcessParams,Bytes,ProcessParamsConfigPath,BIOS_WAIT_FOREVER);
@@ -383,7 +383,7 @@ uint32_t LoadProcessParamsFromFile(void)
if (ProcessParams!=NULL)
{
- if ((ProcessParams->dryerzone1temp > 0.1)&&(ProcessParams->headzone2temp > 0.1)&&(ProcessParams->headzone3temp > 0.1)&&(ProcessParams->headzone4temp > 0.1))//NOT turning off heaters
+ if ((ProcessParams->dryerzone1temp > 0.1)||(ProcessParams->headzone2temp > 0.1)||(ProcessParams->headzone3temp > 0.1)||(ProcessParams->headzone4temp > 0.1))//NOT turning off heaters
{
Bytes = sizeof(ProcessParameters);
EraseFlashSection(PROCESS_PARAMETERS_MAP_IN_FLASH);
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
index ab2062293..400eab33e 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_maint.c
@@ -237,10 +237,16 @@ bool IDS_IsHomingActive(uint32_t DispenserId)
uint32_t IDS_HomeDispenser (uint32_t DispenserId, uint32_t speed , callback_fptr callback)
{
assert(DispenserId < MAX_SYSTEM_DISPENSERS);
+ TimerMotors_t MotorId = HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1 + DispenserId;
//if (DispensersAlarmState[DispenserId] == true)
// return ERROR;
double midTankContent = 0.0;
+ if (isMotorConfigured(MotorId)==false)
+ {
+ ReportWithPackageFilter(IDSFilter,"IDS_HomeDispenser - Disp not in config",__FILE__,Dispenser_Id_to_LS_Id[DispenserId],(int)DispenserId,RpWarning,LIMIT,0);
+ return ERROR;
+ }
if (FPGA_Read_limit_Switches(Dispenser_Id_to_LS_Id[DispenserId]) == LIMIT)
{
ReportWithPackageFilter(IDSFilter,"IDS_HomeDispenser - Disp is full",__FILE__,Dispenser_Id_to_LS_Id[DispenserId],(int)DispenserId,RpWarning,LIMIT,0);
@@ -275,7 +281,6 @@ uint32_t IDS_HomeDispenser (uint32_t DispenserId, uint32_t speed , callback_fptr
}
HomingRequestCallback[DispenserId] = callback;
- TimerMotors_t MotorId = HARDWARE_MOTOR_TYPE__MOTO_DISPENSER_1 + DispenserId;
if ( Dispenser_Id_to_LS_Id[DispenserId] != MAX_GPI)
{
HomingActive[DispenserId] = true;
diff --git a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
index a28d00a91..95f6420c1 100644
--- a/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/IDS/IDS_print.c
@@ -884,11 +884,13 @@ bool AdjustDispenserSpeedToPressure(int DispenserId, double RefMaxPressure,doubl
}
NumOfActiveDispensers = 0;
+#ifndef LIGHT_COLORS
if (lubricant_speed > 0.1)
IDS_StopHomeDispenser(LUBRICANT_DISPENSER);
if ((EnableIntersegment == true)&&(IntersegmentLength>0))
IDS_StopHomeDispenser(CLEANER_DISPENSER);
- for (i = 0; i < MAX_DYE_DISPENSERS; i++)
+#endif
+ for (i = 0; i < MAX_DYE_DISPENSERS; i++)
{
if (DispenserUsedInJob[i] == true) //we actually should check for all dispensers
{
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index 5fee72dc7..ba505493d 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -1235,7 +1235,7 @@ uint32_t ThreadPrepareState(void *JobDetails)
SpeedControlId = AddControlCallback(NULL,ThreadLengthCBFunction, eHundredMillisecond,MotorGetPositionFromFPGA,(IfTypeThread*0x100+Motor_i),ThreadMotorIdToMotorId[Motor_i],Motor_i);
}
#endif
-#ifndef BTSR_NO_PULLER_TFU
+//#ifndef BTSR_NO_PULLER_TFU
if (Motor_i == POOLER_MOTOR) // dryer motor is speed controlled. later a speed sensor will be utilized, but for now it will not be controlled
{
ReportWithPackageFilter(ThreadFilter,"Puller Control",__FILE__,Motor_i,MotorControlConfig[Motor_i].m_params.Kp,RpWarning,MotorControlConfig[Motor_i].m_params.Ki,0);
@@ -1249,7 +1249,7 @@ uint32_t ThreadPrepareState(void *JobDetails)
PoolerLengthCalculationMultiplier = (MotorsCfg[ThreadMotorIdToMotorId[Motor_i]].pulleyradius*2*PI)/(MotorsCfg[ThreadMotorIdToMotorId[Motor_i]].pulseperround*MotorsCfg[ThreadMotorIdToMotorId[Motor_i]].microstep);
PoolerSpeedControlId = AddControlCallback(NULL,PoolerThreadLengthCBFunction, eHundredMillisecond,MotorGetPositionFromFPGA,(IfTypeThread*0x100+Motor_i),ThreadMotorIdToMotorId[Motor_i],Motor_i);
}
-#endif
+//#endif
#ifndef BTSR_NO_FEEDER_TFU
if (Motor_i == FEEDER_MOTOR) // dryer motor is speed controlled. later a speed sensor will be utilized, but for now it will not be controlled
{
diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
index a2a0d6f67..15ef98bfb 100644
--- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
+++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
@@ -1114,7 +1114,7 @@ void SendJobProgress(double ProcessedLength, int SegmentId, bool done, char *Mes
strcpy (infomsg,Message);
Report(infomsg,__FILE__,__LINE__,55,RpWarning,33, 44);
}*/
- UInt Key = Task_disable();
+ //UInt Key = Task_disable();
double totlength = 0;
if (JobToken[0] != 0)
@@ -1245,7 +1245,7 @@ void SendJobProgress(double ProcessedLength, int SegmentId, bool done, char *Mes
}
// if (responseContainer.data.data)
// my_free(responseContainer.data.data);
- Task_restore(Key);
+ //Task_restore(Key);
}
void JobStopReporting(void)
diff --git a/Software/Stubs Collection/stubs/reload main card EEPROM.cs b/Software/Stubs Collection/stubs/reload main card EEPROM.cs
index d74874d98..e84dac5e6 100644
--- a/Software/Stubs Collection/stubs/reload main card EEPROM.cs
+++ b/Software/Stubs Collection/stubs/reload main card EEPROM.cs
@@ -15,35 +15,35 @@ using Tango.PMR.IO;
using Google.Protobuf;
int[] Main_Card_Data =
-{9535,
-11923,
-8416,
-13851,
-0,
-1077829655,
-1064165718,
-1077627722,
-1063229233,
-1077936561,
-1063439315,
-1077366397,
-1063821827,
-1077794020,
-1063821827,
+{3289,
+8337,
+13392,
+16205,
+30,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
+-1,
-1,
-1,
-1077758385,
-1062585679,
-1077516698,
-1066192077,
-1,
772146177,
-13,
-1067,
-1088,
+1,
+1057,
+1189,
-1,
-5600,
-4000}
+4400,
+4050};
string[] Main_Card_EEpromAddress = {
"DATA_SIZE",