aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Calculate.c
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Calculate.c')
-rw-r--r--Software/Embedded_SW/Embedded/Modules/Stubs_Handler/Calculate.c39
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);
+}