aboutsummaryrefslogtreecommitdiffstats
path: root/Software
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2019-03-06 13:13:57 +0200
committerAvi Levkovich <avi@twine-s.com>2019-03-06 13:13:57 +0200
commite779c5128f45ccf3e45fbe304da496d4b2f89cb4 (patch)
treefa90c1112a07ce35a91a713430a07399188ca8b7 /Software
parent9aab05cf66c58ae6f444ddcece0aa02e0fa54a3a (diff)
parent9bad6f22c0ea59ef59b0cd6efda305503b6e4ad5 (diff)
downloadTango-e779c5128f45ccf3e45fbe304da496d4b2f89cb4.tar.gz
Tango-e779c5128f45ccf3e45fbe304da496d4b2f89cb4.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software')
-rw-r--r--Software/Embedded_SW/Embedded/Common/SW_Info/SW_Info.c2
-rw-r--r--Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c2
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/process.c21
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h1
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c4
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c152
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c10
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c19
8 files changed, 142 insertions, 69 deletions
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 12d6bdeb6..c4f04254d 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,3,7,8};
+TangoVersion_t _gTangoVersion = {1,3,7,81};
#define BUILD_DATE __DATE__
char Dat[50] = BUILD_DATE;
char _gTangoName [MAX_STRING_LEN] = "Tango01 ";//d
diff --git a/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c b/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c
index af7f13a00..637c91e7d 100644
--- a/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c
+++ b/Software/Embedded_SW/Embedded/Drivers/flash_ram/FlashProgram.c
@@ -42,7 +42,7 @@ uint32_t ReadAppAndProgram(uint32_t ui32FlashStart,uint32_t ui32FileSize,void* b
// by the amount of the reserved block.
//
ui32FlashEnd = ui32FlashStart + ui32FileSize;
-#warning check all addresses
+
//
// Check to make sure the file size is not too large to fit in the flash.
diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.c b/Software/Embedded_SW/Embedded/Modules/General/process.c
index dd9f8deae..458bb35f2 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/process.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/process.c
@@ -38,11 +38,29 @@ int32_t tableindex = 0;
char ProcessParamsConfigPath[50] = "0://SysInfo//ProcessP.cfg";
ProcessParameters ProcessParametersKeep;
+void HeatersStopControlOnHeatersOff(ProcessParameters* ProcessParams)
+{
+ uint32_t temp_sum = 0;
+ temp_sum += ProcessParams->dryerzone1temp;
+ temp_sum += ProcessParams->dryerzone2temp;
+ temp_sum += ProcessParams->dryerzone3temp;
+ temp_sum += ProcessParams->mixertemp;
+ temp_sum += ProcessParams->headzone1temp;
+ temp_sum += ProcessParams->headzone2temp;
+ temp_sum += ProcessParams->headzone3temp;
+ temp_sum += ProcessParams->headzone4temp;
+ temp_sum += ProcessParams->headzone5temp;
+ temp_sum += ProcessParams->headzone6temp;
+ if (temp_sum == 0)// heating off
+ {
+ HeatersControlStop();
+ REPORT_MSG(temp_sum,"Heating control off - temperatures off");
+ }
+}
uint32_t HandleProcessParameters(ProcessParameters* ProcessParams)
{
uint32_t status = 0;
-
if (ProcessParams==NULL)
{
status = ERROR_CODE__INVALID_PARAMETER;
@@ -145,6 +163,7 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams)
HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary, false,
ProcessParams->dryerzone3temp);
*/
+ HeatersStopControlOnHeatersOff(ProcessParams);
dyeingspeed = ProcessParams->dyeingspeed;
dryerbufferlength = ProcessParams->dryerbufferlength;
mininkuptake = ProcessParams->mininkuptake;
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h
index 8a77f98a2..0b65d9e5e 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h
@@ -27,4 +27,5 @@ void Heaters_SetOperationLimits(int acheatersloweroperationlimit,int acheatersu
uint32_t HeatersEnd(void);
+void HeatersControlStop(void);
uint32_t Heaters_Init(void);
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c
index 6fbfa5884..7c4bb1761 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c
@@ -29,7 +29,7 @@
/******************** STRUCTURES AND ENUMs ********************************************/
-typedef enum {
+/*typedef enum {
HeatersInitialState,
HeatersInit,
HeatersControlledOp,
@@ -43,7 +43,7 @@ typedef enum {
HeatersOverHeat,
HeatersOnTest
}HEATERS_EVENTS_ENUM;
-
+*/
/******************** GLOBAL PARAMETERS ********************************************/
HeaterPIDControlConfig HeaterControl[MAX_HEATERS_NUM] = {0,0,0,0,0,0,0,0,0,0,0,0};
bool AcHeaterConfigured[MAX_AC_HEATERS] = {0,0,0};
diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
index bc5448e7b..3f62fc3b6 100644
--- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c
@@ -17,7 +17,7 @@
#include "PMR/Diagnostics/HeaterType.pb-c.h"
#include "PMR/Diagnostics/HeaterState.pb-c.h"
#include "PMR/common/MessageContainer.pb-c.h"
-#include "PMR/Diagnostics/EventType.pb-c.h"
+#include "PMR/Diagnostics/EventType.pb-c.h"
#include "../AlarmHandling/AlarmHandling.h"
#include "../control/control.h"
@@ -277,6 +277,9 @@ uint32_t HeatersSingleHeaterEnd(HardwarePidControlType HeaterId)
HeaterReady[HeaterId] = true;
}
+ AlarmHandlingSetAlarm(HeaterUnderEventType[HeaterId], false);
+ AlarmHandlingSetAlarm(HeaterUnderEventType_B[HeaterId], false);
+ AlarmHandlingSetAlarm(HeaterEventType[HeaterId], false);
return status;
}
@@ -389,7 +392,8 @@ uint32_t HeaterCommandRequestMessage(int HeaterId, bool OnOff, int Temperature)
}
else if ((HeaterState == HEATER_ON)&& (OnOff == HEATER_ON)) //set temperature
{
- if (abs(HeaterPIDConfig[HeaterId].m_SetParam - HeaterCmd[HeaterId].targettemperatue)>0.5) //#bug 221
+ HeaterPIDConfig[HeaterId].m_SetParam = HeaterCmd[HeaterId].targettemperatue;
+ /*/if (abs(HeaterPIDConfig[HeaterId].m_SetParam - HeaterCmd[HeaterId].targettemperatue)>0.5) //#bug 221
{
PrepareHeater(HeaterId,Temperature); //prepare the heaters control info
}
@@ -397,8 +401,8 @@ uint32_t HeaterCommandRequestMessage(int HeaterId, bool OnOff, int Temperature)
{
HeaterPreviousRead[HeaterId] = GetFilteredHeaterRead(HeaterId);//
LOG_ERROR(HeaterId,"ReRead Heater Temp");
- }
- HeaterPIDConfig[HeaterId].m_SetParam = HeaterCmd[HeaterId].targettemperatue;
+ }*/
+ PrepareHeater(HeaterId,Temperature); //prepare the heaters control info
// if the heater is not on return (?).
//set the target operation temperature
//set the heater operation mode to fast heating - depended on the current temperature
@@ -422,6 +426,88 @@ uint32_t HeaterCommandRequestMessage(int HeaterId, bool OnOff, int Temperature)
* called by: Communication from host
* initialized all global data
*/
+void PrepareACHeater(int HeaterId,uint32_t Frequency, uint32_t SetTemperatue)
+{
+ if (ControlIdtoHeaterId [HeaterId] == 0xFF)
+ {
+ ControlIdtoHeaterId [HeaterId] = AddControlCallback( HeaterControlCBFunction, Frequency/*eOneSecond*/,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),DryerInternalPT100Id,0);
+ //HeaterPreviousRead[HeaterId] = TemperatureSensorRead(DryerInternalPT100Id);
+ HeaterPreviousRead[HeaterId] = GetFilteredHeaterRead(HeaterId);//
+ Report("PrepareHeater Read", __FILE__,__LINE__,HeaterId, SetTemperatue, HeaterPreviousRead[HeaterId], 0);
+ HeaterPreviousRead[HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain] = GetFilteredHeaterRead(HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain);//TemperatureSensorRead(HeaterId2PT100Id[HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain]);
+ HeaterPreviousRead[HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary] = GetFilteredHeaterRead(HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary);// = TemperatureSensorRead(HeaterId2PT100Id[HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary]);
+ }
+ //turn all alarms off
+ AlarmHandlingSetAlarm(HeaterUnderEventType[HeaterId], false);
+ AlarmHandlingSetAlarm(HeaterUnderEventType_B[HeaterId], false);
+ AlarmHandlingSetAlarm(HeaterEventType[HeaterId], false);
+
+ if (ControlIdtoMaxHeaterId [HeaterId] == 0xFF)
+ ControlIdtoMaxHeaterId [HeaterId] = AddControlCallback( DcHeaterMaxTempCBFunction, eOneSecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0);
+
+ Enable_Reading_Heaters_Current(HeaterId2CurrentId[HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain]);
+ Enable_Reading_Heaters_Current(HeaterId2CurrentId[HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary]);
+
+ HeaterRecalculateSharedHeatersParams(HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain, 0);
+ HeaterRecalculateSharedHeatersParams(HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary, 0);
+ if (MainDryerHeaterMaxTempControl == 0xFF)
+ MainDryerHeaterMaxTempControl = AddControlCallback( HeaterMaxTempCBFunction, eHundredMillisecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain),HeaterId2PT100Id[HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain],0);
+ if (SecondDryerHeaterMaxTempControl == 0xFF)
+ SecondDryerHeaterMaxTempControl = AddControlCallback( HeaterMaxTempCBFunction, eHundredMillisecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary),HeaterId2PT100Id[HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary],0);
+ //InitialHeating = true;
+ HeaterReady[HeaterId] = false;
+ if (BlowerCfg.enabled == true)
+ {
+ Turn_the_Blower_On();//Turn on with the Default_Voltage
+ if (BlowerCfg.heatingvoltage)
+ Control_Voltage_To_Blower(BlowerCfg.heatingvoltage);
+ else
+ Control_Voltage_To_Blower(BlowerCfg.voltage-500);
+
+ }
+ if (SetTemperatue)
+ {
+ Control_Dryer_Fan(START,75);//use START or STOP, 0 - 100%
+ }
+}
+/*
+ * PrepareHeater
+ * called by: Communication from host
+ * initialized all global data
+ */
+int PrepareDCHeater(int HeaterId, uint32_t Frequency, uint32_t SetTemperatue)
+{
+ if (ControlIdtoHeaterId [HeaterId] == 0xFF)
+ ControlIdtoHeaterId [HeaterId] = AddControlCallback( DCHeaterControlCBFunction, Frequency/*eOneSecond*/,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0);
+ //HeaterPIDConfig[HeaterId].m_params.dt *=10;
+ //DCInitialHeating[HeaterId] = true;
+ HeaterReady[HeaterId] = false;
+ HeaterRecalculateHeaterParams(HeaterId, 0);
+
+ //turn all alarms off
+ AlarmHandlingSetAlarm(HeaterUnderEventType[HeaterId], false);
+ AlarmHandlingSetAlarm(HeaterUnderEventType_B[HeaterId], false);
+ AlarmHandlingSetAlarm(HeaterEventType[HeaterId], false);
+
+ Enable_Reading_Heaters_Current(HeaterId2CurrentId[HeaterId]);
+
+ HeaterPreviousRead[HeaterId] = GetFilteredHeaterRead(HeaterId);//TemperatureSensorRead(HeaterId2PT100Id[HeaterId]);
+ if((abs(HeaterPreviousRead[HeaterId]-MINIMUM_HEATER_READ)<1)||(abs(MAXIMUM_HEATER_READ-HeaterPreviousRead[HeaterId])<10))
+ {
+ LOG_ERROR (HeaterId,"PT100 not working properly");
+ return ERROR;
+ }
+ Report("PrepareHeater Read", __FILE__,__LINE__,HeaterId, SetTemperatue, HeaterPreviousRead[HeaterId], 0);
+ if (ControlIdtoMaxHeaterId [HeaterId] == 0xFF)
+ ControlIdtoMaxHeaterId [HeaterId] = AddControlCallback( DcHeaterMaxTempCBFunction, eOneSecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0);
+
+ return OK;
+}
+/*
+ * PrepareHeater
+ * called by: Communication from host
+ * initialized all global data
+ */
uint32_t PrepareHeater(int HeaterId, uint32_t SetTemperatue)
{
double temp ;
@@ -466,64 +552,12 @@ uint32_t PrepareHeater(int HeaterId, uint32_t SetTemperatue)
}
if (HeaterId >= MAX_AC_HEATERS) //DC Heaters
{
- if (ControlIdtoHeaterId [HeaterId] == 0xFF)
- ControlIdtoHeaterId [HeaterId] = AddControlCallback( DCHeaterControlCBFunction, Frequency/*eOneSecond*/,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0);
- //HeaterPIDConfig[HeaterId].m_params.dt *=10;
- //DCInitialHeating[HeaterId] = true;
- HeaterReady[HeaterId] = false;
- HeaterRecalculateHeaterParams(HeaterId, 0);
-
- Enable_Reading_Heaters_Current(HeaterId2CurrentId[HeaterId]);
-
- HeaterPreviousRead[HeaterId] = GetFilteredHeaterRead(HeaterId);//TemperatureSensorRead(HeaterId2PT100Id[HeaterId]);
- if((abs(HeaterPreviousRead[HeaterId]-MINIMUM_HEATER_READ)<1)||(abs(MAXIMUM_HEATER_READ-HeaterPreviousRead[HeaterId])<10))
- {
- LOG_ERROR (HeaterId,"PT100 not working properly");
+ if (PrepareDCHeater(HeaterId,Frequency,SetTemperatue)!=OK)
return ERROR;
- }
- Report("PrepareHeater Read", __FILE__,__LINE__,HeaterId, SetTemperatue, HeaterPreviousRead[HeaterId], 0);
- if (ControlIdtoMaxHeaterId [HeaterId] == 0xFF)
- ControlIdtoMaxHeaterId [HeaterId] = AddControlCallback( DcHeaterMaxTempCBFunction, eOneSecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0);
-
}
else if (HeaterId == HARDWARE_PID_CONTROL_TYPE__DryerAirTemperature) //AC Heaters
{
- if (ControlIdtoHeaterId [HeaterId] == 0xFF)
- {
- ControlIdtoHeaterId [HeaterId] = AddControlCallback( HeaterControlCBFunction, Frequency/*eOneSecond*/,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),DryerInternalPT100Id,0);
- //HeaterPreviousRead[HeaterId] = TemperatureSensorRead(DryerInternalPT100Id);
- HeaterPreviousRead[HeaterId] = GetFilteredHeaterRead(HeaterId);//
- Report("PrepareHeater Read", __FILE__,__LINE__,HeaterId, SetTemperatue, HeaterPreviousRead[HeaterId], 0);
- HeaterPreviousRead[HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain] = GetFilteredHeaterRead(HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain);//TemperatureSensorRead(HeaterId2PT100Id[HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain]);
- HeaterPreviousRead[HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary] = GetFilteredHeaterRead(HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary);// = TemperatureSensorRead(HeaterId2PT100Id[HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary]);
- }
- if (ControlIdtoMaxHeaterId [HeaterId] == 0xFF)
- ControlIdtoMaxHeaterId [HeaterId] = AddControlCallback( DcHeaterMaxTempCBFunction, eOneSecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0);
-
- Enable_Reading_Heaters_Current(HeaterId2CurrentId[HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain]);
- Enable_Reading_Heaters_Current(HeaterId2CurrentId[HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary]);
-
- HeaterRecalculateSharedHeatersParams(HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain, 0);
- HeaterRecalculateSharedHeatersParams(HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary, 0);
- if (MainDryerHeaterMaxTempControl == 0xFF)
- MainDryerHeaterMaxTempControl = AddControlCallback( HeaterMaxTempCBFunction, eHundredMillisecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain),HeaterId2PT100Id[HARDWARE_PID_CONTROL_TYPE__DryerHeaterMain],0);
- if (SecondDryerHeaterMaxTempControl == 0xFF)
- SecondDryerHeaterMaxTempControl = AddControlCallback( HeaterMaxTempCBFunction, eHundredMillisecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary),HeaterId2PT100Id[HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary],0);
- //InitialHeating = true;
- HeaterReady[HeaterId] = false;
- if (BlowerCfg.enabled == true)
- {
- Turn_the_Blower_On();//Turn on with the Default_Voltage
- if (BlowerCfg.heatingvoltage)
- Control_Voltage_To_Blower(BlowerCfg.heatingvoltage);
- else
- Control_Voltage_To_Blower(BlowerCfg.voltage-500);
-
- }
- if (SetTemperatue)
- {
- Control_Dryer_Fan(START,75);//use START or STOP, 0 - 100%
- }
+ PrepareACHeater(HeaterId,Frequency,SetTemperatue);
}
return OK;
}
@@ -693,7 +727,7 @@ uint32_t DcHeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t eadValue)
return OK;
}
}
- else //temperature withing limits
+ else //temperature within limits
{
if(UnderHeatCounter[index] )
{
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index 394e2ae13..6a8474438 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -427,9 +427,9 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue)
JobEndReason = JOB_THREAD_BREAK;
ThreadControlActive = false;
SendJobProgress(0.0,0,false, TMessage);
- //SegmentReady(Module_Thread,ModuleFail);
- AlarmHandlingSetAlarm(EVENT_TYPE__THREAD_BREAK,true);
- EndState(CurrentJob,"ReadBreakSensor Error" );
+ SegmentReady(Module_Thread,ModuleFail);
+ //AlarmHandlingSetAlarm(EVENT_TYPE__THREAD_BREAK,true);
+ //EndState(CurrentJob,"ReadBreakSensor Error" );
LOG_ERROR(index, "ReadBreakSensor Error");
return OK;
} //passed limit
@@ -458,7 +458,7 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue)
SendJobProgress(0.0,0,false, TMessage);
//EndState(CurrentJob,TMessage );
SegmentReady(Module_Thread,ModuleFail);
- switch (index)
+ /*switch (index)
{
case POOLER_MOTOR:
AlarmHandlingSetAlarm(EVENT_TYPE__THREAD_TENSION_CONTROL_FAILURE_PULLER_DANCER,true);
@@ -469,7 +469,7 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue)
case WINDER_MOTOR:
AlarmHandlingSetAlarm(EVENT_TYPE__THREAD_TENSION_CONTROL_FAILURE_WINDER_DANCER,true);
break;
- }
+ }*/
LOG_ERROR (DancerId, "Dancer Failure");
return OK;
}
diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
index 08233ce9a..e012dc020 100644
--- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
+++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
@@ -43,6 +43,8 @@
#include "PMR/Hardware/Hardwaremotor.pb-c.h"
#include "PMR/Hardware/HardwareWinder.pb-c.h"
#include "PMR/common/MessageContainer.pb-c.h"
+#include "PMR/Diagnostics/EventType.pb-c.h"
+
#include "Modules/General/process.h"
#include "modules/Diagnostics/Diagnostics.h"
@@ -748,6 +750,23 @@ void SendJobProgress(double ProcessedLength, int SegmentId, bool done, char *Mes
{
responseContainer.has_error = true;
responseContainer.error = JobError_to_ErrorCode[JobEndReason];
+ switch (JobEndReason)
+ {
+ case JOB_THREAD_BREAK:
+ AlarmHandlingSetAlarm(EVENT_TYPE__THREAD_BREAK,true);
+ break;
+ case JOB_POOLER_DANCER_FAIL:
+ AlarmHandlingSetAlarm(EVENT_TYPE__THREAD_TENSION_CONTROL_FAILURE_PULLER_DANCER,true);
+ break;
+ case JOB_FEEDER_DANCER_FAIL:
+ AlarmHandlingSetAlarm(EVENT_TYPE__THREAD_TENSION_CONTROL_FAILURE_FEEDER_DANCER,true);
+ break;
+ case JOB_WINDER_DANCER_FAIL:
+ AlarmHandlingSetAlarm(EVENT_TYPE__THREAD_TENSION_CONTROL_FAILURE_WINDER_DANCER,true);
+ break;
+ default:
+ break;
+ }
}
if (JobAbortedByUser == true)
{