diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2020-11-25 12:08:28 +0200 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2020-11-25 12:08:28 +0200 |
| commit | 978439fe882ef59b63fb1b1450bd615f707214c9 (patch) | |
| tree | b3cd057aa36d834a7c7a724a231cd66eaede6498 /Software/Embedded_SW | |
| parent | f95ad012ba68f1b025654925ca17d199d653a41c (diff) | |
| download | Tango-978439fe882ef59b63fb1b1450bd615f707214c9.tar.gz Tango-978439fe882ef59b63fb1b1450bd615f707214c9.zip | |
fixes for new version.
Diffstat (limited to 'Software/Embedded_SW')
11 files changed, 55 insertions, 38 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) |
