aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/StateMachines
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2020-10-29 13:19:45 +0200
committerAvi Levkovich <avi@twine-s.com>2020-10-29 13:19:45 +0200
commitf07e100bb3fd2feb41e3e1b6ff8c5e2b5e82cc86 (patch)
tree6a1cdd0f9db18c24d64ab6675eeca7e79f628037 /Software/Embedded_SW/Embedded/StateMachines
parent902139314c4d406236de4eec79ba7364d09e68d0 (diff)
parent6d2c4fb1e5834a7a74bdd5399e9ba82f403a52eb (diff)
downloadTango-f07e100bb3fd2feb41e3e1b6ff8c5e2b5e82cc86.tar.gz
Tango-f07e100bb3fd2feb41e3e1b6ff8c5e2b5e82cc86.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/Tango/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/StateMachines')
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c1
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c9
-rw-r--r--Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c4
3 files changed, 14 insertions, 0 deletions
diff --git a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c
index dc7c09499..3a0c94e27 100644
--- a/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c
+++ b/Software/Embedded_SW/Embedded/StateMachines/Initialization/PowerOffSequence.c
@@ -363,6 +363,7 @@ uint32_t PowerOffStopRunningJob(void)
{
REPORT_MSG (PowerOffMachineState, "Stop running job");
JobEndReason = JOB_ABORTED_BY_USER;
+ usnprintf(AlarmReasonStr, 100, "Power off pressed");
AbortJob("Power off pressed");
}
PowerOffMachineState++;
diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
index ca859f390..0a176c2cb 100644
--- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
+++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c
@@ -1014,11 +1014,14 @@ void JobRequestFunc(MessageContainer* requestContainer)
responseContainer = createContainer(MESSAGE_TYPE__JobResponse, JobToken, true, &response, &job_response__pack, &job_response__get_packed_size);
responseContainer.has_error = true;
responseContainer.error = error;
+ if (strlen(ErrorMsg))
+ responseContainer.errormessage = ErrorMsg;
container_buffer = my_malloc(message_container__get_packed_size(&responseContainer));
}
if (container_buffer)
{
size_t container_size = message_container__pack(&responseContainer, container_buffer);
+ ErrorMsg[0] = 0;
my_free(responseContainer.data.data);
SendChars((char*)container_buffer, container_size);
//We keep the job request until it is done
@@ -1152,6 +1155,8 @@ void SendJobProgress(double ProcessedLength, int SegmentId, bool done, char *Mes
{
responseContainer.has_error = true;
responseContainer.error = JobError_to_ErrorCode[JobEndReason];
+ if (strlen(ErrorMsg))
+ responseContainer.errormessage = ErrorMsg;
}
if (JobAbortedByUser == true)
{
@@ -1165,6 +1170,7 @@ void SendJobProgress(double ProcessedLength, int SegmentId, bool done, char *Mes
{
size_t container_size = message_container__pack(&responseContainer, container_buffer);
// if (SendChars(container_buffer, container_size) == false) //comm tx mailbox full
+ ErrorMsg[0] = 0;
if (SendCharsWithType(container_buffer, container_size,MESSAGE_TYPE__JobResponse) == false) //comm tx mailbox full
{
//AlarmHandlingToken[0] = 0;
@@ -1200,6 +1206,9 @@ void SendJobProgress(double ProcessedLength, int SegmentId, bool done, char *Mes
default:
break;
}
+ if (strlen(AlarmReasonStr))
+ strncpy(ErrorMsg,AlarmReasonStr,100);
+
}
JobMessageStruc JobMessage;
diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c
index 3b0844934..9e43bfb07 100644
--- a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c
+++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c
@@ -28,6 +28,7 @@
#include "modules/Heaters/Heaters_ex.h"
#include "modules/Diagnostics/Diagnostics.h"
#include "modules/ids/ids_ex.h"
+#include "Modules/AlarmHandling/AlarmHandling.h"
#include "PMR/Hardware/UploadHardWareConfigurationRequest.pb-c.h"
#include "PMR/Hardware/HardwareMotorType.pb-c.h"
@@ -756,6 +757,7 @@ void PrintSTMMsgHandler(void * msg)
if (RewindJobFile() != FR_OK)
{
JobEndReason = JOB_FILE_PROBLEM;
+ usnprintf(AlarmReasonStr, 100, "Job file processing error");
if (dryerbufferlength <= 0.1)
EndState(CurrentJob, "Job Ended");
else
@@ -795,6 +797,7 @@ void PrintSTMMsgHandler(void * msg)
else
{
JobEndReason = JOB_FILE_PROBLEM;
+ usnprintf(AlarmReasonStr, 100, "Job file processing error");
if (dryerbufferlength <= 0.1)
EndState(CurrentJob, "Job Ended");
else
@@ -814,6 +817,7 @@ void PrintSTMMsgHandler(void * msg)
{
Report("SegmentLoading failed",__FILE__,__LINE__, Segment,RpMessage,(int)(Segment->length*100),0);
JobEndReason = JOB_FILE_PROBLEM;
+ usnprintf(AlarmReasonStr, 100, "Job file processing error");
if (dryerbufferlength <= 0.1)
EndState(CurrentJob, "Job Ended");
else