diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-03-29 15:46:42 +0300 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-03-29 15:46:42 +0300 |
| commit | fd16e827fd4d59636798c4cd4a7ebd00c3cb146f (patch) | |
| tree | e284c218e6c4bfbede448fb18e6c5e598c44ceaf /Software/Embedded_SW/Embedded/Modules/General | |
| parent | 08bd4400dfd45245ae301b5cb28103322ddf865a (diff) | |
| download | Tango-fd16e827fd4d59636798c4cd4a7ebd00c3cb146f.tar.gz Tango-fd16e827fd4d59636798c4cd4a7ebd00c3cb146f.zip | |
State machine handling
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/General')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c | 34 | ||||
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h | 1 |
2 files changed, 35 insertions, 0 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c index cdf7d3fc8..b69ca095b 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.c @@ -14,6 +14,8 @@ #include "Modules/Stubs_Handler/Container.h" #include "PMR/Hardware/UploadHardWareConfigurationRequest.pb-c.h" #include "PMR/Hardware/UploadHardWareConfigurationResponse.pb-c.h" +#include "PMR/Hardware/SystemResetRequest.pb-c.h" +#include "PMR/Hardware/SystemResetResponse.pb-c.h" PortInfoStruct PortInfoTable[MAX_PORT_ENUM] = { {ANALOG_MIXCHIP_TEMP,"ANALOG_MIXCHIP_TEMP"}, @@ -347,3 +349,35 @@ uint32_t HWConfigurationFunc(MessageContainer* requestContainer) } + +void HWSystemResetRequest(MessageContainer* requestContainer) +{ + uint32_t status = FAILED; + unsigned char Brd_ID = 0; + unsigned char Assy_ID = 0; + + MessageContainer responseContainer; + SystemResetRequest* request = system_reset_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); + + status = 0; + + SystemResetResponse response = SYSTEM_RESET_RESPONSE__INIT; + + + responseContainer = createContainer(MESSAGE_TYPE__SystemResetResponse, requestContainer->token, true, &response, &system_reset_response__pack, &system_reset_response__get_packed_size); + + Write_status_response(status); + + free(request); + //------------------------------------------------------------------------------------------- + uint8_t* container_buffer = malloc(message_container__get_packed_size(&responseContainer)); + size_t container_size = message_container__pack(&responseContainer, container_buffer); + SendChars((char*)container_buffer, container_size); + free(container_buffer); + free(requestContainer); + + ROM_SysCtlDelay(SYS_CLK_FREQ); + + HWREG(NVIC_APINT) = NVIC_APINT_VECTKEY | NVIC_APINT_SYSRESETREQ; + +} diff --git a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h index ab55c3e57..d0bcca682 100644 --- a/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h +++ b/Software/Embedded_SW/Embedded/Modules/General/GeneralHardware.h @@ -309,5 +309,6 @@ typedef struct extern PortInfoStruct PortInfoTable[MAX_PORT_ENUM]; extern uint32_t HWConfigurationFunc(MessageContainer* requestContainer); +extern void HWSystemResetRequest(MessageContainer* requestContainer); #endif |
