diff options
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Calculate.c')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Calculate.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Calculate.c b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Calculate.c new file mode 100644 index 000000000..f12b92adc --- /dev/null +++ b/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Calculate.c @@ -0,0 +1,39 @@ + +#include <PMR/Common/MessageContainer.pb-c.h> +#include <PMR/Stubs/CalculateRequest.pb-c.h> +#include <PMR/Stubs/CalculateResponse.pb-c.h> +#include "include.h" +#include "driverlib/gpio.h" + +#include "drivers/twine_usblib/usb_serial_adapter.h" +#include "drivers/twine_graphicslib/graphics_adapter.h" +#include "Container.h" + +void Stub_CalculateRequest(MessageContainer* requestContainer) +{ + MessageContainer responseContainer; + + CalculateRequest* request = calculate_request__unpack(NULL, requestContainer->data.len, requestContainer->data.data); + + writeLine("Calculate Request: "); + writeFloat(request->a); + writeString(" + "); + writeFloat(request->b); + + CalculateResponse response = CALCULATE_RESPONSE__INIT; + response.sum = request->a + request->b; + response.has_sum = true; + + responseContainer = createContainer(MESSAGE_TYPE__CalculateResponse, requestContainer->token, true, &response, &calculate_response__pack, &calculate_response__get_packed_size); + + writeLine("Sending Response: "); + writeFloat(response.sum); + + 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); +} |
