From 595998bcdd9612a448552d5beccad1be0e791657 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Thu, 21 Jun 2018 20:23:24 +0300 Subject: some small bugs --- .../Embedded/Modules/Thread/Thread_print.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread') diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index f5462e398..fcbfb1bbb 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -472,7 +472,9 @@ uint32_t ThreadPreSegmentState(void *JobDetails) //set the speed only before the first segment, speed is constant accros job JobTicket* JobTicket = JobDetails; - float process_speed = JobTicket->processparameters->dyeingspeed; + float process_speed; + if (JobTicket->processparameters) + process_speed= JobTicket->processparameters->dyeingspeed; SetOriginMotorSpeed(process_speed); //ControlStart(); @@ -483,14 +485,14 @@ uint32_t ThreadPreSegmentState(void *JobDetails) //only for testing - when control works, these motors will take their speed from the dryer //MotorSetSpeed(HARDWARE_MOTOR_TYPE__MOTO_RDRIVING, OriginalMotorSpd_2PPS[FEEDER_MOTOR]); -//#warning rocker disabled - if (MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RLOADING].has_directionthreadwize) - MotorSetDirection((TimerMotors_t)HARDWARE_MOTOR_TYPE__MOTO_RLOADING,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RLOADING].directionthreadwize); - MotorSetSpeed(HARDWARE_MOTOR_TYPE__MOTO_RLOADING, 5); - if (MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LLOADING].has_directionthreadwize) - MotorSetDirection((TimerMotors_t)HARDWARE_MOTOR_TYPE__MOTO_LLOADING,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LLOADING].directionthreadwize); - MotorSetSpeed(HARDWARE_MOTOR_TYPE__MOTO_LLOADING, 5); -//#warning rocker disabled +#warning rocker disabled +// if (MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RLOADING].has_directionthreadwize) +// MotorSetDirection((TimerMotors_t)HARDWARE_MOTOR_TYPE__MOTO_RLOADING,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RLOADING].directionthreadwize); +// MotorSetSpeed(HARDWARE_MOTOR_TYPE__MOTO_RLOADING, 5); +// if (MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LLOADING].has_directionthreadwize) +// MotorSetDirection((TimerMotors_t)HARDWARE_MOTOR_TYPE__MOTO_LLOADING,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_LLOADING].directionthreadwize); +// MotorSetSpeed(HARDWARE_MOTOR_TYPE__MOTO_LLOADING, 5); +#warning rocker disabled // MotorMovetoLimitSwitch (HARDWARE_MOTOR_TYPE__MOTO_RDRIVING,MotorsCfg[HARDWARE_MOTOR_TYPE__MOTO_RDRIVING].directionthreadwize, 0, GPI_LS_RLOADMOTOR_UP, EndState); //TODO @@ -506,6 +508,7 @@ uint32_t ThreadPreSegmentState(void *JobDetails) { ThreadUpdateProcessLength (0,(void *)NULL); PreSegmentReady(Module_Thread,ModuleDone); + JobCounter = 0; InitialProcess = false; } -- cgit v1.3.1 From 7d2119987aade33c587dac1cd476326f977922c5 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Fri, 22 Jun 2018 12:02:18 +0300 Subject: Job process info and job end info, some alarm handling --- .../Embedded/Modules/AlarmHandling/AlarmHandling.c | 84 ++++++++++++++++++++++ .../Embedded/Modules/Thread/Thread_print.c | 13 +++- .../Embedded/StateMachines/Printing/JobSTM.c | 20 +++--- .../Embedded/StateMachines/Printing/PrintingSTM.c | 18 ++--- .../Embedded/StateMachines/Printing/PrintingSTM.h | 5 +- 5 files changed, 114 insertions(+), 26 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread') 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 #include #include +#include +#include +#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 + #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 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; diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c index 0f9a915d0..4d102061b 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c @@ -79,7 +79,7 @@ static ReturnCode ExitState(void *JobDetails); * the array and enum of JobState_t below must be in sync order ***********************************************************************/ //static ReturnCode (* state[])(void *JobDetails) = { IdleState, ValidateState, PrepareState, PrintState, CleanState}; -void AbortJob(void); +void AbortJob(char *Msg); typedef enum @@ -269,7 +269,7 @@ void JobAbortFunc(MessageContainer* requestContainer) AbortJobRequest* request = abort_job_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); - EndState(CurrentJob); + EndState(CurrentJob, "Job Aborted by user"); //AbortJob(); AbortJobResponse response = ABORT_JOB_RESPONSE__INIT; @@ -370,24 +370,19 @@ void JobRequestFunc(MessageContainer* requestContainer) //free(requestContainer); } //******************************************************************************************************************** -void SendJobProgress(double percentage, int SegmentId, bool done) +void SendJobProgress(double percentage, int SegmentId, bool done, char *Message) { uint32_t status = NOT_SUPPORTED; MessageContainer responseContainer; uint8_t* container_buffer; - char DoneMsg[13] = "Job Finished"; - char ProgressMsg[13] = "Progress"; - - - JobResponse response = JOB_RESPONSE__INIT; JobStatus jobStatus = JOB_STATUS__INIT; if (done == true) { - jobStatus.message =DoneMsg; + jobStatus.message = Message; jobStatus.has_progress = true; - jobStatus.progress = 100.0; + jobStatus.progress = percentage; jobStatus.has_currentsegmentindex = false; response.status = &jobStatus; response.has_canceled = false; @@ -396,7 +391,7 @@ void SendJobProgress(double percentage, int SegmentId, bool done) } else { - jobStatus.message =ProgressMsg; + jobStatus.message =Message; jobStatus.has_progress = true; jobStatus.progress = percentage; jobStatus.has_currentsegmentindex = true; @@ -412,7 +407,7 @@ void SendJobProgress(double percentage, int SegmentId, bool done) SendChars((char*)container_buffer, container_size); } -void AbortJob(void) +void AbortJob(char *Msg) { ReturnCode retcode; retcode = JobSuccess; @@ -421,6 +416,7 @@ void AbortJob(void) Message.messageId = Abort; PrtMessage->messageId = PrintSystemFailure; + strcpy(PrtMessage->messageData,Msg); Message.msglen = 10; if (JobmsgQ != NULL) Mailbox_post(JobmsgQ , &Message, BIOS_NO_WAIT); diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c index bead5597d..ae8e208b5 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c @@ -36,7 +36,7 @@ static uint32_t EntryState(void *JobDetails); static uint32_t PrepareState(void *JobDetails); static uint32_t PreSegmentState(void *JobDetails, int); static uint32_t SegmentState(void *JobDetails, int); - uint32_t EndState(void *JobDetails); + uint32_t EndState(void *JobDetails, char *Message); static uint32_t ExitState(void *JobDetails); /********************************************************************** @@ -263,9 +263,9 @@ static uint32_t SegmentState(void *JobDetails, int SegmentId) } //******************************************************************************************************************** -uint32_t EndState(void *JobDetails) +uint32_t EndState(void *JobDetails, char *Message) { - SendJobProgress(100,0,true); + SendJobProgress(100,0,true,Message); if (Configured[Module_Winder]) { @@ -289,13 +289,13 @@ uint32_t EndState(void *JobDetails) ThreadEndState(CurrentJob); } - JobMessageStruc Message; + JobMessageStruc JobMessage; bool retcode = false; - Message.messageId = PrintingResultsOk; - Message.msglen = MAX_MSG_LEN; + JobMessage.messageId = PrintingResultsOk; + JobMessage.msglen = MAX_MSG_LEN; if (JobmsgQ != NULL) - retcode = Mailbox_post(JobmsgQ , &Message, BIOS_NO_WAIT); + retcode = Mailbox_post(JobmsgQ , &JobMessage, BIOS_NO_WAIT); return OK; } @@ -353,7 +353,7 @@ void PrintSTMMsgHandler(void * msg) if (SegmentId >= CurrentJob->n_segments) { //if (CurrentJob->) handle distance to spool - EndState(CurrentJob); + EndState(CurrentJob, "Job Ended"); } else { @@ -367,7 +367,7 @@ void PrintSTMMsgHandler(void * msg) case FinishResultsFail: break; case PrintSystemFailure: - EndState(CurrentJob); + EndState(CurrentJob, Message->messageData); break; default: break; diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.h b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.h index fc6780e94..0a210eeb1 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.h +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.h @@ -130,8 +130,9 @@ void PrintSTMMsgHandler(void * msg); void JobRequestFunc(MessageContainer* requestContainer); void JobAbortFunc(MessageContainer* requestContainer); +void AbortJob(char *Msg); -void SendJobProgress(double percentage,int SegmentId, bool done); +void SendJobProgress(double percentage,int SegmentId, bool done, char *Message); uint32_t PrintingHWConfiguration(void *Configuration); @@ -139,7 +140,7 @@ uint32_t PrepareReady(int ModuleId, ModuleStateEnum result); uint32_t PreSegmentReady(int ModuleId, ModuleStateEnum result); uint32_t SegmentReady(int ModuleId, ModuleStateEnum result); uint32_t PrintingHWConfiguration(void *Configuration); -uint32_t EndState(void *JobDetails); +uint32_t EndState(void *JobDetails, char *Message); #endif /* STATEMACHINES_PRINTSTM_H_ */ -- cgit v1.3.1 From aa25997a136a0790ad2cdec80d13eb6c07114363 Mon Sep 17 00:00:00 2001 From: Shlomo Hecht Date: Sun, 24 Jun 2018 17:50:46 +0300 Subject: DC Heating control - new job restarting --- .../Embedded/Modules/General/GeneralHardware.c | 1 - .../Embedded/Modules/Heaters/Heaters_init.c | 6 ++-- .../Embedded/Modules/Heaters/Heaters_print.c | 36 ++++++++++++++++------ .../Embedded/Modules/Thread/Thread_print.c | 10 +++--- .../Embedded/StateMachines/Printing/PrintingSTM.c | 3 +- 5 files changed, 35 insertions(+), 21 deletions(-) (limited to 'Software/Embedded_SW/Embedded/Modules/Thread') diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index 0ed71bf0d..cc87f6611 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -91,7 +91,6 @@ uint32_t HWConfigurationFunc(MessageContainer* requestContainer) upload_hardware_configuration_request__free_unpacked(UploadRequest,NULL); return ERROR; } - //status += HeaterConfigSetSharedHeatersParams (request->outputproportionalcycletime, request->outputproportionalsinglestep); ControlStart(); //ThreadInitialTestStub(request); diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c index 3fa8cfa40..2e85d8b50 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_init.c @@ -104,7 +104,6 @@ void HeatingTestRequest(MessageContainer* requestContainer) HeaterId2, false, request->dryerzone2temp); } - HeaterConfigSetSharedHeatersParams(1000,120000*12); ControlStart(); StubHeatingTestResponse response = STUB_HEATING_TEST_RESPONSE__INIT; @@ -276,7 +275,6 @@ uint32_t HeaterConfigRequestMessage(HardwarePidControl* request) } else { - HeaterConfigSetSharedHeatersParams(1000,120000*12); // initial setting 50Mhz } } return OK; @@ -333,8 +331,8 @@ uint32_t HeaterConfigSetSharedHeatersParams(uint32_t outputproportionalcycletime } /* - * HeaterConfigSetSharedHeatersParams - prepare the time slices for A/C heaters co-ordinated operation - * called by the general hardware HWConfigurationFunc + * HeaterRecalculateSharedHeatersParams - + * * parameters - the cycle time for the coordinated operation, the size (in MCU cycles) of a single step. */ uint32_t HeaterRecalculateSharedHeatersParams(uint32_t deviceId, uint32_t new_outputproportionalpowerlimit) diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index ad3aaff6f..8e8ee9e81 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -22,6 +22,7 @@ #include "heaters.h" #include "Drivers/Heater/Heater.h" +#include "Heaters_ex.h" #include "Drivers/Heater/TemperatureSensor.h" #include "StateMachines/Printing/PrintingSTM.h" @@ -76,8 +77,10 @@ void HeatersControlInit(void) { int i; HeatersControlMsgQ = Mailbox_create(sizeof(HeatersControlMessageStruc), 20, NULL,NULL); + HeaterConfigSetSharedHeatersParams(1000,120000*12); ROM_TimerConfigure(Heater_timerBase, TIMER_CFG_PERIODIC); // 32 bits Timer + ROM_TimerEnable(Heater_timerBase, TIMER_A); ROM_IntEnable(INT_TIMER2A); ROM_TimerIntEnable(Heater_timerBase, TIMER_TIMA_TIMEOUT); @@ -97,7 +100,7 @@ void HeatersControlStop(void) TimerActivated = false; HeatersRestart = false; } -#warning there is a need to separate the AC and DC heaters preparation! +//#warning there is a need to separate the AC and DC heaters preparation! void HeatersControlStart(void) { Report("HeatersControlStart ", __FILE__,__LINE__,0, RpMessage, 0, 0); @@ -113,14 +116,26 @@ uint32_t HeatersEnd(void) { if (i > HARDWARE_PID_CONTROL_TYPE__DryerHeater200w2) //DC Heaters { - status |= RemoveControlCallback(ControlIdtoHeaterId [i], DCHeaterControlCBFunction); + if (ControlIdtoHeaterId [i]!=0xFF) + { + status |= RemoveControlCallback(ControlIdtoHeaterId [i], DCHeaterControlCBFunction); + ControlIdtoHeaterId [i]=0xFF; + } } else if (i < HARDWARE_PID_CONTROL_TYPE__DryerHeater200w2) //AC Heaters { - status |=RemoveControlCallback(ControlIdtoHeaterId [i] ,HeaterControlCBFunction); + if (ControlIdtoHeaterId [i]!=0xFF) + { + status |=RemoveControlCallback(ControlIdtoHeaterId [i] ,HeaterControlCBFunction); + ControlIdtoHeaterId [i]=0xFF; + } } if (i == HARDWARE_PID_CONTROL_TYPE__DryerHeater1000w) //DC Heaters - status |=RemoveControlCallback(DryerHeaterMaxTempControl ,HeaterMaxTempCBFunction); + if (ControlIdtoHeaterId [i]!=0xFF) + { + status |=RemoveControlCallback(DryerHeaterMaxTempControl ,HeaterMaxTempCBFunction); + ControlIdtoHeaterId [i]=0xFF; + } DeActivateHeater(i); } return status; @@ -134,10 +149,10 @@ void HeatersStartControlTimer (void) return; TimerActivated = true; ROM_TimerConfigure(Heater_timerBase, TIMER_CFG_PERIODIC); // 32 bits Timer - ROM_TimerLoadSet(Heater_timerBase, TIMER_A,OutputProportionalSingleStep/*twelve millisecond???*/); + ROM_TimerLoadSet(Heater_timerBase, TIMER_A,OutputProportionalSingleStep /*twelve millisecond???*/); + ROM_TimerEnable(Heater_timerBase, TIMER_A); ROM_IntEnable(INT_TIMER2A); ROM_TimerIntEnable(Heater_timerBase, TIMER_TIMA_TIMEOUT); - TimerEnable(Heater_timerBase, TIMER_A); Report("HeatersStartControlTimer ", __FILE__,__LINE__,0, RpMessage, 0, 0); return; } @@ -236,10 +251,12 @@ uint32_t PrepareHeater(int HeaterId, uint32_t SetTemperatue) if (HeaterId > HARDWARE_PID_CONTROL_TYPE__DryerHeater200w2) //DC Heaters { ControlIdtoHeaterId [HeaterId] = AddControlCallback( DCHeaterControlCBFunction, eHundredMillisecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0); + DCInitialHeating[HeaterId] = true; } else if (HeaterId < HARDWARE_PID_CONTROL_TYPE__DryerHeater200w2) //AC Heaters { ControlIdtoHeaterId [HeaterId] = AddControlCallback( HeaterControlCBFunction, eHundredMillisecond,TemperatureSensorRead,(IfTypeHeaters*0x100+HeaterId),HeaterId2PT100Id[HeaterId],0); + InitialHeating = true; } HeaterReady[HeaterId] = false; if (HeaterId == HARDWARE_PID_CONTROL_TYPE__DryerHeater1000w) //Dryer Heaters @@ -297,6 +314,7 @@ uint32_t HeaterMaxTempCBFunction(uint32_t IfIndex, uint32_t readValue) LOG_ERROR (readValue, "Heater Cooled Off max temperature, turned on"); return OK; } + return ERROR; } uint32_t HeaterControlCBFunction(uint32_t IfIndex, uint32_t readValue) { @@ -502,18 +520,18 @@ void EightMilliSecondHeatersInterrupt(UArg arg0) ROM_IntMasterDisable(); HeatersControlMessageStruc Message; - bool retcode = false; + //bool retcode = false; //send message to the HeatersControl task Message.messageId = HeatersControl; Message.tick = UsersysTickGet(); Message.msglen = sizeof(HeatersControlMessageStruc); if (HeatersControlMsgQ != NULL) - retcode = Mailbox_post(HeatersControlMsgQ , &Message, BIOS_NO_WAIT); + /*retcode = */Mailbox_post(HeatersControlMsgQ , &Message, BIOS_NO_WAIT); if (HeatersRestart == true) { - ROM_TimerLoadSet(Heater_timerBase, TIMER_A,OutputProportionalSingleStep/*twelve millisecond???*/); + ROM_TimerLoadSet(Heater_timerBase, TIMER_A,OutputProportionalSingleStep); } else TimerDisable(Heater_timerBase, TIMER_A); diff --git a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c index fafc43fb5..6740d6304 100644 --- a/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Thread/Thread_print.c @@ -188,8 +188,8 @@ uint32_t ThreadLengthCBFunction(uint32_t IfIndex, uint32_t ReadValue) { //HeatingTestSendResonse(0, false,true,true, MotorDriverRequest[22].Speed,MotorDriverRequest[18].Speed,MotorDriverRequest[15].Speed,MotorDriverRequest[3].Speed, "MotorSpeed"); - HeatingTestSendResonse(0, false,true,true, /*OriginalMotorSpd_2PPS[index]*/length,positionDiff/*(int)error_integered*/,CurrentProcessedLength,CurrentRequestedLength, "FeederLength"); - pooler_counter = 0; + //HeatingTestSendResonse(0, false,true,true, /*OriginalMotorSpd_2PPS[index]*/length,positionDiff/*(int)error_integered*/,CurrentProcessedLength,CurrentRequestedLength, "FeederLength"); + // pooler_counter = 0; } if (CurrentProcessedLength>=CurrentRequestedLength ) { @@ -306,7 +306,7 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) if ((abs(avreageSampleValue)> DancerStopActivityLimit[index])&&(JobCounter > eOneSecond)) { - usnprintf(Message, 60, "Dancer % limit%d value %d Zero %d",DancerId,DancerStopActivityLimit[index],avreageSampleValue,DancersCfg[DancerId].zeropoint); + usnprintf(Message, 60, "Dancer %d limit %d value %d Zero %d",DancerId,DancerStopActivityLimit[index],avreageSampleValue,DancersCfg[DancerId].zeropoint); EndState(CurrentJob,Message ); } @@ -346,8 +346,8 @@ uint32_t ThreadControlCBFunction(uint32_t IfIndex, uint32_t ReadValue) }*/ //HeatingTestSendResonse(0, false,true,true, MotorDriverRequest[22].Speed,MotorDriverRequest[18].Speed,MotorDriverRequest[15].Speed,MotorDriverRequest[3].Speed, "MotorSpeed"); - HeatingTestSendResonse(0, false,true,true, /*OriginalMotorSpd_2PPS[index]*/_speed,OriginalMotorSpd_2PPS[index]/*(int)error_integered*/,MotorControlConfig[index].m_calculatedError,ReadValue, "FeederSpeed"); - pooler_counter = 0; + //HeatingTestSendResonse(0, false,true,true, /*OriginalMotorSpd_2PPS[index]*/_speed,OriginalMotorSpd_2PPS[index]/*(int)error_integered*/,MotorControlConfig[index].m_calculatedError,ReadValue, "FeederSpeed"); + // pooler_counter = 0; } } diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c index 1164c11f2..e47da642c 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c @@ -36,7 +36,7 @@ static uint32_t EntryState(void *JobDetails); static uint32_t PrepareState(void *JobDetails); static uint32_t PreSegmentState(void *JobDetails, int); static uint32_t SegmentState(void *JobDetails, int); - uint32_t EndState(void *JobDetails, char *Message); +uint32_t EndState(void *JobDetails, char *Message); static uint32_t ExitState(void *JobDetails); /********************************************************************** @@ -118,7 +118,6 @@ uint32_t PrintingHWConfiguration(void *Configuration) } } } - //status += HeaterConfigSetSharedHeatersParams (request->outputproportionalcycletime, request->outputproportionalsinglestep); return OK; -- cgit v1.3.1