diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2020-06-15 19:31:04 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2020-06-15 19:31:04 +0300 |
| commit | 2cc8e2d9c46c10451270496b7a796866b130b0d4 (patch) | |
| tree | 320b81b246f61b7d100efeeaab893da444034ac9 /Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c | |
| parent | 0111a1c694c92c2dad5f1cfe952b79b1f2ba01d7 (diff) | |
| download | Tango-2cc8e2d9c46c10451270496b7a796866b130b0d4.tar.gz Tango-2cc8e2d9c46c10451270496b7a796866b130b0d4.zip | |
support dispensers jig station with DISPESER_TEST flag.
try to fix hardware init bug - not during job, fix watchdog (#3016). internal alrm stops job. accurate brushstops, winder cone alarm and job failures
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c | 49 |
1 files changed, 37 insertions, 12 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index 915869c34..0f326d133 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -162,10 +162,11 @@ uint32_t HWConfigurationInit(void) IDS_Dispenser_Content_Init(); //ProcessParamsInit(); Buttons_Init(); +#ifndef DISPESER_TEST if (WHS_Type == WHS_TYPE_NEW) newWHS_init(); WHS_init(); - +#endif ADC_MUX_Init(); GeneralHwReady = true; @@ -645,24 +646,47 @@ uint32_t HWConfigurationFunc(MessageContainer* requestContainer) { uint32_t status = 0; uint32_t DataLen = 0; + uint32_t ExistingDataLen = 0; + int compare = 0; MessageContainer responseContainer; UploadHardwareConfigurationResponse response = UPLOAD_HARDWARE_CONFIGURATION_RESPONSE__INIT; + UploadHardwareConfigurationRequest* UploadRequest = NULL; + if (JobIsActive()) + { + LOG_ERROR(1,"JobIsActive"); + status = ERROR; + } + else + { + GeneralHwReady = false; + Control_WD(ENABLE,250); + //compare existing data to new data. update if different + memcpy(&ExistingDataLen,(void *)GENHWCFG_MAP_IN_FLASH,sizeof(ExistingDataLen)); +// if (ExistingDataLen == requestContainer->data.len) + { + compare = memcmp (requestContainer->data.data,((void *)GENHWCFG_MAP_IN_FLASH),requestContainer->data.len); + report("!!!!!!!!!data compare hw func", __FILE__,compare,requestContainer->data.len,RpMessage,ExistingDataLen,0); + //if compare is equal no need to store the data +// if (compare == 0) + { + DataLen = requestContainer->data.len; + EraseFlashSection(GENHWCFG_SECTION_FLASH); + ReadAppAndProgram(GENHWCFG_MAP_IN_FLASH, 4,&DataLen); + ReadAppAndProgram(GENHWCFG_MAP_IN_FLASH+4, DataLen, requestContainer->data.data); - DataLen = requestContainer->data.len; - EraseFlashSection(GENHWCFG_SECTION_FLASH); - ReadAppAndProgram(GENHWCFG_MAP_IN_FLASH, 4,&DataLen); - ReadAppAndProgram(GENHWCFG_MAP_IN_FLASH+4, DataLen, requestContainer->data.data); + FileWrite(requestContainer->data.data, requestContainer->data.len,HwConfigPath,BIOS_WAIT_FOREVER); - FileWrite(requestContainer->data.data, requestContainer->data.len,HwConfigPath,BIOS_WAIT_FOREVER); - UploadHardwareConfigurationRequest* UploadRequest = upload_hardware_configuration_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); + } + } + UploadRequest = upload_hardware_configuration_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); - GeneralHwReady = false; - Control_WD(ENABLE,250); - status = HWConfiguration(UploadRequest); + status = HWConfiguration(UploadRequest); + + GeneralHwReady = true; + } - GeneralHwReady = true; responseContainer = createContainer(MESSAGE_TYPE__UploadHardwareConfigurationResponse, requestContainer->token, true, &response, &upload_hardware_configuration_response__pack, &upload_hardware_configuration_response__get_packed_size); if (status!= OK) @@ -678,7 +702,8 @@ uint32_t HWConfigurationFunc(MessageContainer* requestContainer) 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); - upload_hardware_configuration_request__free_unpacked(UploadRequest,NULL); + if (UploadRequest) + upload_hardware_configuration_request__free_unpacked(UploadRequest,NULL); SendChars(container_buffer, container_size); return OK; |
