diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2019-05-26 18:13:17 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2019-05-26 18:13:17 +0300 |
| commit | d7d99dc7d1fa11845c5d4df3bbff16fec33b406c (patch) | |
| tree | 9cae8240e225014d35f661880aec17cca8c69486 /Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c | |
| parent | 77e72b9d16522648a350a95382309e9692434011 (diff) | |
| download | Tango-d7d99dc7d1fa11845c5d4df3bbff16fec33b406c.tar.gz Tango-d7d99dc7d1fa11845c5d4df3bbff16fec33b406c.zip | |
Version 1.4.0.2 improve winding (simplify). incorporate screw encoder reading. fix length/time problem between IDS and Thread.
Diffstat (limited to 'Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c')
| -rw-r--r-- | Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c index 46241c3a0..2aa260e9f 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c @@ -665,7 +665,7 @@ void PrintSTMMsgHandler(void * msg) if (SegmentId >= n_segments) { if (dryerbufferlength == 0) - EndState(CurrentJob, "Job Ended"); + EndState(CurrentJob, "Job Ended"); else DistanceToSpoolState(CurrentJob); } @@ -673,12 +673,34 @@ void PrintSTMMsgHandler(void * msg) { if (CurrentJob->uploadstrategy == JOB_UPLOAD_STRATEGY__JobDescriptionFile) { - if (Segment->base.descriptor->sizeof_message != 40) - LOG_ERROR (Segment->base.descriptor->sizeof_message, "Segment size error. not freeing"); + if ((Segment) && (Segment->base.descriptor->sizeof_message != 40)) + LOG_ERROR(SegmentId, "Error releasing Segment"); else if (Segment) - FreeSegmentFileData(Segment); + { + if (IDSCheckSegmentData(Segment, SegmentId) == OK) + { + FreeSegmentFileData(Segment); + } + else + { + JobEndReason = JOB_OTHER_ALARM; + if (dryerbufferlength == 0) + EndState(CurrentJob, "Job Ended"); + else + DistanceToSpoolState(CurrentJob); + } + + } Segment = GetNextSegmentFromJobFile(); + if (Segment == NULL) + { + JobEndReason = JOB_OTHER_ALARM; + if (dryerbufferlength == 0) + EndState(CurrentJob, "Job Ended"); + else + DistanceToSpoolState(CurrentJob); + } SSegment.length = Segment->length; SSegment.has_length = Segment->has_length; SSegment.n_brushstops = Segment->brushstopscount; |
