aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/General
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2020-01-26 16:28:56 +0200
committerShlomo Hecht <shlomo@twine-s.com>2020-01-26 16:28:56 +0200
commit6d0d04a9f1d3ebbc679190ff49df69406eabe24a (patch)
tree697ec870789091d0b26075696915120713270388 /Software/Embedded_SW/Embedded/Modules/General
parent494d0f61b0800d96b1694930388397d9d9318d58 (diff)
downloadTango-6d0d04a9f1d3ebbc679190ff49df69406eabe24a.tar.gz
Tango-6d0d04a9f1d3ebbc679190ff49df69406eabe24a.zip
updating : special dispensers handling (for Moti), new process parameters, bugs and features. merged with Shai
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/General')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c26
-rw-r--r--Software/Embedded_SW/Embedded/Modules/General/process.c69
2 files changed, 91 insertions, 4 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
index 92ed70b1e..500f03c25 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c
@@ -103,7 +103,7 @@ uint32_t HWConfigurationInit(void)
Report("HWConfigurationInit from flash", __FILE__,__LINE__,Bytes, RpMessage, UploadRequest->hardwareconfiguration->n_dancers, 0);
}
}
- else
+ if (UploadRequest = NULL)
{
buffer = HWConfigurationLoadFromFile(&Bytes); //load hardware config
if (buffer)
@@ -274,6 +274,7 @@ uint32_t EmbeddedParametersInit(void)
{
FRESULT Fresult = FR_OK;
uint32_t Bytes = 0;
+ uint8_t* buffer = NULL;
ConfigurationParameters *Params;
@@ -281,9 +282,21 @@ uint32_t EmbeddedParametersInit(void)
if ((Bytes)&&(Bytes < 1000))
{
- Params = configuration_parameters__unpack(NULL, Bytes, (void *)(EMBEDDED_PARAMETERS_MAP_IN_FLASH+4));
- LoadConfigurationParameters(Params);
- Report("LoadConfigurationParameters from flash", __FILE__,__LINE__,Bytes, RpMessage, Fresult, 0);
+ buffer = my_malloc (Bytes);
+ if (buffer)
+ {
+ memcpy(buffer, (void *)(EMBEDDED_PARAMETERS_MAP_IN_FLASH+4),Bytes);
+
+ Params = configuration_parameters__unpack(NULL, Bytes, buffer);
+ LoadConfigurationParameters(Params);
+ Report("LoadConfigurationParameters from flash", __FILE__,__LINE__,Bytes, RpMessage, Fresult, 0);
+ free(buffer);
+ }
+ else
+ {
+ LoadConfigurationParameters(0);
+ Report("LoadConfigurationParameters default", __FILE__,__LINE__,0, RpMessage, Fresult, 0);
+ }
}
else
{
@@ -634,6 +647,10 @@ uint32_t HWConfigurationFunc(MessageContainer* requestContainer)
responseContainer.error = ERROR_CODE__INVALID_PARAMETER;
responseContainer.errormessage = "JOb Active or incorrect parameters";
}
+ else
+ {
+ AlarmHandlingSetAlarm (EVENT_TYPE__MACHINE_STATE_NO_CFG_FILE,OFF);
+ }
uint8_t* container_buffer = my_malloc(message_container__get_packed_size(&responseContainer));
size_t container_size = message_container__pack(&responseContainer, container_buffer);
my_free(responseContainer.data.data);
@@ -698,6 +715,7 @@ uint32_t LoadConfigurationParamsFromFile(void)
EraseFlashSection(EMBEDDED_PARAMETERS_MAP_IN_FLASH,Bytes+4);
ReadAppAndProgram(EMBEDDED_PARAMETERS_MAP_IN_FLASH, 4,&Bytes);
ReadAppAndProgram(EMBEDDED_PARAMETERS_MAP_IN_FLASH+4, Bytes, buffer);
+ EmbeddedParametersInit();
}
return Fresult;
}
diff --git a/Software/Embedded_SW/Embedded/Modules/General/process.c b/Software/Embedded_SW/Embedded/Modules/General/process.c
index e376a99fe..cadfb3707 100644
--- a/Software/Embedded_SW/Embedded/Modules/General/process.c
+++ b/Software/Embedded_SW/Embedded/Modules/General/process.c
@@ -112,21 +112,25 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData)
{
status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1, true,ProcessParams->headzone1temp);
status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ7, true,ProcessParams->headzone1temp);
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadCoverHeater1, true,ProcessParams->headzone1temp);
}
else
{
status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ1, false,ProcessParams->headzone1temp);
status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ7, false,ProcessParams->headzone1temp);
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadCoverHeater1, false,ProcessParams->headzone1temp);
}
if (ProcessParams->headzone2temp>1)
{
status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ2, true,ProcessParams->headzone2temp);
status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ8, true,ProcessParams->headzone2temp);
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadCoverHeater2, true,ProcessParams->headzone2temp);
}
else
{
status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ2, false,ProcessParams->headzone2temp);
status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ8, false,ProcessParams->headzone2temp);
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadCoverHeater2, false,ProcessParams->headzone2temp);
}
if (ProcessParams->headzone3temp>1)
{
@@ -193,6 +197,71 @@ uint32_t HandleProcessParameters(ProcessParameters* ProcessParams,bool saveData)
HARDWARE_PID_CONTROL_TYPE__DryerHeaterSecondary, false,
ProcessParams->dryerzone3temp);
*/
+ /* if (ProcessParams->headzone7temp>1)
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ7, true,ProcessParams->headzone7temp);
+ }
+ else
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ7, false,ProcessParams->headzone7temp);
+ }
+ if (ProcessParams->headzone8temp>1)
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ8, true,ProcessParams->headzone8temp);
+ }
+ else
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ8, false,ProcessParams->headzone8temp);
+ }
+ if (ProcessParams->headzone9temp>1)
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ9, true,ProcessParams->headzone9temp);
+ }
+ else
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ9, false,ProcessParams->headzone9temp);
+ }
+ if (ProcessParams->headzone10temp>1)
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ10, true,ProcessParams->headzone10temp);
+ }
+ else
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ10, false,ProcessParams->headzone10temp);
+ }
+ if (ProcessParams->headzone11temp>1)
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ11, true,ProcessParams->headzone11temp);
+ }
+ else
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ11, false,ProcessParams->headzone11temp);
+ }
+ if (ProcessParams->headzone12temp>1)
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ12, true,ProcessParams->headzone12temp);
+ }
+ else
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadHeaterZ12, false,ProcessParams->headzone12temp);
+ }
+ if (ProcessParams->stspzone1temp>1)
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadCoverHeater1, true,ProcessParams->stspzone1temp);
+ }
+ else
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadCoverHeater1, false,ProcessParams->stspzone1temp);
+ }
+ if (ProcessParams->stspzone2temp>1)
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadCoverHeater2, true,ProcessParams->stspzone2temp);
+ }
+ else
+ {
+ status |= HeaterCommandRequestMessage(HARDWARE_PID_CONTROL_TYPE__HeadCoverHeater2, false,ProcessParams->stspzone2temp);
+ }
+*/
HeatersStopControlOnHeatersOff(ProcessParams);
dyeingspeed = ProcessParams->dyeingspeed;
dryerbufferlength = ProcessParams->dryerbufferlength;