diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-07-05 16:53:33 +0300 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-07-05 16:53:33 +0300 |
| commit | 2800ef294e92c6181c47ecf5bd556fcb25dc62ce (patch) | |
| tree | bdf7d339b24bfe3fa6b64c5d42c8d34e8f1e1aef /Software/Embedded_SW/Embedded | |
| parent | dbb891b4456d3aff7b944302e363dad9b19a24c6 (diff) | |
| parent | 65a9b21dce5cdb5e42b927e4cafd271432338b7c (diff) | |
| download | Tango-2800ef294e92c6181c47ecf5bd556fcb25dc62ce.tar.gz Tango-2800ef294e92c6181c47ecf5bd556fcb25dc62ce.zip | |
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded')
8 files changed, 63 insertions, 12 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/report/reportInit.c b/Software/Embedded_SW/Embedded/Common/report/reportInit.c index 28df4846d..29728f6f2 100644 --- a/Software/Embedded_SW/Embedded/Common/report/reportInit.c +++ b/Software/Embedded_SW/Embedded/Common/report/reportInit.c @@ -79,7 +79,8 @@ int ReportResponseFunc(char *message, /* The formatted message response.errorcode = (ErrorCode)errorCode; response.has_severity = true; response.severity = (Severity)parameter1;*/ - response.has_filter = false; + response.has_filter = true; + response.filter = parameter; response.has_category = true; switch (Severity) { @@ -102,7 +103,6 @@ int ReportResponseFunc(char *message, /* The formatted message response.category = DEBUG_LOG_CATEGORY__Info; break; } - response.filter = parameter; response.message = message; responseContainer = createContainer(MESSAGE_TYPE__StartDebugLogResponse, protobufToken, false, &response, &start_debug_log_response__pack, &start_debug_log_response__get_packed_size); responseContainer.continuous = true; diff --git a/Software/Embedded_SW/Embedded/Communication/Container.c b/Software/Embedded_SW/Embedded/Communication/Container.c index 7d59c5f40..f7c9ef9fc 100644 --- a/Software/Embedded_SW/Embedded/Communication/Container.c +++ b/Software/Embedded_SW/Embedded/Communication/Container.c @@ -63,7 +63,6 @@ MessageContainer createContainer(MessageType type, char* token, protobuf_c_boole //free(response); return container; } - void receive_callback(char* buffer, size_t length) { //SendChars(buffer,length); diff --git a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.h b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.h index 5237d41b9..aa53cde7c 100644 --- a/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.h +++ b/Software/Embedded_SW/Embedded/Drivers/Heater/TemperatureSensor.h @@ -17,13 +17,13 @@ TEMP_SENSE_ANALOG_DYEINGH_TEMP1, //ANALOG_DYEINGH_TEMP1_1 SSR8 Head-Zone 1 TEMP_SENSE_ANALOG_DYEINGH_TEMP2, //ANALOG_DYEINGH_TEMP2 SSR7 Head-Zone 2 TEMP_SENSE_ANALOG_DYEINGH_TEMP3, //ANALOG_DYEINGH_TEMP3 SSR6 Head-Zone 3 TEMP_SENSE_ANALOG_DYEINGH_TEMP4, //ANALOG_DYEINGH_TEMP4 SSR5 Head-Zone 4 -TEMP_SENSE_ANALOG_DYEINGH_TEMP5, //ANALOG_DYEINGH_TEMP5 SSR6 Head-Zone 3 +TEMP_SENSE_ANALOG_DYEINGH_TEMP5, //ANALOG_DYEINGH_TEMP5 SSR10 Head-Zone 5 TEMP_SENSE_ANALOG_DRYER_TEMP1, //ANALOG_DRYER_TEMP1 TEMP_SENSE_ANALOG_DRYER_TEMP2, //ANALOG_DRYER_TEMP2 TEMP_SENSE_ANALOG_DRYER_TEMP3, //ANALOG_DRYER_TEMP3 TEMP_SENSE_AN_ENCLOSURETEMP1, //AN_ENCLOSURETEMP1_1 TEMP_SENSE_AN_ENCLOSURETEMP2, //AN_ENCLOSURETEMP2_1 -TEMP_SENSE_AN_ENCLOSURETEMP3, //AN_ENCLOSURETEMP3_1 +TEMP_SENSE_AN_ENCLOSURETEMP3, //AN_ENCLOSURETEMP3_1 SSR 11 used for head zone 6 MAX_TEMPERATURE_SENSOR_ID } TEMPERATURE_SENSOR_ID_ENUM; diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters.h b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters.h index 7282974e6..ca46bf93b 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters.h +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters.h @@ -71,4 +71,6 @@ uint32_t HeaterRecalculateSharedHeatersParams(uint32_t deviceId, uint32_t new_ou void HeatingTestSendResonse(uint32_t status, bool last,bool heater1Active,bool heater2Active, int temperature1, int temperature2,int Heater1Percentage,int Heater2Percentage, char* Message); uint32_t HeaterRecalculateHeaterParams(uint32_t deviceId, uint32_t new_outputproportionalpowerlimit); +uint32_t HeatersSingleHeaterEnd(HardwarePidControlType HeaterId); + #endif diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h index 962f9b651..6fd9fd8d8 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_ex.h @@ -10,6 +10,8 @@ uint32_t HeaterCommandRequestMessage(int HeaterId, bool OnOff, int Temperature) void HeatingTestRequest(MessageContainer* requestContainer); void HeatingTestPollRequest(MessageContainer* requestContainer); +bool HeaterCheckReady(void); + bool HeaterGetOverTemperatureState(uint8_t HeaterId); uint32_t HeatersEnd(void); diff --git a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c index b893be716..0f477a66f 100644 --- a/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c +++ b/Software/Embedded_SW/Embedded/Modules/Heaters/Heaters_print.c @@ -47,7 +47,7 @@ uint32_t ControlIdtoHeaterId [MAX_HEATERS_NUM] = {0xFF,0xFF,0xFF,0xFF,0xFF,0x uint32_t DryerHeaterMaxTempControl = 0xFF; #warning the PT100 id for the dryer control is number2 - dryer internal ambient sensor. #warning the PT100 for head 4 is number 5 -uint32_t HeaterId2PT100Id[MAX_HEATERS_NUM] = {TEMP_SENSE_ANALOG_DRYER_TEMP2,TEMP_SENSE_ANALOG_DRYER_TEMP1,TEMP_SENSE_ANALOG_DRYER_TEMP3,TEMP_SENSE_ANALOG_DYEINGH_TEMP1,TEMP_SENSE_ANALOG_DYEINGH_TEMP2,TEMP_SENSE_ANALOG_DYEINGH_TEMP3,TEMP_SENSE_ANALOG_DYEINGH_TEMP5,TEMP_SENSE_AN_ENCLOSURETEMP3,TEMP_SENSE_ANALOG_MIXCHIP_TEMP}; +uint32_t HeaterId2PT100Id[MAX_HEATERS_NUM] = {TEMP_SENSE_ANALOG_DRYER_TEMP2,TEMP_SENSE_ANALOG_DRYER_TEMP1,TEMP_SENSE_ANALOG_DRYER_TEMP3,TEMP_SENSE_ANALOG_DYEINGH_TEMP1,TEMP_SENSE_ANALOG_DYEINGH_TEMP2,TEMP_SENSE_ANALOG_DYEINGH_TEMP3,TEMP_SENSE_ANALOG_DYEINGH_TEMP5,TEMP_SENSE_ANALOG_MIXCHIP_TEMP,TEMP_SENSE_ANALOG_MIXCHIP_TEMP}; uint32_t DryerInternalPT100Id = TEMP_SENSE_ANALOG_DRYER_TEMP1; bool HeatersRestart = false; @@ -112,13 +112,46 @@ void HeatersControlStart(void) HeatersRestart = true; HeatersStartControlTimer(); } +uint32_t HeatersSingleHeaterEnd(HardwarePidControlType HeaterId) +{ + int status = OK; + if (HeaterId > HARDWARE_PID_CONTROL_TYPE__DryerHeater200w2) //DC Heaters + { + if (ControlIdtoHeaterId [HeaterId]!=0xFF) + { + status |= RemoveControlCallback(ControlIdtoHeaterId [HeaterId], DCHeaterControlCBFunction); + ControlIdtoHeaterId [HeaterId]=0xFF; + } + } + else if (HeaterId < HARDWARE_PID_CONTROL_TYPE__DryerHeater200w2) //AC Heaters + { + if (ControlIdtoHeaterId [HeaterId]!=0xFF) + { + status |=RemoveControlCallback(ControlIdtoHeaterId [HeaterId] ,HeaterControlCBFunction); + ControlIdtoHeaterId [HeaterId]=0xFF; + } + } + if (HeaterId == HARDWARE_PID_CONTROL_TYPE__DryerHeater1000w) //DC Heaters + if (DryerHeaterMaxTempControl) + { + status |=RemoveControlCallback(DryerHeaterMaxTempControl ,HeaterMaxTempCBFunction); + DryerHeaterMaxTempControl=0xFF; + } + DeActivateHeater(HeaterId); + return status; + +} + uint32_t HeatersEnd(void) { - int i,status = OK; + HardwarePidControlType i; + uint32_t status = OK; HeatersControlStop(); for (i=0;i<MAX_HEATERS_NUM;i++) { + status = HeatersSingleHeaterEnd(i); + /* if (i > HARDWARE_PID_CONTROL_TYPE__DryerHeater200w2) //DC Heaters { if (ControlIdtoHeaterId [i]!=0xFF) @@ -139,9 +172,10 @@ uint32_t HeatersEnd(void) if (DryerHeaterMaxTempControl) { status |=RemoveControlCallback(DryerHeaterMaxTempControl ,HeaterMaxTempCBFunction); - ControlIdtoHeaterId [i]=0xFF; + DryerHeaterMaxTempControl=0xFF; } DeActivateHeater(i); + */ } return status; @@ -218,6 +252,7 @@ uint32_t HeaterCommandRequestMessage(int HeaterId, bool OnOff, int Temperature) else if ((HeaterState == HEATER_ON)&& (OnOff == HEATER_OFF)) //stop heating { //turn off the heater + HeatersSingleHeaterEnd(HeaterId); //stop the control HeaterPIDConfig[HeaterId].m_SetParam = HeaterId; } @@ -270,6 +305,18 @@ uint32_t PrepareHeater(int HeaterId, uint32_t SetTemperatue) return OK; } +bool HeaterCheckReady(void) +{ + int i; + for (i=0;i<MAX_HEATERS_NUM;i++) + { + if (HeaterReady[i] == false) + { + return false; //not all configured heaters are ready + } + } + return true; +} void HeaterPrepareReady(void) { int i; diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c index a1045aed8..90d1ef20d 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/JobSTM.c @@ -143,7 +143,8 @@ static ReturnCode PrepareState(void *JobDetails) } if (Configured[Module_Heaters]) { - PrepareWaiting[Module_Heaters] = ModuleWaiting; + if (HeaterCheckReady() == false) // if heaters are in heating / cooling state we must wait for them + PrepareWaiting[Module_Heaters] = ModuleWaiting; } if (Configured[Module_Thread]) { diff --git a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c index 28a87e826..fafe1dd8e 100644 --- a/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c +++ b/Software/Embedded_SW/Embedded/StateMachines/Printing/PrintingSTM.c @@ -296,12 +296,12 @@ uint32_t EndState(void *JobDetails, char *Message) //EndWaiting[Module_IDS] = ModuleWaiting; IDSEndState(JobDetails); } - if (Configured[Module_Heaters]) + /*if (Configured[Module_Heaters]) { //EndWaiting[Module_Heaters] = ModuleWaiting; //heaters preparation starts on process parameters handling - HeatersEnd(); - } + // do not call HeatersEnd(); because the heaters should stay ready for coming jobs + }*/ if (Configured[Module_Thread]) { //EndWaiting[Module_Thread] = ModuleWaiting; |
