aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c84
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c13
2 files changed, 94 insertions, 3 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
index e8779d265..23560bd06 100644
--- a/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
+++ b/Software/Embedded_SW/Embedded/Modules/AlarmHandling/AlarmHandling.c
@@ -27,6 +27,10 @@
#include <PMR/Diagnostics/StartDiagnosticsResponse.pb-c.h>
#include <PMR/Diagnostics/StopDiagnosticsRequest.pb-c.h>
#include <PMR/Diagnostics/StopDiagnosticsResponse.pb-c.h>
+#include <PMR/Diagnostics/Event.pb-c.h>
+#include <PMR/Diagnostics/EventType.pb-c.h>
+#include "PMR/debugging/DebugLogCategory.pb-c.h"
+
char DiagnosticsToken[36] = {0};
bool DiagnosticsActive = false;
@@ -131,8 +135,88 @@ void AlarmHandler_SendDiagnostics(void)
return ;
}
+/*typedef enum _EventType {
+ EVENT_TYPE__ThreadBreak = 0,
+ EVENT_TYPE__ThreadTensionControlFailure = 1,
+ EVENT_TYPE__FeederConeInsufficiant = 2,
+ EVENT_TYPE__WinderGeneralError = 3,
+ EVENT_TYPE__WinderConeNotExists = 4,
+ EVENT_TYPE__ThreadFeedingGeneralError = 5,
+ EVENT_TYPE__DyeingHeadOverTemperature = 6,
+ EVENT_TYPE__DHThermalCutoff = 7,
+ EVENT_TYPE__DryerOverTemperature = 8,
+ EVENT_TYPE__DryerThermalCutoff = 9,
+ EVENT_TYPE__DyeingHeadHeatersCurrentOutOfRange = 10,
+ EVENT_TYPE__DryerHeatersCurrentOutOfRange = 11,
+ EVENT_TYPE__DryerDHeadCoverOpen = 12,
+ EVENT_TYPE__AirFilterClogged = 13,
+ EVENT_TYPE__AirFilterNotInstalled = 14,
+ EVENT_TYPE__WHSFailure = 15,
+ EVENT_TYPE__WasteContainerIsAlmostFull = 16,
+ EVENT_TYPE__WasteContainerIsFull = 17,
+ EVENT_TYPE__DispenserEmpty = 18,
+ EVENT_TYPE__DispenserLowLevel = 19,
+ EVENT_TYPE__DispenserRefillFailure = 20,
+ EVENT_TYPE__MidTankEmpty = 21,
+ EVENT_TYPE__MidTankLowLevel = 22,
+ EVENT_TYPE__MidTankNotInPlace = 23,
+ EVENT_TYPE__SystemBITFail = 24,
+ EVENT_TYPE__GeneralInternalOverTemperature = 25,
+ EVENT_TYPE__MachineCoverOpen = 26,
+ EVENT_TYPE__EmergencyPushButtonPressed = 27,
+ EVENT_TYPE__SystemGeneralError = 28,
+ EVENT_TYPE__RequestSent = 29,
+ EVENT_TYPE__ResponseReceived = 30,
+ EVENT_TYPE__RequestFailed = 31,
+ EVENT_TYPE__ApplicationException = 32,
+ EVENT_TYPE__ApplicationInformation = 33,
+ EVENT_TYPE__ApplicationStarted = 34,
+ EVENT_TYPE__ApplicationTerminated = 35,
+ EVENT_TYPE__RecordingStarted = 36,
+ EVENT_TYPE__RecordingStopped = 37
+ PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(EVENT_TYPE)
+} EventType;
+ * */
+uint32_t AlarmHandlingConsequentActions(EventType EventId, DebugLogCategory Severity)
+{
+ switch (Severity)
+ {
+ case DEBUG_LOG_CATEGORY__Warning:
+
+ //raise flag fr next job
+ break;
+ case DEBUG_LOG_CATEGORY__Error:
+ AbortJob(NULL,event_type__descriptor.name[EventId]);
+//Stop Job
+ break;
+ case DEBUG_LOG_CATEGORY__Critical:
+ EndState(NULL,event_type__descriptor.name[EventId]);
+ //stop job
+ //turn machine off
+ break;
+ case DEBUG_LOG_CATEGORY__Debug:
+ case DEBUG_LOG_CATEGORY__Info:
+ default:
+ //do nothing
+ break;
+
+ }
+}
+
uint32_t AlarmHandlingLoop(uint32_t tick)
{
+ //read dispensers limit switches. 25 - send warning. up - stop job and send alarm
+
+ //Cone missing
+ //Dyeing head over temperature
+ //mixer over temperature
+ //dryer over temperature
+ //heaters failure
+ //dispenser pressure
+ //valve OCD
+ //Motor Status
+ //machine cover open
+
return OK;
}
void SendDiagnostics(void)
diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
index f5462e398..5c581c7e6 100644
--- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
+++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c
@@ -15,6 +15,8 @@
#include "PMR/Printing/JobSegment.pb-c.h"
#include "PMR/Printing/JobTicket.pb-c.h"
+#include <utils/ustdlib.h>
+
#include "StateMachines/Printing/PrintingSTM.h"
#include "drivers/Motors/Motor.h"
@@ -178,7 +180,7 @@ uint32_t ThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue)
pooler_counter++;
if (pooler_counter%10 == 0)
{
- SendJobProgress(CurrentProcessedLength/CurrentRequestedLength,CurrentSegmentId,false);
+ SendJobProgress(CurrentProcessedLength/CurrentRequestedLength,CurrentSegmentId,false, "Progress");
//SendJobProgress(/*KeepNormalizedError*/MotorControlConfig[index].m_calculatedError,CurrentSegmentId,false);
}
@@ -259,6 +261,8 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue)
int32_t TranslatedReadValue, avreageSampleValue = 0;
uint32_t calculated_speed;
double NormalizedError;
+ char Message[60];
+
if (IfIndex>>8 != IfTypeThread)
{
LOG_ERROR (IfIndex, "Wrong Interface type");
@@ -293,7 +297,8 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue)
//TranslatedReadValue = 0;//test
MotorSamples[index][MotorSamplePointer[index]] = TranslatedReadValue;//(-1 * TranslatedReadValue);
MotorSamplePointer[index]++;
- if (MotorSamplePointer[index] >= MotorsControl[index].pvinputfilterfactormode) MotorSamplePointer[index] = 0;
+ if (MotorSamplePointer[index] >= MotorsControl[index].pvinputfilterfactormode)
+ MotorSamplePointer[index] = 0;
for (i=0;i<MotorsControl[index].pvinputfilterfactormode;i++)
avreageSampleValue += MotorSamples[index][i];
avreageSampleValue = avreageSampleValue / MotorsControl[index].pvinputfilterfactormode;
@@ -301,7 +306,9 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue)
if ((abs(avreageSampleValue)> DancerStopActivityLimit[index])&&(JobCounter > eOneSecond))
{
- EndState(CurrentJob);
+ usnprintf(Message, 60, "Dancer % limit%d value %d Zero %d",DancerId,DancerStopActivityLimit[index],avreageSampleValue,DancersCfg[DancerId].zeropoint);
+
+ EndState(CurrentJob,Message );
}
NormalizedError = avreageSampleValue*NormalizedErrorCoEfficient[index];
MotorControlConfig[index].m_mesuredParam = NormalizedError;